1. 程式人生 > >Android App 性能優化系列結語篇

Android App 性能優化系列結語篇

速度 官方 href 優先 使用小結 app 內存管理機制 計劃 等等

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

路線
Android App優化
1, App性能優化要怎麽做
在系列的開篇文中, 我們聊到了本系列的一個緣由, 和當時的一個計劃, 系列也基本是朝著這個這個方向走的.
2, 性能分析工具
在此介紹了一些慣用的性能分析工具, 包括官方, 第三方的, 內存分析的, UI分析的, 執行時間性能分析等等.

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

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

4, Layout怎麽擺
介紹了Layout分析的工具, 並以實例說明了其使用. 提出了一些關於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, 一二三四五六點.
再然後, 並非沒有理論. 正所謂知其然知其所以然, 引入了好幾篇的理論文章作為銜接, 是想讓大家能在同一個理論基礎上去加深對工具使用和分析過程的理解.
最後, 上面幾點其實都是廢話, 大家點贊就好.

作者:anly_jun
鏈接:https://juejin.im/post/581f4ad667f3560058a33057
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

Android App 性能優化系列結語篇