美文网首页
热修复Tinker的三种实现方式

热修复Tinker的三种实现方式

作者: 特大碗牛肉面 | 来源:发表于2017-08-07 19:02 被阅读0次

    tinker的GitHub地址: https://github.com/Tencent/tinker
    第一种实现方式(官方推荐):
    在GitHub中下载[tinker-sample-android];

    搜狗截图17年08月07日1837_6.png

    将Demo里面的文件直接拉入项目中;
    //是否打开tinker的功能。
    tinkerEnabled = true

    搜狗截图17年08月07日1840_7.png

    将你项目中的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'")
    }
    }

    替换指定基包的路径:

    搜狗截图17年08月07日1832_4.png

    修改完代码双击后生成补丁:

    搜狗截图17年08月07日1829_3.png 搜狗截图17年08月07日1846_8.png

    你可以将补丁包放入你的服务器然后动态更换补丁,也可以直击写死;(我的demo是写死的)

    搜狗截图17年08月07日1834_5.png

    最后将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;

    相关文章

      网友评论

          本文标题:热修复Tinker的三种实现方式

          本文链接:https://www.haomeiwen.com/subject/tppalxtx.html