Skip to content

Instantly share code, notes, and snippets.

@Hasiy
Last active November 7, 2019 05:33
Show Gist options
  • Save Hasiy/3ffa464d1f1c6792fabff806d2178952 to your computer and use it in GitHub Desktop.
Save Hasiy/3ffa464d1f1c6792fabff806d2178952 to your computer and use it in GitHub Desktop.
Android 8.0 的Bitmap:
创建native层Bitmap,在native堆申请内存。
通过JNI创建java层Bitmap对象,这个对象在java堆中分配内存。
Android 7.0 的Bitmap:
通过JNI调用java层创建一个数组
然后创建native层Bitmap,把数组的地址传进去。
Android 3.0 以下Bitmap像素内存据说也是放在native堆的,
但是需要手动释放native层的Bitmap,
也就是需要手动调用recycle方法,native层内存才会被回收。
当内存不足的时候,Activity、Fragment会调用onLowMemory方法,可以在这个方法里去清除缓存,Glide使用的就是这一种方式来防止OOM。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment