网上已有各种集成使用指南,这里只记录一下自己的集成过程:
如下,
- 使用git clone https://github.com/Tencent/tinker.git 获取tinker源码
- 在AS中导入tinker,修改相关的gradle,android-maven-gradle-plugin版本以及distributionUrl所指向的版本(符合本地版本,无须再更新)
应用的build.gradle中gitSha方法,gitRev可以指定固定值,也可以通过git rev-parse --short HEAD 获取一个6位值 - 修改相关的minSdkVersion,compileSdkVersion,buildToolsVersion值,使其与本地版本对应
- 如果Tinker项目中不能直接运行demo,则可以将demo单独另行导入,
- 运行demo,生成基准apk
- 修正demo,生成新的apk
- 修改应用的build.gradle,找到ext并配置tinkerOldApkPath为基准apk,tinkerApplyResourcePath为新的apk的R.txt文件。其他配置可暂时忽略
- 在AS右侧打开Gradle,选择tinker->smaple->android->Tasks->tinker->tinkerPatchDebug 因为一直用的是debug签名
或是在Terminal命令行下输入gradlew tinkerPatchDebug 执行 - 根据TinkerInstaller.onReceiveUpgradePatch方法中指定的补丁存储路径及文件名,将app\build\outputs\tinkerPatch\debug下相应的文件储存到到指定路径下
- 基准apk,执行TinkerInstaller.onReceiveUpgradePatch方法,加载指定patch,完成后需要重新启动apk
- 重启apk,问题被修复。