Android 性能优化(二)

上篇我们讨论了涉及数据结构的选取单例模式中的内存泄漏handler中的内存泄漏以及一些细微的可以增加android性能的方法。本篇继续讨论android性能的优化。

5、图片优化

对于图片,内存优化中有两个手段:
一是减少图片本身所占的内存;
二是缓存经常使用的图片,避免重复创建文件,增加内存的开支
图片有很多种格式,常见的主要有jpeg(有损压缩),png(无损压缩),gif,bmp,webp,在既保证图片质量又要限制图片的大小的情况下,webp是首选。但是大多数app搭建界面时几乎都是png格式,所以我们经常需要对png进行压缩。

5.1 对png进行压缩

imageOptim

无损的压缩工具,不牺牲图片质量的前提下,既减小了png图片占用的空间,又提高了加载速度。

png/jpeg转换为webp

如果是4.0以上的系统,那么直接使用系统提供的能力来支持webp,如果是4.0以下的系统,也可以通过在app中集成第三方函数库,比如webp-android-backport来实现。

尽量使用.9.png

5.2 bitmap图片处理

缓存

图片缓存方案一般有两级,分别是内存缓存和磁盘缓存,可以使用图片加载和缓存库。
picasso,Glide,Fresco等。

设置压缩尺寸

使用BitmapFactory.Options设置inSampleSize, 这样做可以减少对系统资源的要求。

BitmapFactory.Options bitmapFactoryOptions = new BitmapFactory.Options();
bitmapFactoryOptions.inSampleSize = 2;
Bitmap bmp = BitmapFactory.decodeFile(sourceBitmap, options);

设置图片像素属性:

Android中图片有四种属性,分别是:
  ALPHA_8:每个像素占用1byte内存
  ARGB_4444:每个像素占用2byte内存
  ARGB_8888:每个像素占用4byte内存 (默认)
  RGB_565:每个像素占用2byte内存
Android默认的颜色模式为ARGB_8888,这个颜色模式色彩最细腻,显示质量最高。但同样的,占用的内存也最大。 所以在对图片效果不是特别高的情况下使用  RGB_565(565没有透明度属性)

opt.inPreferredConfig = Bitmap.Config.RGB_565;

图片回收

bitmap在不使用的时候要调用Bitmap.recycle()进行回收。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值