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
}