Android高效内存1:一张图片占用多少内存

  在做内存优化的时候,我们发现除了解决内存泄露问题,剩下的就只有想办法减少真实的内存占用。而在App中,大部分内存可能被我们图片占用了,所以减少图片的内存占用可以带来直接的效果。本文就简单介绍一张图片到底占用多少内存,我们先假设我们有一张图片时 600 * 800 的,图片占用空间大小假设是 100KB。另外本文知识点也是面试官喜欢问的一个点,看看自己的回答到什么级别了。

图片内存大小跟占用空间大小有什么关系?

  占用空间的大小不是图片占用内存的大小,一些初学者可能会误解一下。占用空间是在磁盘上占用的空间,内存大小是加载到内存中占用的内存大小。两个只是单位是一样的,本质不是一个概念。

一张图片到底占用多少内存呢?

  1. 图片占用内存的计算公式:图片高度 * 图片宽度 * 一个像素占用的内存大小

  2. 所以上面的图片占用内存是:800 * 600 * 4 byte = 1875KB = 1.83M

上面的计算公式中,为什么是4byte呢?

  4byte是跟图片的编码格式有关系,更多详情请移步

   http://www.cnblogs.com/popfisher/p/6770018.html

图片所在目录对内存的影响?

  在Android中,图片的存放目录和手机的屏幕密度影响图片最终的大小,举个例子:

  假设我们的图片放到xhdpi目录下,那么我们本文中的图片占用的内存大小如下:

  屏幕密度为2的设备:800 * 600 * 4byte = 1.83M

  屏幕密度为3的设备:800 * 1.5 * 600 * 1.5 * 4byte = 1.83 * 2.25M = 4.12M

  所以,计算图片占用内存大小的时候,要考虑图片所在的目录跟设备密度,这两个因素其实影响的是图片的高宽,android会对图片进行拉升跟压缩。

总结

  1. 图片确实很占用内存,内存优化先考虑图片内存占用;

  2. 一定要避免使用大图片,这就是.9图很有用的原因之一;

  3. 图片的大小对内存的影响是正比关系;

  4. 本文只是简单的告知读者怎么计算图片的内存大小。

  5. 如何减少图片内存占用的方法总结请看 http://www.cnblogs.com/popfisher/p/6770018.html

android 图片占用内存的计算相关推荐

  1. android 图片占用内存大小及加载解析

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 在讲解图片占用内存前,我们先问自己几个问题: 我们在对手机进行屏幕适时,常想可不可以只切一套图适配所有的手机呢? 一张图片加载到手 ...

  2. Android 中图片占用内存分析

    Android 在加载图片的时候一定会考虑到的一个点就是如何防止 OOM,那么一张图片在加载的时候到底会占用多少内存呢?有哪些因素会影响占用的内存呢?知道了这些,我们才能知道可以从哪些点去优化,从而避 ...

  3. Android | 如何计算图片占用内存的大小

    前言 对于一张图片,你知道应该存放在那个资源目录下面吗,或者说,放在那个资源目录下加载起来更省内存呢?在日常开发中我们可能不太注意这些东西,但是这些却是基础,是必不可少的一环,所以这几天重新温习了一下 ...

  4. 安卓图片内存优化(一)——图片占用内存大小的计算

    安卓开发中经常会遇到因为图片处理不当导致的oom问题,因为系统分配给每个应用的最大内存空间是有限的,正常只有几十上百兆(排除通过特殊手段获取到几百兆内存空间的情况).所以为了节省更多的空间需要对图片进 ...

  5. per.ccz与png图片占用内存对比

    pvr相比png优势 1.压缩,2gpu能直接识别,不需要额外的内存开销,3.可以自定义色深 pvr与png的内存占用    转载▼ Zwoptex生成的spritesheet除了可以导出png格式的 ...

  6. 安卓中图片占用内存大小分析

    相关概念: 位深 色彩空间 颜色通道 int型占用字节 位深: 位是二进制的位.位深是指计算机系统中图片的一个像素点占用的二进制位数.例如位深32,就是使用2^8 = 32 位二进制来表示像素值.例如 ...

  7. cocos-js,内存管理2---计算图片占用内存

    一.1张图片内存如何计算 一张图片占用的内存由以下两个因素决定: 图片的像素点个数 单位像素占用的字节数 其中图片的像素点个数是图片的宽度与长度的积,所以一张图片占用的内存值为: 图片长度 * 图片宽 ...

  8. android图片释放内存吗,Android手机真的需要经常清理内存吗

    Android手机需要清内存吗?需要吗?需要吗?需要吗?结论是再明显不过:不需要!其实这个结论也适用iPhone手机,iOS在内存管理方面更为激进. 很长一段时间以来,人们通过以下的办法清理手机内存 ...

  9. android bitmap 占用内存大小,drawable与bitmap内存占用大小

    1, 比较Drawable与Bitmap占用内存大小 2, 比较BitmapFactory类的decodeResource方法与decodeStream方法的效率 好吧,先来看第1个测试! 以下这个是 ...

最新文章

  1. 收缩 tempdb 数据库
  2. 7.unity插件T4M使用
  3. 工作日报模板_千份财会人通用工作模板:自动核算工资、财务分析报表等等
  4. 2018 ICPC Asia Jakarta Regional Contest J. Future Generation 状压dp
  5. 调出sharepoint错误的详细页面
  6. 侯捷面向对象高级编程(二)
  7. unity图片变成马赛克如何取像素并改变颜色_Unity3D-2.5D像素游戏随机地形构造tilemap(rule tile)...
  8. win10网络共享打印机设置
  9. iOS 导航栏遮挡UIViewController问题
  10. Canonical 在 Linux 上提供 Flutter 桌面应用支持
  11. 603. 连续空余座位
  12. node-js——将excel表格转换成json文件
  13. halcon学习之回形针方向检测(一)
  14. 旧手机物联网_而立之年“裸辞”,他用废旧手机搭建庞大物联网,为救600000公顷森林...
  15. 【Unity3D插件】AVPro Video插件分享《视频播放插件》
  16. 计算机断电后信息会丢失的存储设备是什么,断电会使原存信息丢失的储存器是什么...
  17. 计算机启动不能马上联网,电脑开机慢不能联网
  18. android ftp
  19. 跳跳虎回家(国庆10.1模拟赛T2)
  20. c语言outl函数,在作业中Outlook

热门文章

  1. LA 4394 刷字符串(区间dp)
  2. 怎么提高mysql多表查询效率_MySQL创建index提高多表查询效率
  3. pageInfo的转化,do转vo
  4. DIT和DIF的基2FFT算法
  5. 如何评测软件系统的安全性
  6. 如何查阅NLP资料 转自https://blog.csdn.net/qq_27009517/article/details/80841146
  7. jkd8 Stream的使用
  8. java中的反射机制是什么
  9. 超赞的卡尔曼滤波详解文章
  10. Qt笔记 之 QListWidget控件的使用