文章参考:

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

有了上图额理论支撑,Bitmap优化图片内存,到底优化什么 ?

理论一:什么是DPI ,什么是分辨率,什么是密度

先摘抄 DisplayMetrics中 官方 对 密度(Density)和分辨率(DensityDpi)解释

  • density:The logical density of the display. (逻辑意义上的屏幕密度)

  • This is a scaling factor for the Density Independent Pixel unit, where one DIP is one pixel on an approximately 160 dpi screen (for example a 240x320, 1.5”x2” screen), providing the baseline of the system’s display. Thus on a 160dpi screen this density value will be 1; on a 120 dpi screen it would be .75; etc.

    This value does not exactly follow the real screen size (as given by xdpi and ydpi, but rather is used to scale the size of the overall UI in steps based on gross changes in the display dpi. For example, a 240x320 screen will have a density of 1 even if its width is 1.8”, 1.3”, etc. However, if the screen resolution is increased to 320x480 but the screen size remained 1.5”x2” then the density would be increased (probably to 1.5).

  • densityDpi:The screen density expressed as dots-per-inch. (每英寸屏幕上的像素点)

  • 所以简单来说,Dentisy 是逻辑上的密度,DPI 就是分辨率,通常我们将160分辨率 密度值为1 

  • 理论二:一张图片占据了多大内存

  • 移动客户端对高清大图是很头疼的,问什么头疼呢?OOM内存溢出呗,那么一张图片到底用了多大内存了,Android Api 有个函数可以计算

  • public final int getByteCount() {// int result permits bitmaps up to 46,340 x 46,340return getRowBytes() * getHeight();
    }

    通过这个方法,我们就可以获取到一张 Bitmap 在运行时到底占用多大内存了。

  • 一张 522x686 的 PNG 图片,我把它放到 drawable-xxhdpi 目录下,在三星s6上加载,占用内存2547360B,就可以用这个方法获取到。

图像系列:Bitmap: Bitmap内存优化相关推荐

  1. Android之Bitmap的内存优化方案总结

    在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图 ...

  2. Android对Bitmap的内存优化

    一 .简要 在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常. ...

  3. 「性能优化系列」APP内存优化理论与实践

    当一个应用同时运行越来越多的任务以及复杂的业务,Android系统的内存管理机制已经无法满足内存的释放与回收,为了应用的稳定性与性能,去控制内存的创建和回收就成为了一个重要的命题. 本篇文章主要涉及内 ...

  4. 抖音 Android 性能优化系列:Java 内存优化篇

    内存作为计算机程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿.ANR.黑屏,重则导致用户应用程序发生 OOM(out of memory ...

  5. Android性能优化系列:Bitmap

    文章目录 Bitmap 简介 Bitmap 的创建 不同系统版本 Bitmap 的内存分配策略 Bitmap 内存占用计算 在电脑查看的图片大小和运行内存大小区别 图片占用内存计算 Bitmap 内存 ...

  6. 内存优化 · 基础论 · 初识 Android 内存优化

    [小木箱成长营]内存优化系列文章: 内存优化 · 工具论 · 常见的 Android 内存优化工具和框架 内存优化 · 方法论 · 揭开内存优化神秘面纱 内存优化 · 实战论 · 内存优化实践与应用 ...

  7. ANDROID内存优化(大汇总——中)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  8. Android内存优化汇总

    写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在A ...

  9. Android性能优化(二)—— 内存优化

    在Android系统中,垃圾回收是自动的,比较隐蔽,这就导致一些内存问题表现的并不明显,出现问题后难以定位.常见的内存问题有内存泄漏.内存溢出(Out of Memory).内存抖动等. 我们做内存优 ...

最新文章

  1. Android众说纷纭分辨率
  2. 笔记-信息系统安全管理-安全审计
  3. 强行删除文件 windwos10_如何彻底删除 Windows 当中的顽固文件?
  4. [TPYBoard - Micropython] 五分种学会用TPYBoard - GPS 制作短信群发机
  5. 动态代理之Cglib浅析
  6. Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令
  7. datetimepicker获取年月日_bootstrap-datetimepicker 获取时间
  8. 字节流读数据 一次读一个字节
  9. 使用apache+mod_wsgi方式部署完成后,访问网站时400(Bad Request)
  10. Microsoft Data Access Components(MDAC) 结构以及一些连接SQL数据库的架构基础
  11. 数组遍历,判断数组中的对象中某一属性值时候为空
  12. 管理感悟:工作计划的作用
  13. UReport2导出word报错
  14. 关于手动误删表空间文件出现ora01033解决办法
  15. composer 换国内镜像
  16. 移动OA,颠覆企业传统助力办公更高效
  17. Python爬虫爬取微信朋友圈
  18. 蓝牙协议规范(射频、基带链路控制、链路管理)
  19. 0.96寸OLED(二)SPI+DMA刷新OLED
  20. 14 个最佳 Vue UI 组件库推荐

热门文章

  1. 健康饮食(地中海式饮食+DASH饮食)
  2. 个人项目 小跟班——蓝牙控制小车(蓝牙控制篇)
  3. 液体点滴速度监控报警装置(51单片机)
  4. AWS Ec2实例挂载S3存储桶实践
  5. 解析面试常问题之JavaScript中的闭包概念及应用,顺便普及一下大家口中常说的内存泄漏问题
  6. 华为数通笔记-NSR
  7. 社恐怎么办?这个漫画或许能治愈你
  8. 一步一步安装 Microsoft .NET Pet Shop 4.0
  9. 夫妻租房,同时办取上海市居住证 攻略
  10. Essentially No Barriers in Neural Network Energy Landscape