先来一个传送门吧
先顺哈思路
当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'
-
添加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
网友评论