關于Android App的優(yōu)化, 從第一篇的計劃開始, 到內存優(yōu)化的系列文結束, 不知不覺近三個月的時間, 寫了十五六篇相關的博文, 算是對自己的知識的一個系統(tǒng)化, 也希望能給大家一些幫助.
在此有對此做一個總結.
路線
![Android App優(yōu)化](http://oat9lzupi.bkt.clouddn.com/2016-11-06-Android App優(yōu)化.jpeg)
1, App性能優(yōu)化要怎么做
在系列的開篇文中, 我們聊到了本系列的一個緣由, 和當時的一個計劃, 系列也基本是朝著這個這個方向走的.
2, 性能分析工具
在此介紹了一些慣用的性能分析工具, 包括官方, 第三方的, 內存分析的, UI分析的, 執(zhí)行時間性能分析等等.
關于工具的使用, 還有一篇番外篇--adb的使用
3, App啟動速度優(yōu)化
第一篇真正動手的優(yōu)化項目, App的啟動速度優(yōu)化. 這里實際上有一個小系列, 為了將問題說得更清楚, 加入了一篇系列之外的譯文--Application的啟動流程分析, 然后是啟動速度優(yōu)化的理論和實例挑戰(zhàn).
4, Layout怎么擺
介紹了Layout分析的工具, 并以實例說明了其使用. 提出了一些關于Layout優(yōu)化的建議.
5, ANR詳解
從ANR的概念, ANR的產生原因, 如何避免ANR這幾個角度來"剖析"了下ANR. 提供了如何分析ANR的方法, 并深入分析了ANR的集中產生原因和其解決之道.
6, 消除卡頓
講解了卡頓的產生原因, 并引入工具實例分析如何避免卡頓.
7, 內存優(yōu)化
這是一個大的子集, 分成了五篇來寫, 分別包括:
7.1 垃圾回收的基礎知識—GC那些事兒
簡單解析了GC的機制, 旨在讓大家對于垃圾回收有一個理論理論基礎, 對于GC Roots, 活對象, 死對象等有個概念.
7.2 Android是如何管理App內存的
以Android的VM為基礎, 說明了Android App的內存限制, App切換時的內存管理機制, 進程優(yōu)先級等.
7.3 內存分析工具詳解
介紹了一系列內存分析工具的使用.
7.4 以一個內存泄露代碼為例講解內存問題分析的過程
基于上篇的內存分析工具, 對一個內存泄露的實例代碼進行分析, 找出內存泄露的原因. 這么一個過程, 實際上也是對于前面理論基礎, 工具使用的一個實踐.
7.5 內存使用小結
算是對內存優(yōu)化系列的一個小結, 對于常見的內存泄露機器解決方案, 內存使用等有一個概覽.
著重對于內存泄露的分析和解決有一個說明.
8, 電量省著用
電量使用優(yōu)化是一個不太被關注的優(yōu)化, 還是以工具入手, 介紹電量使用的分析方式, 并給出常見的耗電項極其優(yōu)化方案.
9, 高效網絡請求
從網絡流量對用戶的影響切入, 介紹了App網絡的分析, 各方面網絡優(yōu)化的方案等.
對于網絡緩存的使用, 引用了MVP架構Github客戶端之網絡緩存篇.
說明
如系列開篇中所言, 本系列可以算是一個基于實際線上App的性能優(yōu)化的筆記. 并非App優(yōu)化, 就算是單說性能優(yōu)化, 此系列也并沒有能涵括所有.
App的優(yōu)化是一個持續(xù)的工作, 需要我們持續(xù)的關注.
實際上, 關注代碼質量, 也是App優(yōu)化的一個方面.
結語
照例, 加個結語, 算是對自己的一個小結, 有些東西也希望分享出來大家共勉.
首先, 對于寫文, 一概的態(tài)度是相對嚴肅的, 總認為, 畢竟的對外傳輸知識, 內容可能會少, 但不希望有錯. 希望沒有把大家?guī)У娇永飤~哈哈.
然后, 實際上一直強調, 授之以漁. 重要的是教方法, 所以, 可以看到這個系列中很多是在講解一些工具的使用, 結合案例的分析過程. 并非單純的擺出性能優(yōu)化應該怎么做balabala, 一二三四五六點.
再然后, 并非沒有理論. 正所謂知其然知其所以然, 引入了好幾篇的理論文章作為銜接, 是想讓大家能在同一個理論基礎上去加深對工具使用和分析過程的理解.
最后, 上面幾點其實都是廢話, 大家點贊就好.
共勉的話
學知識, 知其然知其所以然
講知識, 授之以漁而非魚