欢迎光临
我们一直在努力

第249篇 Bitmap 内存优化:采样、复用与硬件位图

先把结论放在前面:Bitmap 是 Android 应用内存占用里最容易失控的一块,而它的失控通常来自一个误解——以为内存等于图片文件大小。 实际占用是 宽 × 高 × 每像素字节数,一张 4000×3000 的 ARGB_8888 图片,解码后约 46 MB,而它的压缩文件可能只有 2 MB。 Bitmap 优化的核心动作只有一个:按显示尺寸解码,不要按原始尺寸解码。

面试里这题属于\”内存专题里最实用的一块\”。答得浅的是\”用 inSampleSize 采样、调用 recycle()\”;答得深的是能讲清 inPreferredConfig 对每像素字节数的影响、RGB_565 丢失 alpha 与色彩精度、recycle() 的误用风险与框架已回收的场景、以及硬件位图(HardwareConfig)把像素移到图形内存后的能力边界。

先算清内存账

Bitmap 像素数据在 Native 堆,不在 Java 堆。 这一点决定了排查方法:看 dumpsys meminfo 的 Native Heap,而不是堆快照。

配置
每像素字节
4000×3000 解码后
适用
赞(0)
未经允许不得转载:171主机测评 » 第249篇 Bitmap 内存优化:采样、复用与硬件位图
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址