太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談

mb61c1d80e4e114 2022-01-07 08:13:15 阅读数:654

android-app android app
  • 冷啟動和熱啟動解析
    本節主要介紹啟動方式、特點、應用啟動的流程、測量應用啟動的時間、什麼才是應用的啟動時間、降低應用啟動時的耗時、優化應用啟動時的體驗。

  • APP啟動黑白屏解决辦法
    解决方法1,把啟動白屏的背景換成一張圖片;解决方法2,把啟動白屏背景變透明。

  • APP卡頓問題分析及解决方案
    16ms原則;
    卡頓處理;
    Triple Buffer,既然丟幀的情况不可避免,Android 團隊從未放弃對這塊的優化處理,於是便出現了Triple Buffer(三緩沖機制)。

  • 啟動速度與執行效率優化之StrictMode
    StrictMode 詳解、Systrace和TraceView。

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_程序員

二、布局檢測與優化

  • 布局層級優化
    程序的每個組件和 Layout 都需要經過初始化、布局和繪制,如果布局嵌套層次過深,就會導致加載操作更為耗時,更嚴重的話還可能導致內存溢出。本節學習使用兩個工具來檢查和優化 Layout。

  • 過度渲染
    既然能够通過系統設置知道過度渲染次數,測試時候就讀取該值,填寫報告就完了啊,為何要自動化呢?因為在對app進行系統的測試時,會發現頁面非常多,如管家一二級頁面就多大20多個,且集成包,灰度包,正式包,回歸包都要進行一次測試,所以進行自動化過度渲染計數讀取是有必要的。

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_程序員_02

三、內存優化

由於Android應用的沙箱機制,每個應用所分配的內存大小是有限度的,內存太低就會觸發LMK(Low Memory Killer)機制,進而會出現閃退現象。如果要對內存進行優化,就需要先搞懂java的內存是如何分配和回收的,關於這方面,可以重點參考下面的內容:
 Android應用內存泄漏的定比特、分析與解决策略

主要包含

  • 內存抖動和內存泄漏
  • 內存大戶,Bitmap內存優化
  • Profile內存監測工具
  • Mat大對象與泄漏檢測

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_Android_03

四、耗電優化

如果一個app使用的很少,但是app的耗電量卻很高,這時候用戶肯定想直接卸載這個app。那麼如何降低自己app的耗電量就是一個很重要的事情了。

耗電的因素有那些呢?

(1)Alarm Manager wakeup 喚醒過多
(2)頻繁使用局部喚醒鎖
(3)後臺網絡使用量過高
(4)後臺 WiFi scans 過多

詳細內容包含

  • Doze&Standby
  • Battery Historian
  • JobScheduler、WorkManager

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_Android_04

五、網絡傳輸與數據存儲優化

  • google序列化工具protobuf
  • 7z極限壓縮

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_移動開發_05

六、APK大小優化

讓我們的apk文件盡可能更小,移除那些未使用的代碼和資源文件,節省下載和提高效率。

  • APK瘦身
  • 微信資源混淆原理

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_移動開發_06

好了,這裏就只介紹Android性能優化核心部分的內容吧,有關開發效率優化再介紹就會導致文章太長啦。

總結

最後對於程序員來說,要學習的知識內容、技術有太多太多,要想不被環境淘汰就只有不斷提昇自己,從來都是我們去適應環境,而不是環境來適應我們!

這裏附上上述的技術體系圖相關的幾十套騰訊、頭條、阿裏、美團等公司2021年的面試題,把技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節,由於篇幅有限,這裏以圖片的形式給大家展示一部分。

相信它會給大家帶來很多收獲:

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_Android_07

太牛了!我把阿裏、騰訊,Android-App的設計架構經驗談_移動開發_08

上述【高清技術腦圖】以及【配套的架構技術PDF】可以關注我免費獲取

 Android學習PDF+架構視頻+面試文檔+源碼筆記

當程序員容易,當一個優秀的程序員是需要不斷學習的,從初級程序員到高級程序員,從初級架構師到資深架構師,或者走向管理,從技術經理到技術總監,每個階段都需要掌握不同的能力。早早確定自己的職業方向,才能在工作和能力提昇中甩開同齡人。

版权声明:本文为[mb61c1d80e4e114]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201070813150465.html