美文网首页
Android性能优化(二)图片优化

Android性能优化(二)图片优化

作者: BlingBest | 来源:发表于2019-01-04 15:38 被阅读257次

             图片的加载和显示是每个商业App都避免不了的问题,对于图片重度依赖类App,例如壁纸类应用,图片社交类应用,对于图片的处理将会影响到整个App的用户体验

    图片的格式


              目前移动端Android平台原生支持的图片格式主要有:JPEG,PNG,GIF,BMP和WebP(Android4.0开始支持),但是在Android应用开发中能够使用的编码格式只有其中的三种:JPEG,PNG,WebP,图片格式可以通过查看Bitmap类的CompressFormat枚举值来确定。

    如果要在应用层使用GIF格式的图片,那么需要自己引入第三方函数库进行支持。

    JPEG

    JPEG是一种广泛使用的有损压缩图像标准格式,它不支持透明和多帧动画,一般摄影类作品最终都是以JPEG格式展示,通过控制压缩比,可以调整图片的大小。

    PNG

    PNG是一种无损压缩图片格式,它支持完整的透明通道,从图像处理领域讲,JPEG只有RGB三个通道,而PNG有ARGB四个通道,由于是无损压缩,因此PNG图片占用空间一般比较大,会无形中增加最终App的大小,在做App瘦身时一般要对PNG图片进行处理以减小其占用的体积。

    GIF

    GIF是一种古老的图片格式,它诞生与1987年,它的特点是支持多帧动画,社交平台上面发送的各种动态表情,大部分都是基于GIF来实现的。

    WebP

    由Google在2010年发布,它支持有损和无损压缩格式,支持完整的透明通道,也支持多帧动画,是一种比较理想的图片格式,目前国内很多主流的App都已经应用了WebP,在既保证图片质量又要限制图片大小的需求下,WebP应该是首选。

    图片的压缩


    目前无论Android 平台还是IOS平台,大对数App在搭建界面时使用的几乎都是PNG格式图片资源,除非你得项目已经全面支持WebP格式,否则你都会面临对PNG图片瘦身的要求,在这里,我们可以通过几个工具对PNG图片进行压缩来达到瘦身的目的。

    1 无损压缩ImageOptim

    ImageOptim是一个无损的压缩工具,它通过优化PNG压缩参数,移除冗余元数据以及非必须的颜色配置等方式,在不牺牲图片质量的前提下,既减小了PNG图片占用的空间,又提高了加载的速度

    2 有损压缩ImageAlpha

    ImageAlpha是ImageOptim作者开发的一个有损的PNG压缩工具,经跟该工具压缩的图片,需要经过设计师的检视才能最终上线,否则可能会影响到整个APP的视觉效果

    3 有损压缩TinyPNG

    TinyPNG也是比较知名的有损PNG压缩工具,它以Web站点的形式提供,没有独立的app安装包,同所有的有损压缩工具一样,经过压缩的图片,需要经过设计师的检视才能最终上线

    4 PNG/JPEG转换为WebP

    如果你得APP最低支持到Android 4.0,那么可以直接使用系统提供的能力来支持WebP,如果是4.0以下的系统,也可以提供在APP中集成第三方函数库例如webp-android-backport来实现对WebP的支持,根据Google的测试,无损压缩后的WebP比PNG文件少了40%的文件大小

    5 尽量使用NinePatch格式的PNG图

    .9.png图片格式简称NinePatch图,本质上仍然是PNG格式图片,它是针对Android 平台的一种特殊PNG图片格式,可以在图片上指定位置拉伸或者填充内容,NinePatch图的优点是体积小,拉伸不变性,能够很好的适配Android 各种机型,Android SDK自带了NinePatch图的编辑工具,位于sdk/tools/draw9patch,点击启动即可,当前Android Studio也集成了PNG转NinePatch的功能,我们只需要右键点击需要转换的PNG图片,在弹出的对话框中选择Create-9-patch File即可

    相关文章

      网友评论

          本文标题:Android性能优化(二)图片优化

          本文链接:https://www.haomeiwen.com/subject/cmthrqtx.html