此文件较老,仅作为遗留产物
构建优化
以下这些点,是对组件化项目实施后的一些优化选择。
依赖冲突提醒
在复杂的工程中,依赖冲突的问题更需要关注。危险的依赖冲突会导致不兼容的问题,从而发生运行时崩溃,而无法在编译期间感知。依赖冲突提醒是一个基于Gradle Dependencies的脚本,周期运行,用于分析检查一些处于“监视列表”中的模块所使用的依赖是否发生了冲突。会通过邮件发出冲突提醒以及改进建议督促模块开发者跟进依赖统一。'严格'或'宽松'模式下将意味着发现上述情况时,将直接拒绝构建或仅仅只是发送提醒。
关系构建(自底而上)
一个自定义的构建脚本。周期运行,旨在以某种特定的构建方式去分析检查各个模块的问题。
仓库过滤配置
使用gradle5.1增加的仓库过滤配置,可以针对JdGroup这类很明确的依赖项做过滤。可大幅加快Gradle Sync的时间成本。对于复杂的工程,时间从2min+缩减到30s。
构建环境变量,抛弃无意义的Flavor
通过AGP在Build.gradle中增加BuildConfig字段支持。读入配置来源可以是脚本注入gradle.properties或编译器参数。
减少了无意义的打包分支。减少了无意义的构建配置代码提交。结合无意义的Flavor,甚至是优化掉了没有特别意义的Flavor,构建时间缩少40%。为打包节省的时间和维护成本每个版本减少了应该以小时、1天来计了。
- 网关环境:线上,预发,测试
- 抓包特性:支持抓包,不支持抓包
- 安全特性:加固,不加固
- 签名特性:正式签名,非正式签名
- 分支选择、版本管理。
测试检查
周期性运行的构建检查、内存泄漏检查、兼容性检查、安全检查、业务自动化回归检查、单元测试检查等。