Android图片占用内存全面分析

时间:2023-02-20 01:05:38 

曾经有一个朋友问过我一个问题, 一张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图片占用内存全面分析

所以说, 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,图片,占用内存
0
投稿

猜你喜欢

  • Android开发flow常见API的使用示例详解

    2021-09-25 05:27:49
  • C#应用ToolStrip控件使用方法

    2023-05-23 09:10:18
  • Spring Native打包本地镜像的操作方法(无需通过Graal的maven插件buildtools)

    2023-11-25 04:24:30
  • Android 静默安装实现方法

    2021-08-04 05:11:25
  • Android 微信6.1 tab栏图标和字体颜色渐变的实现

    2023-12-14 22:34:04
  • Java中的Object.getClass()方法解析

    2022-05-06 18:54:48
  • c#和javascript函数相互调用示例分享

    2023-10-08 21:33:52
  • android中实现在ImageView上随意画线涂鸦的方法

    2023-03-04 07:55:23
  • JAVA读取文件流,设置浏览器下载或直接预览操作

    2023-10-06 09:20:59
  • Android实现纸飞机的简单操作

    2022-05-16 12:26:04
  • opencv配置的完整步骤(win10+VS2015+OpenCV3.1.0)

    2023-06-28 14:55:19
  • 初识Spring Boot框架之Spring Boot的自动配置

    2022-08-25 10:27:57
  • Java实现按权重随机数

    2023-11-28 23:15:32
  • Java实现微信发红包

    2021-07-22 05:11:07
  • IntelliJ IDEA最佳配置(推荐)

    2023-11-17 01:55:44
  • 浅谈Java代码的 微信长链转短链接口使用 post 请求封装Json(实例)

    2023-07-27 19:36:09
  • Java开发环境jdk 1.8安装配置方法(Win7 64位系统/windows server 2008)

    2022-05-11 20:00:58
  • java多线程中执行多个程序的实例分析

    2023-03-11 18:21:58
  • C#将html table 导出成excel实例

    2023-12-20 04:58:55
  • 深入探讨Java多线程中的volatile变量

    2023-08-31 02:32:18
  • asp之家 软件编程 m.aspxhome.com