Bitmap生成和释放流程

      这里写的比较粗糙,只是一些代码的片段,当时比较忙,这是看代码的时候随手做的笔记。看到这篇文章看的人多,现在已经重新写了一下,请参见《BitmapFactory.decodeResource VS BitmapFactory.decodeStream》和《Bitmap的释放流程》,希望对大家有所帮助。


android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:525)

android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:470)
android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
nativeDecodeStream (BitmapFactory.cpp)
doDecode
decoder->decode
this->onDecode (SKImageDecoder_libpng.cpp)
SkImageDecoder::allocPixelRef
allocator->allocPixelRef(this, ctable)
GraphicsJNI::setJavaPixelRef(env, bitmap, ctable, fReportSizeToVM)
Dalvik_dalvik_system_VMRuntime_trackExternalAllocation


GraphicsJNI::createBitmap(env, bitmap, false, ninePatchChunk);


nativeCreate (Bitmap.java)
Bitmap_creator
GraphicsJNI.setJavaPixelRef
Dalvik_dalvik_system_VMRuntime_trackExternalAllocation (dalvik\vm\native\dalvik_system_VMRuntime.c)
dvmTrackExternalAllocation (dalvik\vm\alloc\HeapSource.c)
externalAllocPossible
doThrowOOME




Bitmap.recycle
nativeRecycle
Bitmap_recycle (Bitmap.cpp)
SkBitmap.freePixels
AndroidPixelRef->unref(); (Graphics.cpp)
SkRefCnt.unref
SkDELETE(this); (delete this)
~AndroidPixelRef
Dalvik_dalvik_system_VMRuntime_trackExternalFree
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值