位图和Android堆

时间:2012-02-01 15:00:34

标签: android bitmap heap surfaceview ddms

我的应用程序使用SurfaceView的一些位图。对于经常被召回的位图,我将它们存储为类字段,即当我创建SurfaceView实例的扩展时,我有

bitmap_puppyicon = BitmapFactory.decodeResource(getResources(),R.drawable.puppy);

其中bitmap_puppyicon是我的扩展SurfaceView的类变量。这意味着,我认为,这是在堆上。

对于使用一次或两次左右的位图,我在onDraw()方法中动态创建它们。

我在DDMS中检查了堆,觉得我可以将更多的位图存储为类变量,而不是在onDraw()中创建它们。

令我惊讶的是,这样做后,堆大小下降了几个百分点。我误解了什么吗?为什么存储更多的位图会使堆变小?

1 个答案:

答案 0 :(得分:0)

它在引擎盖下使用skia,而堆不是位图所在的地方,在堆中只有位图的链接