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的问题)