1.在项目的根目录中build.gradle 中的
dependencies 中添加
classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:1.2.14.6"
2.在app/build.gradle 中增加依赖
provided("com.tinkerpatch.tinker:tinker-android-anno:1.9.14.6") compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:1.2.14.6")
3.下载官网中 tinkerpatch.gradle 文件,并且放到app 目录下,并且在app/build.gradle 中添加
apply from: 'tinkerpatch.gradle'
注意: 需要 在
android{ //其他文件省略
defaultConfig{ //需要添加一下这句话,否则生成补丁失败
javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }
}
}
4.初始化sdk
1.tinkerpatch.build 中reflectApplication = true
//不需要继承
2.1.tinkerpatch.build 中reflectApplication = false
//application 需要extends DefaultApplicationLike
在application 的oncrete 中添加
ApplicationLike tinkerApplicationLike = TinkerPatchApplicationLike.getTinkerPatchApplicationLike();
// 初始化TinkerPatch SDK, 更多配置可参照API章节中的,初始化SDK
TinkerPatch.init(tinkerApplicationLike)
.reflectPatchLibrary()
.setPatchRollbackOnScreenOff(true)
.setPatchRestartOnSrceenOff(true)
.setFetchPatchIntervalByHours(3);
// 每隔3个小时(通过setFetchPatchIntervalByHours设置)去访问后台时候有更新,通过handler实现轮训的效果
TinkerPatch.with().fetchPatchUpdateAndPollWithInterval();
5. 有问题的包暂且称为基准包,修复完的暂且称为 修复 包
1.在tinkerpatch.gradle 中配置基准包的位置,然后设置基准包路径,
2.修复完bug的包 用terminal 执行gradle 命令 gradlew tinkerPatchRelease ,执行完成之后会根据 基准包和 修复过的内容生成一个修复包,目录在\app\build\outputs\apk\tinkerPatch\release 目录下,然后里边生成了四个文件夹,根目录下 patch_signed_7zip.apk 就是修复包,需要往tinker 上传的(http://www.tinkerpatch.com/Apps/patch/id/27383)