上篇文章谈到了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);
- ......
- }