不久前写了篇文章《Google I/O 21 Android Gradle Plugin 更新总结》,今天被 Google 的 “Android 开发者” 转载了。但收到了一些反馈是:能不能也写一些更基础的文章。确实我接触过的绝大多数 Android 开发者都对 Android 构建方面的知识有种敬畏感,Gradle + Android Gradle Plugin(AGP)的组合复杂度不低,而互联网上能找到的系统性资料稀少(英文都不多,中文就更少啦)。
底层技术:Gradle、AGP、Annotation Processor(AP)、AAPT、D8&R8、ByteCode modification、Dex modification、Kotlin Compiler、ZIP&APK&AAR&AAB、IDE Plugin、etc.
架构应用:依赖注入、组件化、插件化、多渠道包、SDK 按需接入、白牌应用、多维度测试(单元、集成、功能测试)、安全防护(混淆、加壳、native 加密...),Jetpack Compose、CICD 以及更多其他的自动化流程;
编译构建的知识不仅是单独的加快构建速度,也,还作用于运行期。才疏学浅,下方的选项仅基于个人的理解来编写,有不足之处欢迎私信我提建议~
build.gradle(.kts)
,对 Gradle、AGP 有基础的认知,例如了解 Gradle 的任务机制,但碰到非 App 源码的编译错误有点不知所措;buildSrc
模块抽取并统一管理依赖、使用自定义 Task 组合 CICD 的流程,运用一些最佳实践来提高编译构建效率;(为方便统计,参与调研请关注公众号“Android高效开发”进行填写)
欢迎关注我的 Github / 公众号 / 播客 / 微博 / Twitter。