Glide踩坑

有这样一张照片 1242 × 2208的PNG图片,用Glide加载前后内存飙涨20M!如下图


Glide踩坑_第1张图片
内存飙涨20M
Glide踩坑_第2张图片
内存占用存在两份大data

问题出在,该图片内存占用10M(1242 × 2208 * 4 原始数据) + 10M(copy剪切数据)。有3个疑问

  1. 为什么图片占用10M?Glide内部默认用RGB565啊
  2. 为什么占用了两份内存?
  3. 为什么跳转到下个Activity后,内存没有及时恢复

1. 为什么图片占用10M?Glide内部默认用RGB_565啊

因为UI配的图有Alpha,Glide解析存在Alpha的必须用ARGB_8888

return hasAlpha ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565;

Glide踩坑_第3张图片
UI给的Splash图对应二进制
Glide踩坑_第4张图片
文件魔数解析方式
Glide踩坑_第5张图片
解析结果

2. 为什么占用了两份内存?

你可能感兴趣的:(Glide踩坑)