美文网首页
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