Android 性能优化一例(Bitmap创建时会调用gc)


现象:

做一个小动画,实现方式为每50ms更新一张bitmap, 循环播放,从而达到动画效果。

问题:

发现动画会卡,有时卡在第7帧,有时卡在第10帧,不定。

研究:

使用traceview 工具,发现原来卡的时间 Java虚拟机在做gc (垃圾回收)操作。

跟踪代码,原来每次更新图片时,会创建一个Bitmap,而相关API此时会调用 gc 函数!

解决:

修改代码,预先生成需要的Bitmap, 循环时直接使用。 测试发现,问题解决!

相关内容