主要观点总结
Bitmap 是 Android 应用中内存占用大户,容易造成 OOM。Google 不断尝试优化 Bitmap 的内存分配和回收策略。深入理解 Bitmap 的内存模型是优化基础。文章深入 Android 6.0 和 8.0 系统源码,总结 Bitmap 运行时内存模型及 Native 内存回收策略。关键点包括 Bitmap 内存模型、不同版本分配策略、Native 内存回收兜底策略、Bitmap 创建过程、回收过程等。
关键观点总结
关键观点1: Bitmap 内存模型
Bitmap 由 Java Bitmap 对象、Native Bitmap 对象和图片像素数据三部分组成,像素数据在不同系统版本采用不同分配策略。
关键观点2: 不同版本分配策略
Android 3.0 前像素数据存 Native 堆,3.0 到 7.1 存 Java 堆,8.0 后存 Native 堆,并新增 Hardware Bitmap。
关键观点3: Native 内存回收兜底策略
Java Bitmap 对象提供 recycle() 方法释放内存,但 Native 内存需依赖 Finalizer 机制或引用机制辅助回收。
关键观点4: Bitmap 创建过程
Bitmap 创建涉及创建解码器、内存分配器、预分配像素数据内存、解码和返回 Java Bitmap 对象等步骤。
关键观点5: 回收过程
Bitmap 提供 recycle() 方法主动回收,Finalizer 机制或引用机制作为兜底策略确保 Java Bitmap 被回收时同时回收 Native 内存。
免责声明
免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。
原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过
【版权申诉通道】联系我们处理。