Android Incremental Build Plugin (Like InstantRun,but by Tinker)
测试对象:apk生成大小70M的项目. 增量编译时间可达15S以内
android app Module的Java代码及资源文件的快速增量编译与替换; ButterKnife等Annotation Processor
- android lib Module里的任何替换;
- Tinker不支持的功能;如增量修改AndroidManifest.XML
参照项目内的APP
app.gradle
VERSION_NAME对应最新版:1.9.1.7
apply plugin: 'com.tinkerun.app'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.tinkerun:tinkerun-gradle-plugin:${VERSION_NAME}"
}
}
dependencies {
debugCompile("com.tinkerun:tinkerun-android-lib:${VERSION_NAME}")
}
tinkerun{
//if you want to forbidden tinkerun
//enabled false
//类似tinker的configField设置,mgm hq-crm 需要添加这两个设置
configField("patchMessage","testMessage")
configField("patchVersion","1.0.0")
}
首先确保停用InstantRun;调用tinkerunInstall{Flavor}Debug. 如果没有基础包,会全量运行;否则增量打补丁。
- Tinkerun的运行时采用tinker. 原理为生成tinker所使用的补丁,以实现代码替换/冷启动。gradle插件也大多来自Tinker. 项目内的包名和类名也尽量和Tinker保持一致,以方便熟悉Tinker的开发者
- 希望大家能多多参予,共同解决android编译慢的问题。
- 1.9.1.5更新:tinkerInstall{Flavor}Debug支持自动识别增量或全量模式 ; 修复android build tools 3.x模式下tinkerunDex任务报65535的问题
- 1.9.1.6更新: 2018/2/10 支持butterKnife等通过 android-apt / annotationProcessor 发挥作作用的注解处理工具
- 1.9.1.7更新: 2018/2/13 增强稳定性,修复加载失败后就被禁用的问题;支持Tinkerun Notification错误提示;支持assets文件的增量修改与新建(暂不支持增量删除)