iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android图片占用内存全面分析
  • 668
分享到

Android图片占用内存全面分析

Android 2022-06-06 10:06:16 668人浏览 八月长安
摘要

曾经有一个朋友问过我一个问题, 一张512*512  150KB PNG格式图片和一张512*512 100KB 压缩比是8的JPG格式的图片,加载到内存中,也就是加

曾经有一个朋友问过我一个问题, 一张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源代码

代码如下:
 

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

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

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

您可能感兴趣的文章:android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)android中图片的三级缓存cache策略(内存/文件/网络)解析Android开发优化之:对Bitmap的内存优化详解Android 中对于图片的内存优化方法Android手机内存中文件的读写方法小结android内存优化之图片优化Android编程中避免内存泄露的方法总结Android系统检测程序内存占用各种方法Android开发之图片切割工具类定义与用法示例Android开发实现的内存管理工具类


--结束END--

本文标题: Android图片占用内存全面分析

本文链接: https://www.lsjlt.com/news/27167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中图片占用内存的深入分析
    目录前言一、图片占用内存与宽、高、色彩模式的关系二、图片占用内存与存放文件夹的关系三、从文件中加载图片和从网络加载图片占用内存四、色彩模式五、总结前言 Android 在加载图片的时...
    99+
    2024-04-02
  • 如何实现Android中图片占用内存的深入分析
    小编今天带大家了解如何实现Android中图片占用内存的深入分析,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“如何实现Android...
    99+
    2023-06-26
  • Fedora上桌面环境内存占用测试的示例分析
    这篇文章主要介绍Fedora上桌面环境内存占用测试的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Fedora 中有 40 多种桌面环境(DE)。每种桌面环境都有自己的优点和缺点。通常,根据功能、外观和其它品...
    99+
    2023-06-16
  • Android 图片的三级缓存机制实例分析
    Android 图片的三级缓存机制实例分析当我们获取图片的时候,如果不加以协调好图片的缓存,就会造成大流量,费流量应用,用户体验不好,影响后期发展。为此,我特地分享Android图片的三级缓存机制之从网络中获取图片,来优化应用,具体分三步进...
    99+
    2023-05-31
    android 图片 三级缓存
  • C语言动态内存的分配最全面分析
    目录为什么有动态内存分布malloc函数的使用free函数的用法calloc的用法realloc的使用方法柔性数组为什么有动态内存分布 大家发现一个问题没有,就是我们之前写代码创建数...
    99+
    2024-04-02
  • 阿里云服务器内存占用情况分析
    简介:随着云计算技术的快速发展,越来越多的企业选择使用阿里云服务器来托管他们的业务。然而,由于服务器资源的限制,内存占用问题一直是用户关注的焦点。本文将从阿里云服务器内存占用情况的角度出发,对服务器内存占用情况进行分析,并给出一些解决方案。...
    99+
    2023-12-30
    阿里 内存 情况
  • Android 内存分析(java/native heap内存、虚拟内存、处理器内存 )
    1.jvm 堆内存(dalvik 堆内存) 不同手机中app进程的 jvm 堆内存是不同的,因厂商在出厂设备时会自定义设置其峰值。比如,在Android Studio 创建模拟器时,会设置jvm he...
    99+
    2023-09-14
    java android jvm
  • Android匿名内存深入分析
    目录Android 匿名内存解析MemoryFile使用Service端Client端AshMemory 创建原理AshMemory 读写Linux共享机制简介总结Android 匿...
    99+
    2023-03-15
    Android 匿名内存 Android 内存
  • java各种类型对象占用内存情况分析
    目录前言基本数据类型占用包装类型占用基本类型数组占用封装类型数组占用String占用内存前言 其实一般的程序猿根本不用了解这么深,只有当你到了一定层次,需要了解jvm内部运行机制,或...
    99+
    2024-04-02
  • Android位图(图片)加载引入的内存溢出问题详细解析
    目录1.一些定义什么是内存泄露?什么是位图?2.原理分析2.1 原理分析一2.2 原理分析二3 编程中如何避免图片加载的OOM错误3.1 利用BitmapFactory.decode...
    99+
    2022-12-26
    android 内存溢出 android位图加载引入 android导入图片
  • Java面向对象和内存分析图文详解
    一、Java类 类是面向对象编程中最基本的单位。 Java中的类包含三个内容,分别是: 属性 属性又叫成员变量。 属性用于定义类或类对象的数据(静态特征)。 ...
    99+
    2024-04-02
  • 宝塔面板内存占用率优化
    宝塔程序可以帮助我们快速搭建网站,但是笔者有一台服务器,内存只有1GB,装上宝塔后内存所剩无几,只能勉强部署一个小型服务,于是想到“精简”宝塔程序,先说结果: 初始剩余内存:218MB 优化后剩余内存:581MB 下面是具体步骤: 卸载不...
    99+
    2023-08-18
    linux 后端 服务器
  • android studio内存分析之Memory profiler的使用
    目录 Android Studio中内存分析工具Memory profiler的使用1. 打开Memory Profiler2. 工具使用3. 内存选项说明4. 内存性能分析器概览5. 内存计...
    99+
    2023-10-27
    android studio android ide
  • MongoDB占用内存过大频繁死机的示例分析
    这篇文章将为大家详细讲解有关MongoDB占用内存过大频繁死机的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。从MongoDB 3.4开始,默认的WiredTig...
    99+
    2024-04-02
  • android profiler内存分析怎么实现
    要在Android Profiler中进行内存分析,可以按照以下步骤进行操作: 打开Android Studio,并打开要分析的项...
    99+
    2023-10-24
    android profiler
  • 切片在Golang中有何作用?全面分析
    切片在Golang中有何作用?全面分析 在Golang中,切片(slice)是一种非常重要且常用的数据结构,它可以看作是对数组的一个封装,实现了动态数组的功能。通过切片,我们可以更加灵...
    99+
    2024-03-03
    golang 切片 作用 内存占用
  • Redis内存碎片原理深入分析
    目录前言释放的内存去了哪里?什么是内存碎片?什么导致内存碎片?如何解决?总结前言 我们先来看一个问题, 假设Redis实例保存了5GB的数据,现在删除了2GB的数据,那么Redis...
    99+
    2023-02-01
    Redis内存碎片 Redis 内存
  • Redis内存数据库分片的示例分析
    这篇文章将为大家详细讲解有关Redis内存数据库分片的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 软件下载地址 ·  &...
    99+
    2024-04-02
  • android 如何分析应用的内存(十三)——perfetto
    android 如何分析应用的内存(十三) 本篇文章是native内存的最后一篇文章——perfetto perfetto简介 从2018年始,android开发者峰会正式推出perfetto工具。从...
    99+
    2023-09-20
    perfetto heap_profile heap_profile反混淆 heap_profile符号化 android内存分析
  • 从零到一:全面解析 ASP 页面片段缓存
    ASP 页面片段缓存简介 ASP.NET 页面片段缓存是一种在应用程序的整个生存期内存储常用页面片段(即控件、用户控件和 HTML 块)的技术。它通过将这些片段存储在内存中来工作,这样下次需要时应用程序可以快速访问它们。这可以极大地提高应...
    99+
    2024-02-21
    ASP.NET 缓存 页面片段缓存
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作