android 性能优化---(5)Bitmap图片资源优化
前言
- 在
Android
开发中,性能优化策略十分重要 - 本文主要讲解性能优化中的Bitmap 使用优化,希望你们会喜欢
目录
1. 优化原因
即 为什么要优化图片Bitmap
资源,具体如下图:
2. 优化方向
本文将从 以下方面优化图片Bitmap
资源的使用 & 内存管理
3. 具体优化方案
下面,我将详细讲解每个优化方向的具体优化方案
3.1 使用完毕后 释放图片资源
优化原因
使用完毕后若不释放图片资源,容易造成内存泄露,从而导致内存溢出优化方案
a. 在Android2.3.3(API 10)
前,调用Bitmap.recycle()
方法
b. 在Android2.3.3(API 10)
后,采用软引用(SoftReference)
具体描述
在Android2.3.3(API 10)
前、后,Bitmap对象 & 其像素数据 的存储位置不同,从而导致释放图片资源的方式不同,具体如下图
注:若调用了
Bitmap.recycle()后
,再绘制Bitmap
,则会出现Canvas: trying to use a recycled bitmap
错误
3.2 根据分辨率适配 & 缩放图片
优化原因
若Bitmap
与 当前设备的分辨率不匹配,则会拉伸Bitmap
,而Bitmap
分辨率增加后,所占用的内存也会相应增加因为
Bitmap
的内存占用 根据x
、y
的大小来增加的优化方案
关于图片资源适配屏幕分辨率,具体请看文章:Android 屏幕适配:最全面的解决方案
3.3 按需 选择合适的解码方式
优化原因
不同的图片解码方式 对应的 内存占用大小 相差很大,具体如下
优化方案
根据需求 选择合适的解码方式- 使用参数:
BitmapFactory.inPreferredConfig
设置 - 默认使用解码方式:
ARGB_8888
- 使用参数:
3.4 设置 图片缓存
优化原因
重复加载图片资源耗费太多资源(CPU
、内存 & 流量)优化方案
关于三级缓存机制,此处不作过多描述,具体请看文章:三级缓存说明
至此,关于图片资源Bitmap
的使用优化讲解完毕
4. 总结
- 本文全面总结了图片资源
Bitmap
的使用优化,具体如下图
android 性能优化---(5)Bitmap图片资源优化相关推荐
- Android性能优化:那些关于Bitmap图片资源优化的小事
前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的Bitmap 使用优化,希望你们会喜欢 Carson带你学Android性能优化系列文章: Android性能优化:性能优 ...
- Android系统性能优化(71)---关于Bitmap图片资源优化的小事
Android性能优化:那些关于Bitmap图片资源优化的小事 前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的Bitmap 使用优化,希望你们会喜欢 目录 1. 优化原 ...
- Android性能优化 - 内存优化
性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - TraceView Android性能分析工具 为什么内存优化? 在一个商业项目中,很有可能因 ...
- Android 图片性能优化:Bitmap
一.引入 图片作为内存消耗大户,一直是开发人员尝试优化的重点对象.Bitmap的内存从3.0以前的位于native,到后来改成jvm,再到8.0又改回到native.jvm每个进程都有内存上限,而na ...
- Android性能优化系列之Bitmap图片优化
在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError - 内存溢出),本篇博客,我们将 ...
- Android性能优化系列:Bitmap
文章目录 Bitmap 简介 Bitmap 的创建 不同系统版本 Bitmap 的内存分配策略 Bitmap 内存占用计算 在电脑查看的图片大小和运行内存大小区别 图片占用内存计算 Bitmap 内存 ...
- Android性能优化之内存篇(三)
原文链接:http://hukai.me/android-training-managing_your_app_memory/ http://hukai.me/android-performance- ...
- Android性能优化
Android性能优化 一.布局优化: 1.优化方式: 减少不必要嵌套,尽可能使用LinearLayout.ConstraintLayout等控件 减少颜色覆盖,子控件背景足够,不要在其父控件加颜色 ...
- Android 性能优化——之图片的优化
Android 性能优化--之图片的优化 在Android性能优化中,我们会发现占内存最大的和对性能影响最大的往往是图片资源,其次是控件资源.相对来说,其他的资源的影响会小一点.这里我就先对图片资源的 ...
最新文章
- python file does not exist_python – os.path.exists()的谎言
- 【Android】Handler详解
- 我的 .NET Core 博客性能优化经验补充
- axios vue 加载效果动画_vue中使用axios拦截器实现数据加载之前的loading动画显示 @劉䔳...
- 使用Seaborn和Pandas进行数据可视化
- C++之函数返回数组
- 日照百分率建模及模拟
- 【易实战】Spring Cloud Greenwich Ribbon:负载均衡的服务调用
- 2020字节跳动数据库面试题及答案
- 详细的LaTex语法
- 小米摄像头修改wifi
- 直击网易人工智能事业部:闷声发大财的新面孔
- Predictive and Prescriptive Methods in Operations Research and Machine Learning: An Optimization App
- 分享两篇适合程序员看的书籍——《谁动了我的奶酪》、《你的灯亮着吗?》读后感
- h5+js+ajax+百度翻译API:实现翻译功能
- QT之qss教程- QScrollBar
- Caffeine - Caches - Eviction
- Linux下Watchdog
- GPS导航仪价格到底还要降多少?
- 统计_偏态、峰值(Datawhale概率统计温习2)
热门文章
- 嵌入式Linux系统编程学习之五gcc/g++编译器
- 计算机ip地址无法修改密码,手提电脑怎么修改无线网络的IP地址|无线网络怎么修改密码...
- java 输出定位代码行_指定一个.java文件,输出其代码行数
- Cloudera Manager 5和CDH5(最新版5.1.3) 安装
- Linux服务器SSH免密登录
- centos 7.2安装 lnmp一键安装
- Linux学习之磁盘操作
- MFC改变对话框背景颜色
- Cesium获取经度 ,纬度,高度
- @RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问?