近期做 Android 性能優化,整理了部分性能優化的開發資源,先發布出來,後續會在這個 git倉庫 更新,感興趣的網友可以關注下。
以下是初稿:
網站博客
以組織或人爲單位的教程資源:
- Android 官方教程,關於性能優化的主題,中文翻譯
- Android Developers Android 官方開發者頻道
- 微信終端開發團隊博客,公衆號 WeMobileDev ,也可訪問騰訊雲專欄
- Facebook Android 專欄
- 《性能之巔》作者 Brendan D.Gregg 的網站
- ClassShark 作者 Boris Farber 的個人網站
- androidperformance 博客文章目錄
- markzhai’s home BlockCanary 作者的博客
- Trinea 的性能優化系列文章
- Deep into Android 裏面源碼剖析和性能總結文章不錯
書籍培訓
相關書籍
- 《性能之巔:洞悉系統、企業與雲計算》 Linux 系統優化必看的書,Andoid 開發者可從中借鑑性能優化工具和思路
- 《Android移動性能實戰》 騰訊SNG專項測試團隊 2017 年出的性能優化案例集錦,基本都是手Q、手空和 QQ音樂的實際例子
- 《移動App性能評測與優化》 騰訊TMQ專項測試團隊 2016 年出的實戰案例精選,還講了 GT 的使用
- 《高性能Android應用開發》 AT&T 開發者計劃中的性能推廣領導者 Doug Sillars 2016 年出的書,涉及面廣,值得一看
- 《Android應用性能優化》 聯發科員工 2012 年寫的書,其中的 jni 相關優化還是很有用的
- 《深入探索Android熱修復技術原理》 阿里 Android 熱修復方案 Sophix 背後的原理,對理解 Android 虛擬機很有幫助,大型 app 的性能優化難免涉及熱修復
- 《Android插件化開發指南》 大型 app 的性能優化難免涉及插件化,老包的這本書可以幫助你瞭解 Android 插件化基礎
- 《Web性能權威指南》 谷歌高性能團隊核心成員寫的書,網絡方向的優化必看
- 《程序員的自我修養:鏈接、裝載與庫》 講述代碼編譯之後是如何鏈接的,做 native 優化必看
- 《深入理解計算機系統》 性能優化是一個系統工程,瞭解計算機系統如何設計和工作很有必要
視頻教程
- Android 性能優化典範 1-6 季,中文翻譯
- 極客時間 Android開發高手課 前微信高級工程師 和 Tinker負責人講解如何做性能優化,教程質量很高
- 極客時間 深入淺出計算機組成原理
- 極客時間 性能工程高手課
工具類庫
APM
- Matrix 微信團隊開源的應用性能接入框架
- ArgusAPM 360 開源的移動性能監控項目
- LeakCanary square 開源的內存泄漏監控
- BlockCanaryEx 基於 BlockCanary ,記錄主線程中執行的所有方法和它們的執行時間
- DroidTelescope
- ANR-WatchDog 檢測 ANR 並拋出有意義的堆棧
類庫
- Redex Facebook 開源的 Android 字節碼優化類庫
- Hardcoder 微信開源的 Android APP 與系統間的通信解決方案,可以讓 APP 充分調度系統資源來提升 APP 性能
- Booster 滴滴開源的質量優化框架
- Alpha 阿里開源的基於PERT圖構建的Android異步啓動框架,啓動優化時可參考
- ADI 通過 JVMTI 實現的 Android 應用開發調試的增強工具集
- AndroidGodEye 攜程工程師開源類庫,可以在PC瀏覽器中實時監控Android性能數據指標
- DoraemonKit 滴滴開源的常用開發工具集應用,裏面的性能檢測可視化部分值得看看
- AndroidDevMetrics Android 性能度量,可用於排查一些性能問題
- MethodTraceMan 通過插樁統計方法耗時,解決Android App卡頓問題
- Pury 基於註解的耗時方法監控
- nanoscope uber 開源的精確的方法統計工具
工具
- TraceView
- SysTrace
- Android Profiler
- Hierarchyviewer
- MAT (Memory Analysis Tool)
- Simpleperf
- 如何讀懂火焰圖?
- Flame Graphs 官方介紹
- StrictMode
- Oprofile
主題文章
性能優化文章集合貼
- Android 性能優化必知必會 收集了 Android 業界很多性能優化資料,值得慢慢消化
- Awesome-Android-Performance JsonChao 按性能各方向綜述了市面上各種優化思路
- awesome-android-performance Juude 整理的性能優化視頻和文章
- awesome-android-complete-reference Android 教程文章集合,裏面有性能優化部分的文章可參考
性能方法論
- 如何回答性能優化的問題,才能打動阿里面試官?
- 性能優化模式 性能優化的原則、反模式、模式…這個思路很不錯,雖然是在java服務端,但遷移到 Android 端也適用
- “性能問題終結者”Olympic,解決用戶痛點背後的祕密是… 手淘性能定位系統 Olympic
- 剖析應用性能 Android 官方教程,介紹如何使用工具定位性能問題
啓動速度
- 抖音BoostMultiDex優化實踐:Android低版本上APP首次啓動時間減少80%(一) 從 Android Dalvik 機制入手,解決安裝後首次執行 MultiDex 耗時過長問題
- 抖音BoostMultiDex優化實踐:Android低版本上APP首次啓動時間減少80%(二)
- 抖音研發實踐:基於二進制文件重排的解決方案 APP啓動速度提升超15% 抖音iOS二進制文件的重新,Android 啓動重排可參考
流暢度
- 內存泄露從入門到精通三部曲之常見原因與用戶實踐
- 優化安卓應用內存的神祕方法以及背後的原理,一般人我不告訴他 主動收緊內存背後的原理
內存
包體積
耗電
存儲
系統優化
- 那些年,我們一起經歷過的 Android 系統性能優化 各大手機廠商的系統性能優化技術介紹
- Android 中低內存對性能的影響 低端機很重要的部分是要優化內存
- 當手機廠商說在 Android 底層做優化的時候,它們到底在做什麼?