tinker的GitHub地址: https://github.com/Tencent/tinker
第一种实现方式(官方推荐):
在GitHub中下载[tinker-sample-android];
将Demo里面的文件直接拉入项目中;
//是否打开tinker的功能。
tinkerEnabled = true
将你项目中的application里面的代码逻辑全部拉入SampleApplicationLike中;
打完包后 , 修改以下参数:
def gitSha() {
try {
// String gitRev = 'git rev-parse --short HEAD'.execute(null, project.rootDir).text.trim()
// gitRev 这货你喜欢写什么都行 , 是你补丁的唯一标识;
String gitRev = "your_id_2.9.0.0"
if (gitRev == null) {
throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")
}
return gitRev
} catch (Exception e) {
throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")
}
}
替换指定基包的路径:
修改完代码双击后生成补丁:
你可以将补丁包放入你的服务器然后动态更换补丁,也可以直击写死;(我的demo是写死的)
最后将app的进程杀死重启就可以了(据说成功率是96%);
第二种实现方式(通过tinker管理平台,个人感觉这种方法不怎么好用):
这种方式我就不写了 , 直接传送门: http://www.jianshu.com/p/db504b33bca5
这篇文章上了郭林的公众号,质量应该是妥妥的;
微信tinker的管理平台: http://www.tinkerpatch.com/
第三种实现方式(通过bugly实现tinker):
Bugly热更新的API地址: https://bugly.qq.com/docs/user-guide/api-hotfix/?v=20170322165254
bugly热更新的使用指南: https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20170627170213#_2
里面有具体的视频,实在不懂可以对着视频来实现;
bugly是通过改造了tinker,然开发者更加容易的对接tinker;
通过bugly的话可以不改造项目中的application来实现 ,也可以通过注解自己改造项目中的application;