Android優化

佈局優化:
佈局優化的思想比較簡單,主要就是儘量減少佈局的層級,如果佈局的層級少了,繪製就會更簡單更快,程序的性能可以提高。
可以選擇性能較高的LinearLayout和FrameLayout。如果LinearLayout和FrameLayout不能滿足需求,需要添加層級來完成的,可以考慮使用RelativeLayout。
也可以採用標籤<include>,<merge>和ViewStub。include主要是用於佈局重用。merge一般和include一起使用,merge減少佈局層級。ViewStub則是提供了按需加載的功能。

繪製優化:
繪製優化是指View的onDraw方法要避免執行大量的操作。主要有兩個方面:
1.onDraw不要創建新的局部對象,因爲onDraw可能會被頻繁調用,可能瞬間會產生大量臨時對象,可能導致系統頻繁gc,降低效率。
2.onDraw不要做耗時任務,也不能執行成千上萬次的循環操作。保持每幀繪製的時間不要超過16ms(1000/60~=16ms)。

內存泄露優化:
內存泄露在開發中是一個需要重視的問題,優化分爲兩個方面:在開發過程中避免寫出有內存泄露的代碼,另一方面是通過MAT內存分析工具來找出潛在的內存泄露而解決。
有以下幾種情況可能導致內存泄露:靜態變量、單例模式導致的內存泄露等其他。

響應速度優化:
響應速度優化的核心在於避免在主線程中做耗時操作,將耗時的操作放在子線程中執行。如果在主線程中做了過分耗時的操作,會導致啓動Activity時出現黑屏現象,甚至出現ANR。Android規定,如果Activity5秒內無法響應屏幕觸摸事件後者鍵盤輸入事件,就會出現ANR。而BroadcastReceiver如果10秒內還未執行完操作,也會出現ANR。在實際開發中很難發現導致ANR的問題,如何解決呢?其實當一個進程發生ANR以後,系統會在data/anr目錄下創建一個trace.txt文件,通過分析這個文件就可以定位ANR的原因。

發佈了110 篇原創文章 · 獲贊 28 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章