做了這么久性能相關(guān)的工作,也接觸了不少模塊,說實(shí)話要做好性能這一塊,真心不容易.為什么這么說? 是因?yàn)樾枰佑|的知識(shí)實(shí)在是太多了, Android 是一個(gè)整體,牽一發(fā)而動(dòng)全身,不是說只懂一個(gè)模塊就可以做好.
在學(xué)習(xí)的過程中,除了看源碼,我還接觸到了很多互聯(lián)網(wǎng)上已有的知識(shí),各位前輩們,將他們的知識(shí)和經(jīng)驗(yàn)傾囊相授,讓我少走了很多彎路. 我在自己的筆記里面存了很多很優(yōu)秀的技術(shù)文章和技術(shù)文檔,現(xiàn)在我決定將這些放到網(wǎng)上,讓每一個(gè)想進(jìn)入 Android 系統(tǒng)開發(fā)和優(yōu)化這個(gè)領(lǐng)域的人,能通過閱讀這篇文章,快速入門. 同時(shí)也算是我對(duì)知識(shí)的一個(gè)梳理,查漏補(bǔ)缺,終身學(xué)習(xí).
這篇文章記錄了 Android 性能優(yōu)化所必須掌握的知識(shí),涵蓋性能優(yōu)化相關(guān)的方方面面(當(dāng)然如果讀者同學(xué)你也有很棒的私藏文章,也可以加入到這篇文章里面).
優(yōu)化心得和經(jīng)驗(yàn)
- [系列視頻] Android Performance Patterns : www.youtube.com/playlist?li…
- 給 App 提速:Android 性能優(yōu)化總結(jié) : android.jobbole.com/81944/
- 移動(dòng)端性能監(jiān)控方案 Hertz : tech.meituan.com/hertz.html
- Android 性能優(yōu)化后續(xù) : androidperformance.com/2015/03/31/…
- Android性能優(yōu)化之虛擬機(jī)調(diào)優(yōu) : weishu.me/2016/12/23/…
- [譯]Android UI 性能優(yōu)化 : zhuanlan.zhihu.com/p/27065828
響應(yīng)速度
- Optimizing Boot Times : source.android.com/devices/tec…
- Android 中如何計(jì)算 App 的啟動(dòng)時(shí)間 : androidperformance.com/2015/12/31/…
流暢度
- Evaluating Performance : source.android.com/devices/tec…
- Understanding Systrace : source.android.com/devices/tec…
- Using ftrace : source.android.com/devices/tec…
- Identifying Capacity-Related Jank : source.android.com/devices/tec…
- Identifying Jitter-Related Jank : source.android.com/devices/tec…
- 那些年我們用過的顯示性能指標(biāo) : blog.csdn.net/tencent_bug…
內(nèi)存
- Low RAM Configuration : source.android.com/devices/tec…
- Linux Swap 與 Zram 詳解 : www.tinylab.cn/linux-swap-…
- Android 加載不同 DPI 資源與內(nèi)存消耗間的關(guān)系 : www.tinylab.cn/android-loa…
- ZRAM SWAP 內(nèi)存管理講解 : nekosc.com/technology/…
- Android OOM 案例分析 : tech.meituan.com/oom_analysi…
- Android 代碼內(nèi)存優(yōu)化建議-Android 資源篇 : androidperformance.com/2015/07/20/…
- Android 代碼內(nèi)存優(yōu)化建議-Android 官方篇 : androidperformance.com/2015/07/20/…
- Android 代碼內(nèi)存優(yōu)化建議-Java 官方篇 : androidperformance.com/2015/07/20/…
- Android 內(nèi)存優(yōu)化之一:MAT 使用入門 : androidperformance.com/2015/04/11/…
- Android 內(nèi)存優(yōu)化之二:MAT 使用進(jìn)階 : androidperformance.com/2015/04/11/…
- Android 內(nèi)存優(yōu)化之三:打開 MAT 中的 Bitmap 原圖 : androidperformance.com/2015/04/11/…
- Android 代碼內(nèi)存優(yōu)化建議-OnTrimMemory 優(yōu)化 : androidperformance.com/2015/07/20/…
- Android LowMemoryKiller原理分析 : gityuan.com/2016/09/17/…
- Android 匿名共享內(nèi)存(Ashmem)原理 : juejin.cn/post/684490…
圖形棧
- Android 硬件加速原理與實(shí)現(xiàn)簡(jiǎn)介 :tech.meituan.com/hardware-ac…
- Android6.0 顯示系統(tǒng)(一) Surface 創(chuàng)建: blog.csdn.net/kc58236582/…
- Android6.0 顯示系統(tǒng)(二) SurfaceFlinger 創(chuàng)建 Surface :blog.csdn.net/kc58236582/…
- Android6.0 顯示系統(tǒng)(三) 管理圖像緩沖區(qū) : blog.csdn.net/kc58236582/…
- Android6.0 顯示系統(tǒng)(五) SurfaceFlinger 服務(wù) : blog.csdn.net/kc58236582/…
- Android6.0 顯示系統(tǒng)(六) 圖像的輸出過程 : blog.csdn.net/kc58236582/…
- Android6.0 SurfaceControl 分析(一)SurfaceControl創(chuàng)建&使用 Surface創(chuàng)建&使用 : blog.csdn.net/kc58236582/…
- Android6.0 SurfaceControl 分析(二)SurfaceControl和SurfaceFlinger通信
- Android6.0 VSync 信號(hào)如何到用戶進(jìn)程 : blog.csdn.net/kc58236582/…
- Android 圖形系統(tǒng)概述 : gityuan.com/2017/02/05/…
- Choreographer 原理 : gityuan.com/2017/02/25/…
- SurfaceFlinger 啟動(dòng)篇 : gityuan.com/2017/02/11/…
- SurfaceFlinger 繪圖篇 : gityuan.com/2017/02/18/…
- [HWUI]Android 應(yīng)用程序 UI 硬件加速渲染技術(shù)簡(jiǎn)要介紹和學(xué)習(xí)計(jì)劃 : blog.csdn.net/luoshengyan…
- [HWUI]Android 應(yīng)用程序 UI 硬件加速渲染環(huán)境初始化過程分析 : blog.csdn.net/luoshengyan…
- [HWUI]Android 應(yīng)用程序 UI 硬件加速渲染的預(yù)加載資源地圖集服務(wù)(Asset Atlas Service)分析 : blog.csdn.net/luoshengyan…
- [HWUI]Android 應(yīng)用程序 UI 硬件加速渲染的 Display List 構(gòu)建過程分析 : blog.csdn.net/luoshengyan…
- [HWUI]Android 應(yīng)用程序 UI 硬件加速渲染的 Display List 渲染過程分析 : blog.csdn.net/luoshengyan…
- [HWUI]Android 應(yīng)用程序 UI 硬件加速渲染的動(dòng)畫執(zhí)行過程分析 : blog.csdn.net/luoshengyan…
虛擬機(jī)
- ART and Dalvik : source.android.com/devices/tec…
- Android 8.0 ART Improvements : source.android.com/devices/tec…
- Dalvik bytecode : source.android.com/devices/tec…
- Dalvik Executable format : source.android.com/devices/tec…
- Dalvik Executable instruction formats : source.android.com/devices/tec…
- Constraints : source.android.com/devices/tec…
- Configuring ART : source.android.com/devices/tec…
- Debugging ART Garbage Collection : source.android.com/devices/tec…
- Implementing ART Just-In-Time (JIT) Compiler : source.android.com/devices/tec…
系統(tǒng)框架
- Task Snapshots :source.android.com/devices/tec…
- Android Input 子系統(tǒng):Input 進(jìn)程的創(chuàng)建,監(jiān)聽線程的啟動(dòng) : zhuanlan.zhihu.com/p/29152319
- Android Input 子系統(tǒng):Input 事件的產(chǎn)生卵史、讀取和分發(fā),InputReader彻亲、InputDispatcher : zhuanlan.zhihu.com/p/29386642
- EventHub 與設(shè)備送滞、Input 事件的交互 : zhuanlan.zhihu.com/p/30127752
- Android 消息機(jī)制,從Java 層到 Native 層剖析 : zhuanlan.zhihu.com/p/29929031
- 理解 Android Binder 機(jī)制(1/3):驅(qū)動(dòng)篇 : qiangbo.space/2017-01-15/…
- 理解 Android Binder 機(jī)制(2/3):C++ 層 : qiangbo.space/2017-02-12/…
- 理解 Android Binder 機(jī)制(3/3):Java 層 : qiangbo.space/2017-03-15/…
- Android Bander 設(shè)計(jì)與實(shí)現(xiàn) - 設(shè)計(jì)篇 : blog.csdn.net/universus/a…
- 四大組件之綜述 : gityuan.com/2017/05/19/…
- 四大組件之 ActivityRecord : gityuan.com/2017/06/11/…
- 四大組件之 ContentProviderRecord : gityuan.com/2017/06/04/…
- 四大組件之 BroadcastRecord : gityuan.com/2017/06/03/…
- 四大組件之 ServiceRecord : gityuan.com/2017/05/25/…
- 簡(jiǎn)述 Activity 與 Window 關(guān)系 : gityuan.com/2017/04/16/…
- 理解 Android Context : gityuan.com/2017/04/09/…
- 理解 Application 創(chuàng)建過程 : gityuan.com/2017/04/02/…
- 以 Window 視角來看 startActivity : gityuan.com/2017/01/22/…
- WMS—啟動(dòng)窗口(StartingWindow) : gityuan.com/2017/01/15/…
- WMS—啟動(dòng)過程 : gityuan.com/2017/01/08/…
進(jìn)程管理
- cpuset : www.kernel.org/doc/Documen…
- cgroup : www.kernel.org/doc/Documen…
- Android 進(jìn)程調(diào)度之 adj 算法 gityuan.com/2016/08/07/…
- Linux 進(jìn)程管理(一) gityuan.com/2017/07/30/…
- Linux 進(jìn)程管理(二)–fork gityuan.com/2017/08/05/…
- Linux 進(jìn)程 pid 分配法 gityuan.com/2017/08/06/…
- [收費(fèi)培訓(xùn)視頻] 打通 Linux 脈絡(luò)系列:進(jìn)程爆存、線程和調(diào)度 : edu.csdn.net/course/deta…
- Android 系統(tǒng)中的進(jìn)程管理:進(jìn)程的創(chuàng)建 : qiangbo.space/2016-10-10/…
- Android 系統(tǒng)中的進(jìn)程管理:進(jìn)程的優(yōu)先級(jí) : qiangbo.space/2016-11-23/…
- Android 系統(tǒng)中的進(jìn)程管理:內(nèi)存的回收 : qiangbo.space/2016-12-08/…
- Android 系統(tǒng)啟動(dòng):init 進(jìn)程與 init 語(yǔ)言 : qiangbo.space/2017-01-28/…
調(diào)試工具
- 另一個(gè) Android 性能剖析工具——simpleperf : zhuanlan.zhihu.com/p/25277481
- 如何調(diào)試 Android Framework : weishu.me/2016/05/30/…
- 如何調(diào)試 Android Native Framework : weishu.me/2017/01/14/…
- Catapult : catapult.gsrc.io/README.md
- 手把手教你使用Systrace(一): zhuanlan.zhihu.com/p/27331842
- 手把手教你使用Systrace(二)——鎖優(yōu)化
: zhuanlan.zhihu.com/p/27535205
硬件相關(guān)
- Flash Wear Management in Android Automotive : source.android.com/devices/tec…
- Cortex-A75 和 Cortex-A55 : www.10tiao.com/html/431/20…
- CPU Utilization is Wrong : www.brendangregg.com/blog/2017-0…
編程語(yǔ)言
- 探索 Java 隱藏的開銷 : academy.realm.io/cn/posts/36…
Kernel
- 內(nèi)核探索:Regmap 框架:簡(jiǎn)化慢速 I/O 接口優(yōu)化性能 www.tinylab.cn/kernel-expl…
- 嵌入式 Linux 啟動(dòng)時(shí)間優(yōu)化 www.tinylab.cn/elinux-org-…
我輩楷模
- 我到底有多么努力 : mp.weixin.qq.com/s?__biz=MzU…
- 工作以來的一些感悟 : zhuanlan.zhihu.com/zmywly8866/…
- 如何自學(xué)Android养距?zhuanlan.zhihu.com/p/20708611
本文轉(zhuǎn)自 https://juejin.cn/post/6844903538095554568,如有侵權(quán),請(qǐng)聯(lián)系刪除洞就。