天天看點

Android 記憶體優化 - 禁用DrawingCache減少記憶體消耗

Android系統未來加速view的渲染性能,采用了DrawingCache機制 : 

1. 通過budingDrawingCache将view的視圖繪制到一個Bitmap上

2. 渲染view時,如果getDrawingCache傳回了之前緩存的視圖Bitmap,則直接使用該Bitmap進行繪制

DrawingCache的性能提升是以增加記憶體消耗(Bitmap)為代價的,如果一個app中使用DrawingCache的視圖數量過多,則會引起頻繁GC,反而導緻性能嚴重下降。此時可通過:

1. 禁用DrawingCache

2. 提高view的onDraw性能

提高整體性能。

附:禁用DrawingCache的方法:

@Override

public Bitmap getDrawingCache() {

return null;

}

@Override

public Bitmap getDrawingCache(boolean autoScale) {

return null;

}

@Override

public void buildDrawingCache(final boolean autoScale) { //不支援DrawCache

}

@Override

public void buildDrawingCache() { //不支援DrawCache

}