1. 程式人生 > >Android App效能優化系列

Android App效能優化系列

Android App效能優化系列

關於Android App的優化,從第一篇的計劃開始,到記憶體優化的系列文結束,不知不覺近三個月的時間,寫了十五六篇相關的博文,算是對自己的知識的一個系統化,也希望能給大家一些幫助。

在此有對此做一個總結。

路線

 

Android App優化

 

1,  App效能優化要怎麼做

在系列的開篇文中,我們聊到了本系列的一個緣由,和當時的一個計劃,系列也基本是朝著這個這個方向走的。

2,  效能分析工具

在此介紹了一些慣用的效能分析工具,包括官方,第三方的,記憶體分析的,UI分析的,執行時間效能分析等等。

關於工具的使用,還有一篇番外篇 - adb的使用

3,App啟動速度優化

第一篇真正動手的優化專案,App的啟動速度優化。這裡實際上有一個小系列,為了將問題說得更清楚,加入了一篇系列之外的譯文 - 應用的啟動流程分析,然後是啟動速度優化的理論例項挑戰

4,  佈局怎麼擺

介紹了Layout分析的工具,並以例項說明了其使用。提出了一些關於佈局優化的建議。

5,  ANR詳解

從ANR的概念,ANR的產生原因,如何避免ANR這幾個角度來“剖析”了下ANR。提供瞭如何分析ANR的方法,並深入分析了ANR的集中產生原因和其解決之道。

如圖6所示, 
消除卡頓

講解了卡頓的產生原因,並引入工具例項分析如何避免卡頓。

7,  記憶體優化

這是一個大的子集,分成了五篇來寫,分別包括:

7.1  垃圾回收的基礎知識-GC那些事兒

簡單解析了GC的機制,旨在讓大家對於垃圾回收有一個理論理論基礎,對於GC Roots,活物件,死物件等有個概念。

7.2  Android是如何管理App記憶體的

以Android的VM為基礎,說明了Android App的記憶體限制,App切換時的記憶體管理機制,程序優先順序等。

7.3  記憶體分析工具詳解

介紹了一系列記憶體分析工具的使用。

7.4  以一個記憶體洩露程式碼為例講解記憶體問題分析的過程

基於上篇的記憶體分析工具,對一個記憶體洩露的例項程式碼進行分析,找出記憶體洩露的原因。這麼一個過程,實際上也是對於前面理論基礎,工具使用的一個實踐。

7.5  記憶體使用小結

算是對記憶體優化系列的一個小結,對於常見的記憶體洩露機器解決方案,記憶體使用等有一個概覽。

著重對於記憶體洩露的分析和解決有一個說明。

8,  電量省著用

電量使用優化是一個不太被關注的優化,還是以工具入手,介紹電量使用的分析方式,並給出常見的耗電項極其優化方案。

9,  高效網路請求

從網路流量對使用者的影響切入,介紹了App網路的分析,各方面網路優化的方案等。

對於網路快取的使用,引用了MVP架構Github客戶端之網路快取篇

說明

系列開篇中所言,本系列可以算是一個基於實際線上App的效能優化的筆記。並非App優化,就算是單說效能優化,此係列也並沒有能涵括所有。

App的優化是一個持續的工作,需要我們持續的關注。

實際上,關注程式碼質量,也是App優化的一個方面。

結語

照例,加個結語,算是對自己的一個小結,有些東西也希望分享出來大家共勉。

首先,對於寫文,一概的態度是相對嚴肅的,總認為,畢竟的對外傳輸知識,內容可能會少,但不希望有錯。希望沒有把大家帶到坑裡~~哈哈。

然後,實際上一直強調,  授之以漁重要的是教方法,所以,可以看到這個系列中很多是在講解一些工具的使用,結合案例的分析過程。並非單純的擺出效能優化應該怎麼做balabala,一二三四五六點。

再然後,並非沒有理論。正所謂知其然知其所以然引入了好幾篇的理論文章作為銜接,是想讓大家能在同一個理論基礎上去加深對工具使用和分析過程的理解。