作为Android开发,这个知识点一定要知道,官方也改了 2 次

今天面试遇到同学说做过内存优化,于是我一般都会问那 Bitmap 的像素内存存在哪?大多数同学都回答在 JAVA heap 里面,就比较尴尬,理论上你做内存优化,如果连图片这个内存大户内存存在哪都不清楚,实在不太能说得过去 。
Bitmap可以说是Android/ target=_blank class=infotextkey>安卓里面最常见的内存消耗大户了,我们开发过程中遇到的oom问题很多都是由它引发的 。谷歌官方也一直在迭代它的像素内存管理策略 。从 Android 2.3.3以前的分配在native上,到2.3-7.1之间的分配在java堆上,又到8.0之后的回到native上 。几度变迁,它的回收方法也在跟着变化 。
一、Android 2.3.3以前2.3.3以前Bitmap的像素内存是分配在natvie上,而且不确定什么时候会被回收 。根据官方文档的说法我们需要手动调用Bitmap.recycle()去回收:


    推荐阅读