Android 优化总结

优化,网络优化,代码优化,apk优化,图片加载优化,架构优化

apk内部图片优化:控制apk大小

  • 几种图片的主要特点:
    webp:文件最小,有透明通道。
    jpg:文件较小,无透明通道。
    png:文件较大,有透明通道。
  • 对于小图标:
    小图标大多是不规则形状,显示时多会要求能看到后方背景,所以需要有透明通道,一般使用png。尺寸小,没必要转webp。
    如果图标后方背景为纯色且确定,那么直接用jpg就可以了。
    UI给的png图应当再通过tinypng或者“智图”将图标文件大小缩小一些再放入drawable文件夹中。
  • 大图,背景图,默认图:
    上传到“智图”,转成webp。
  • ui设计图尺寸和切图:如何只切一套图就够用?
    查友盟统计数据知道,市场主流屏幕为720p和1080p。
    ui按1080p的尺寸来做设计图,在此基础上切一套图,放于xxhdpi下即可适配大多数屏幕了。
  • 一些规则的图案,能用shape画就没必要切图。

图片处理,上传,压缩,图片库选择

图片的优化,无非就是,大小的压缩,裁剪时候尽量减少占用,释放内存
推荐一些好的方案和库。
图片选择和裁剪
多图选择
图片上传压缩
服务器端的图片处理api-七牛
客户端:fresco-通过downsampling + resizing 来最大化减少bitmap占用的内存-bitmap解码设置成RGB565,以减小内存占用
图片常见效果-使用开源框架NativeStackBlur
图片常见效果-fresco封装好的高斯模糊处理器:BlurPostprocessor

关于Fresco和官方Glide选择,最好用Fresco,但是体量比较大,Glide谷歌官方集成gifdrawable 等。ImageLoader就放弃吧过时了。
https://github.com/glassLake/CropUtils/blob/master/CropUtils.java
https://github.com/Yalantis/uCrop
https://github.com/glassLake/PhotoPicker
https://github.com/Curzibn/Luban
https://github.com/glassLake/ServerPicUtils
https://github.com/Commit451/NativeStackBlur
https://github.com/wasabeef/fresco-processors

待续。。

你可能感兴趣的:(Android 优化总结)