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

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

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

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

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

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

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

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

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

https://cloud.tencent.com/developer/article/1013306

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

  在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. 如何减少图片内存占用的方法总结请看 https://cloud.tencent.com/developer/article/1013306

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏搞前端的李蚊子

echarts柱状图标签显示不完全的问题

echarts 柱状图当x轴标签数目超过一定数目时在小尺寸设备上第一个和最后一个标签不显示(不是重叠),axisLabel设置interval:0也不起作用; ...

3403
来自专栏一场梦

PHP网址缩短算法代码(修复PHP7.0问题)

1763
来自专栏debugeeker的专栏

《coredump问题原理探究》windows版6.3节虚函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

611
来自专栏GAN&CV

深度学习优化器算法详解:梯度更新规则+缺点+如何选择

转载自:https://mp.weixin.qq.com/s/RZc1PUgZs1BqRPeyBmTELA

1922
来自专栏生信技能树

【视频讲解】-使用rmarkdown来制作html报表

第一步:安装R语言及Rstudio 首先根据操作系统来安装R语言软件 最好是安装最新版 Download R for Windows from CRAN Dow...

3547
来自专栏debugeeker的专栏

《coredump问题原理探究》windows版5.2节数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

703
来自专栏人工智障

visdom的安装及在pytorch下损失函数的可视化应用

更新:新版visdom0.1.7安装方式为:conda install -c srivasv visdom 

2900
来自专栏WOLFRAM

各位, 还记得昨天我们留下的问题吗? 想要求出某个区域上的最大值?

923
来自专栏debugeeker的专栏

《coredump问题原理探究》windows版6.5节多继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

691
来自专栏陈仁松博客

在Windows下安装TensorFlow

目前TensorFlow在Windows下只支持Python 3.x。 1.下载Python 首先安装Pythone 3.6.4 下载地址 升级pip pyth...

3974

扫码关注云+社区