APK 瘦身

首先避免重复的库和资源,在实现功能的前提下采用更小的库等

  • 开启minifyEnabled混淆代码,很难发现错误,一定要经过严格测试。

    android { buildTypes { release { minifyEnabled true } } }
    
  • 开启shrinkResources去除无用资源

    android { buildTypes { release { shrinkResources true } } }
    
  • 若暂不考虑国际化,可配置只支持的语言,删除无用的语言资源

    android { defaultConfig { resConfigs "zh" } }
    

图片资源压缩,减少页面载入时间,节省用户的流量

  • 尽量使用一套资源,对于严重影响UI的可单独适配个别资源

  • 使用tinypng压缩,很多图片完全可以适当的缩小而对视觉影响是极小的。

  • 将比较大的png转成jpg,如果对于非透明的大图,jpg将会比png的大小有显著的优势,通常会减小50%+。

  • 适当将图片转成WebP格式

    • Android 4.0+开始原生支持,但是不支持包含透明度,直到Android 4.2.1+才支持显示含透明度,Android 4.0 以下需要WebP 解析库来支持,iOS WebP 解析库

    • 命令行处理WebP

      • Linux安装 WebP 工具:

        sudo apt-get install webp

      • 语法

        将 JPG 或 PNG 转换为 WEBP:cwebp [-q 图像质量] [JPEG/PNG文件名] -o [WebP文件名]

        将 WEBP 图片转换成 PNG:dwebp [WebP文件名] -o [PNG文件名]

        其他的查文档

      • 批量转换的脚本

    • 图形化处理WebP — XnConvert

      sudo dpkg -i XnConvert-linux-x64.deb

    • 查看WebP图像 — gThumb

      sudo apt-get install gthumb

  • 覆盖第三库里的大图,考虑用1×1的透明图替换第三方库中没有用到的图

  • 尽量使用代码实现去代替对应的图片

    • 用shape 代替纯色或渐变的图片
    • 在selector文件,很多相似的图片只是颜色不同,通过android support库我们能减少这样的文件。参考代码

使用微信资源压缩打包工具

  • 详情参考
  • 原理介绍

插件化与Hybrid, 优化一些安装包加载多模块,主题切换,热修复的问题。

  • 插件化
  • Hybrid

你可能感兴趣的:(Android)