Android图片占用内存全面分析

 更新时间:2014年03月01日 15:03:39   作者:  
这篇文章主要介绍了Android图片占用内存全面分析,需要的朋友可以参考下

曾经有一个朋友问过我一个问题, 一张512*512  150KB PNG格式图片和一张512*512 100KB 压缩比是8的JPG格式的图片,加载到内存中,也就是加载到一个Bitmap中,哪个占用的内存大? 这个问题似乎有点难回答,测试一下就知道了.

好了,按照要求我准备了三张图片,

1. 512*512px, 114KB, PNG

2. 512*512px, 138KB, JPG ,压缩比 12

3. 512*512px, 57KB, JPG,压缩比 8

接下来是写一个Demo,一个Bitmap加载不同的图片,然后使用bitmap.getRowBytes() * bitmap.getHeight();得到图片的内存占用情况.(这么简单的程序就不放出来献丑了)

得到的数字居然都是一样的. 刚好是4MB,为什么是4MB? 512*512*4*2,这么算出来的,Bitmap默认加载使用ARGB_8888,每个像素会占用4byte,因为每个像素有两个Chanel.

所以说, Android图片占用内存大小只 和 图片分辨率(像素)及色彩模式有关系.可以参考Bitmap源代码

复制代码 代码如下:

/**
         * Each pixel is stored on 4 bytes. Each channel (RGB and alpha
         * for translucency) is stored with 8 bits of precision (256
         * possible values.)
         * 
         * This configuration is very flexible and offers the best
         * quality. It should be used whenever possible.
         */ 

今天终于解开了我心里的一个结,以前总以为加载越大的图片就会占用得越多.

PS:难道Bitmap渲染是使用OpenGL的吗?在Debug中看到了以下信息:

这是后来我加载了一张数码相机拍的照片后看到的.

相关文章

  • Android 代码一键实现银行卡绑定功能

    Android 代码一键实现银行卡绑定功能

    这篇文章主要介绍了Android 代码一键实现银行卡绑定功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android仿微信网络加载弹出框

    Android仿微信网络加载弹出框

    这篇文章主要为大家详细介绍了Android仿微信网络加载弹出框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Android滑动动态分页实现方法

    Android滑动动态分页实现方法

    这篇文章主要介绍了Android滑动动态分页实现方法,结合实例形式分析了Android实现滑动动态分页的操作步骤与核心实现代码,需要的朋友可以参考下
    2016-10-10
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法

    解析Android应用启动后自动创建桌面快捷方式的实现方法

    和IOS开发和Windows Phone开发相比,Android是开放的,Android上的开发也相对更加灵活,能够做很多事情。有的朋友会发现,在某些Android应用安装以后,第一次运行,就会在桌面创建快捷方式。这是如何做到的呢
    2013-05-05
  • Android WebView实现文件下载功能

    Android WebView实现文件下载功能

    这篇文章主要为大家详细介绍了Android WebView实现文件下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android自定义荷载进度的两种方法

    Android自定义荷载进度的两种方法

    进度条在App中非常常见,例如下载进度、加载图片、打开文章、打开网页等等……本篇文章主要介绍了Android自定义荷载进度的两种方法,有需要的朋友可以了解一下。
    2016-10-10
  • ViewPager 滑动一半的判断方法以及左滑右滑判断实例

    ViewPager 滑动一半的判断方法以及左滑右滑判断实例

    下面小编就为大家带来一篇ViewPager 滑动一半的判断方法以及左滑右滑判断实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 移动端使用CSS或JS判断横屏和竖屏的讲解

    移动端使用CSS或JS判断横屏和竖屏的讲解

    今天小编就为大家分享一篇关于移动端使用CSS或JS判断横屏和竖屏的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Android应用开发之代码混淆

    Android应用开发之代码混淆

    Android项目中的混淆很easy,之所以写这篇总结是由于近期发现公司的代码居然没有混淆,反编译后代码随手可得。很震惊。
    2014-07-07
  • Android利用ZXing扫描二维码的实例代码解析

    Android利用ZXing扫描二维码的实例代码解析

    这篇文章主要介绍了Android利用ZXing扫描二维码的实例解析,代码简单易懂,非常不错,需要的朋友可以参考下
    2016-12-12

最新评论