现在的位置: 首页 > 综合 > 正文

Bitmap的释放流程

2013年03月25日 ⁄ 综合 ⁄ 共 563字 ⁄ 字号 评论关闭

      上篇文章谈到了Bitmap的生成,现在说说Bitmap的释放,要不总是有种没说完的感觉。

      Bitmap的释放相对来说,比较简单,还是先上张时序图吧!


一些说明:
1,AndroidPixelRef的设置是在Bitmap生成的GraphicsJNI::setJavaPixelRef里完成的,这里可以参见文章《Bitmap的生成流程之BitmapFactory.decodeResource VS BitmapFactory.decodeStream》。具体代码如下:

bool GraphicsJNI::setJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
                                  SkColorTable* ctable, bool reportSizeToVM) {
......
    SkPixelRef* pr = reportSizeToVM ?
                        new AndroidPixelRef(env, addr, size, ctable) :
                        new SkMallocPixelRef(addr, size, ctable);


......
}

2,VMRuntime.trackExternalFree把Bitmap占用的虚拟机heap内存归还。如果你有兴趣的话,请具体参见dalvik\vm\native\dalvik_system_VMRuntime.c。

【上篇】
【下篇】

抱歉!评论已关闭.