AndResGuard

AndResGuard 是一个缩小 apk 体积和资源混淆的工具,它的工作原理和 Java Proguard 类似,但是只针对资源。它会将原本冗长的资源路径变短,例如将 res/drawable/wechat 变为r/d/a,把文件资源 wechat.png 重命名为 a.png,最后它会使用 7zip 重新压缩 apk,已达到减小应用体积的目的。
AndResGuard (5300+ stars): https://github.com/shwenzhang/A

packer-ng-plugin

PackerNg 是一个极速渠道打包工具,打 100 个渠道包只需要 10 秒钟。它同时支持集成打包和脚本打包,而且配置相当灵活,你还可以在代码中进行对渠道进行配置。另外,它也有详尽的插件配置示例说明,所以使用起来还是非常方便的。
packer-ng-plugin (3900+ stars): https://github.com/mcxiaoke/pac

Booster

Booster 是一款专门为移动应用设计的易用、轻量级且可扩展的质量优化框架,其目标主要是为了解决随着 APP 复杂度的提升而带来的性能、稳定性、包体积等一系列质量问题。

Booster 提供了性能检测、多线程优化、资源索引内联、资源去冗余、资源压缩、系统 Bug 修复等一系列功能模块,可以使得稳定性能够提升 15% ~ 25%,包体积可以减小 1MB ~ 10MB。
packer-ng-plugin (4100+ stars): https://github.com/didi/booster

gradle-packer-plugin

gradle-packer-plugin 是Android多渠道打包工具Gradle插件,可方便的于自动化构建系统集成,通过很少的配置可实现如下功能 :

  • 支持自动替换AndroidManifest文件中的meta-data字段实现多渠道打包
  • 支持自定义多渠道打包输出的存放目录和最终APK文件名
  • 支持自动修改versionName中的build版本号,实现版本号自动增长
    gradle-packer-plugin 库路径: com.mcxiaoke.gradle:packer:1.0.+ 简短名:packer,可以在项目的 build.gradle 中指定使用
    packer-ng-plugin (4100+ stars): https://github.com/mcxiaoke/gradle-packer-plugin

Ruler

Ruler 可帮助您分析 Android 应用程序的大小。为您的每个应用变体添加任务。运行此任务将构建应用程序并生成 HTML 报告,您可以使用它来分析应用程序大小。如果您想进一步处理数据,它还将生成 JSON 报告。
packer-ng-plugin (1k stars): https://github.com/spotify/ruler

其他插件推荐

access-inline-plugin(access方法内联)
shrink-r-plugin(R文件瘦身和无用资源检查)
closeable-check-plugin(文件流的close检查)
const-inline-plugin(常量内联)
field-assign-opt-plugin(优化多余赋值指令)
getter-setter-inline-plugin (getter和setter方法内联)
method-call-opt-plugin(干净地删除某些方法调用,如Log.d)
coverage-plugin(线上代码覆盖率)
refer-check-plugin(检查是否有调用不存在的方法和引用不存在的字段)
serialization-check-plugin(序列化检查)
SourceFileKiller(删除SourceFile和行号属性,作为示例)
ButterKnifeChecker(检测跨module使用ButterKnife可能导致的问题)
RFileKnife(修复R.java太大编译报code too large的问题)