Android效能優化---筆記

weixin_34321977發表於2016-03-16

1-佈局優化

儘量減少佈局的層級

刪除佈局中的無用控制元件和層級 使用效能較低的ViewGroup、

<include>,<merge>標籤

ViewStub提供按需載入功能;

2-繪製優化

onDraw 方法避免大量的操作

3-記憶體洩漏優化

避免寫記憶體洩漏的程式碼,使用記憶體分析工具找出潛在的記憶體洩漏繼而解決;

1.靜態變數導致的記憶體洩漏

2.單例模式導致的記憶體洩漏

3.屬性動畫導致的記憶體洩漏

4-響應速度優化

核心思想避免在主執行緒中做耗時的操作

傳送ANR異常後 系統會在/data/anr目錄下建立一個traces.txt檔案 分析檔案找出原因;

5-ListView的優化

1.採用ViewHolder避免在getView方法中執行耗時的操作;

2.根據列表的滑動狀態來控制任務的執行頻率;

3.開啟硬體加速

6-Bitmap的優化

BitmapFactory.Options對圖片進行取樣;

7-執行緒優化

採用執行緒池避免程式中有大量的Thread

8-其他優化方式

避免建立過多的物件;

不要過多的使用列舉;

常量使用 static final 修飾;

採用雙快取機制

適當使用軟引用 弱引用

儘量採用靜態內部類

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、減少Reduce

差異化對待快取容量

差異化對待圖片資源

資源按需載入

減少bitmap物件的記憶體佔用

inSampleSize

decodeformat (ARGB_8888,ARGB,ARGB_4444,A_LPHA_8);

二、重用Reuse

Bitmap物件的複用inBitmap

ListView,GridView中convertView的複用

避免頻繁的建立和回收物件

三、回收利用再迴圈。Recycle

Activity洩漏內部類static,singleton,

容器物件的洩漏

選擇適合的context,

注意生命週期內物件的登出。

大胖子bitmap物件的回收

大胖子webview物件的回收

大胖子cursor物件的回收

onTrimMemory

onLowMemory

四、重構Refactor

使用優化過的資料結構

減少記憶體的碎片化

優化佈局減少記憶體消耗

---------

相關文章