atlas-gradle-plugin/README.md
升级android builder 到 2.3.3版本
unit tag 非 diff bundle 保持 不变
tBuildConfig.minPackageId 可设置最小的自动分配packageId,默认35(10进制)开始
加强对插件配置使用的校验
databinding优化,后续bundle的databinding需要独立配置是否启用
tBuildConfig.dataBindingBundles
配置值为 bundle 的packageName
类型为 Set<String>
代码: com.taobao.android.builder.extension.TBuildConfig.dataBindingBundles
atlas.multiDexConfigs.debug.fastMultiDex=true支持google的最新插件,builder : 2.3.0 , gradle : 3.3 , buildTools :25.0.0+
优化atlas插件对官方插件的侵入,允许推荐使用 :
apply plugin: 'com.android.application'
apply plugin: 'com.taobao.atlas'
对多模块更好的支持,回归原本的本地开发模式
新增2种依赖关系
providedCompile : bundle定义运行时依赖,编译运行可见, 最终不会打到bundle的so中
bundleCompile : 在app中定义bundle的依赖
远程bundle支持
支持 atlas 工程打包的gradle 插件, 基于 google 官方的 android builder (2.2.3)
atlas-demo/firstbundle引用插件
buildscript {
repositories {
mavenLocal()
jcenter()
}
dependencies {
classpath "com.taobao.android:atlasplugin:2.2.3.alpha+"
}
}
注意尽量不要指定 classpath "com.android.tools.build:gradle"的版本,默认使用的是 2.2.3
应用plugin
apply plugin: 'com.android.application'
apply plugin: 'com.taobao.atlas'
配置打包参数, ./gradlew atlasList, 具体见 配置
执行构建 ./gradlew assembleDebug 或者 assembleRelease
构建产物:
| 功能 | 配置名称 | 类型 | 值 |
|---|---|---|---|
| 是否启用atlas | atlas.atlasEnabled | boolean | true |
| 自动生成bundle的packageId | atlas.tBuildConfig.autoPackageId | boolean | true |
| 预处理manifest, 如果开启atlas,必须为true | atlas.tBuildConfig.preProcessManifest | Boolean | true |
| 使用自定义的aapt, 如果开启atlas,必须为true | atlas.tBuildConfig.useCustomAapt | Boolean | true |
| aapt输出的R为常量, 建议值设置为false, 可以减少动态部署的patch包大小 | atlas.tBuildConfig.aaptConstantId | Boolean | true |
| 合并jar中的资源文件 | atlas.tBuildConfig.mergeJavaRes | Boolean | false |
| 构建基线包,建议开启,否则后面的patch包无法进行 | atlas.tBuildConfig.createAP | Boolean | true |
| 合并bundle jar中的资源文件 | atlas.tBuildConfig.mergeAwbJavaRes | Boolean | false |
| 是否依赖冲突终止打包 | atlas.tBuildConfig.abortIfDependencyConflict | boolean | false |
| 是否类冲突终止打包 | atlas.tBuildConfig.abortIfClassConflict | boolean | false |
| 自启动的bundle列表, 值是 packageName | atlas.tBuildConfig.autoStartBundles | List | [com.taobao.firstbundle] |
| 提前执行的方法,格式是 className:methodName | className2:methodName2 , 注意class和methodname都不能混淆,且方法实现是 class.method(Context) | atlas.tBuildConfig.preLaunch | String |
| 基线的依赖坐标, 如: com.taobao.android:taobao-android-release:6.3.0-SNAPSHOT@ap | atlas.buildTypes.debug.baseApDependency | String | null |
| 基线的依赖坐标, 如: com.taobao.android:taobao-android-release:6.3.0-SNAPSHOT@ap | atlas.buildTypes.release.baseApDependency | String | null |
| 使用atlas的application,包含 atlas基础初始化及multidex逻辑 | atlas.manifestOptions.replaceApplication | boolean | true |
| 打动态部署 patch 包 | atlas.patchConfigs.debug.createTPatch | boolean | true |
| 打动态部署 patch 包 | atlas.patchConfigs.release.createTPatch | boolean | false |
atlas {
atlasEnabled true
}
具体参考 atlas-demo/AtlasDemo/app/build.gradle