我的应用程序使用SurfaceView的一些位图。对于经常被召回的位图,我将它们存储为类字段,即当我创建SurfaceView实例的扩展时,我有
bitmap_puppyicon = BitmapFactory.decodeResource(getResources(),R.drawable.puppy);
其中bitmap_puppyicon是我的扩展SurfaceView的类变量。这意味着,我认为,这是在堆上。
对于使用一次或两次左右的位图,我在onDraw()方法中动态创建它们。
我在DDMS中检查了堆,觉得我可以将更多的位图存储为类变量,而不是在onDraw()中创建它们。
令我惊讶的是,这样做后,堆大小下降了几个百分点。我误解了什么吗?为什么存储更多的位图会使堆变小?
答案 0 :(得分:0)
它在引擎盖下使用skia,而堆不是位图所在的地方,在堆中只有位图的链接