关于 Android 构建优化、发版自动化、AAB 测试和混淆配置的技术文章。
现在做 Android 发版,AAB 已经是绕不开的格式。Google Play 推荐甚至强制使用 Android App Bundle,很多团队的 CI 产物也从 apk 变成了 aab。
提到 Android 混淆,大部分开发者第一反应是 ProGuard 或 R8。但你知道吗?R8 只混淆 Java/Kotlin 代码,对 res/ 目录下的资源文件名、字符串键名完全不做处理。
开启 ProGuard/R8 混淆后,你的类名、方法名、字段名会被重命名为 a、b、c 这样的短名称。但这套默认命名方案有两个问题:一是太规律,逆向工具一眼就能识别这是混淆后的代码;二是所有项目的混淆结果都长一样,没有任何个性化。
作为一个做了多年 Android 的开发者,每次发版都像一场小型战役。Bundletool 版本不对、签名配置丢失、ProGuard 规则漏写、发布前忘了关 debug 开关……这些问题反复出现,每次都要花时间排查。