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
}