美文网首页
android热修护tinker接入

android热修护tinker接入

作者: 大批 | 来源:发表于2017-02-18 20:25 被阅读33次

    先来一个传送门吧

    https://github.com/Tencent/tinker


    先顺哈思路

    当apk需要修护的时候下载修护包,替换原来的dex

    • sdk接入
    • 修护包的制作
    • 下载修护包替换dex

    SDK接入(按照官方文档来的)

    • 配置项目的gradle文件,classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.7')


      build.gradle文件截图
    • 配置app的gradle文件
      • provided('com.tencent.tinker:tinker-android-anno:1.7.7')
      • compile('com.tencent.tinker:tinker-android-lib:1.7.7')
      • apply plugin: 'com.tencent.tinker.patch'
    app.gradle的截图
    • 添加tinker编译和制作修护包需要的配置信息(配置在app的gradle文件里面)(是从官方demo里面拷贝出来的)

      • tinkerID需要注意哈


        部分配置截图
    • 修改application (按照官方推荐的写法)


      已经不是application的子类了
      • 注意DemoApp上面的那个注解,@DefaultLifeCycle,我们可以在下面这个目录找到处理器的源码


        注解的处理器
      • 处理器核心代码(加载了一个模板文件,替换掉字符串,输出到文件)


        处理器核心代码
      • 处理器用到的模板(这个模板文件的父类就是application了)


        模板文件
    • 最后配置manifest


      manifest截图
      • 需要注意的是application:name和注解里面定义的要一样

    在制作修护包之前先插入一个tinker修护的api

    • 调用这个api传入一个修护包地址就能进行修护

    编译一个有问题的apk

    • apk生成的路径(和你的配置有关)


    • 安装运行


    • 运行截图



    修护Bug编译一个修护包

    • 编译前配置(配置成安装的那个文件)


      QQ截图20170218201810.png
    • 编译修护包


    • 编译成功文件的位置


    • 把修护包push到前面代码里面写的位置



    点击按钮进行修护,这里就不好截动图了


    Nothing is certain in this life. The only thing i know for sure is that. I love you and my life. That is the only thing i know. have a good day

    :)

    相关文章

      网友评论

          本文标题:android热修护tinker接入

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