Bitmap的内存占用

realWidth = rawWidth * (targetDensity / density);
realHeight = rawHeight * (targetDensity / density);

memory = realWidth * realHeight * pixelSize


targetDensity: 屏幕密度
density: 图片密度(xhdpi/xxhdpi/...)
pixelSize: kUnknown
           kAlpha_8 (1B)
           kRGB_565 (2B)
           kARGB_4444 (2B)
           kRGBA_8888 (4B)
           kBGRA_8888 (4B)
           kIndex_8 (1B)
           kGray_8 (1B)


Bitmap.mBuffer
Android 2.3.3 之前 像素数据是存放在 native memory。
Android 3.0 ~ 7.x 像素数据是存放在 java heap
Android 8.0 之后 像素数据是存放在 native heap
java堆/GC堆有内存大小限制

Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值