Tinker热修复(命令行接入——未知BUG--.java文件修改不成功)
来源:互联网 发布:淘宝店铺公告图片尺寸 编辑:程序博客网 时间:2024/05/17 05:11
http://blog.csdn.net/lmj623565791/article/details/54882693
https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
上面两个一个是HongYang的博客,一个是官方的指南
这里一步一步的来(基于HongYang的demo),具体步骤介绍参考HongYang博客吧,这里就不做介绍了,这里只作为补充和步骤详解。
(一)在官方哪里找到最新的引入:
//可选,用于生成application类 provided('com.tencent.tinker:tinker-android-anno:1.8.0') //tinker的核心库 compile('com.tencent.tinker:tinker-android-lib:1.8.0')
(二)修改项目的build.gradle,也建议从官方的最新的来
classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.8.0')
(三)gradle配置,配置manifest文件
<meta-data
android:name="TINKER_ID"
android:value="tinker_id_6235657" />
官方接入里有介绍,也提供了demo。这里自己看吧,不设置也没事(可能还没采坑)
(四)添加引用patch代码,并进行相关的application配置(注意注解的名字不能改.SimpleTinkerInApplication)
TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(),
Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk");
//application的配置代码
@DefaultLifeCycle(application = ".SimpleTinkerInApplication",
flags = ShareConstants.TINKER_ENABLE_ALL,
loadVerifyFlag = false)
public class SimpleTinkerInApplicationLike extends ApplicationLike {
public SimpleTinkerInApplicationLike(Application application, int tinkerFlags, boolean tinkerLoadVerifyFlag, long applicationStartElapsedTime, long applicationStartMillisTime, Intent tinkerResultIntent) {
super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime, tinkerResultIntent);
}
@Override
public void onBaseContextAttached(Context base) {
super.onBaseContextAttached(base);
}
@Override
public void onCreate() {
super.onCreate();
TinkerInstaller.install(this);
}
}
(五)打包 ,安装到手机
命名为old.apk
(六)修改代码并打包
命名为new.apk
(七)把两个包复制到tinker-patch-cli-1.7.7.jar的相同目录下
java -jar tinker-patch-cli-1.7.7.jar -old old.apk -new new.apk -config tinker_config.xml -out output
(八)在output文件夹下找到patch_signed.apk,发送到你的系统根目录下(就是第四步的时候你引用的那个目录),我这里是粘贴到studio目录下,通过adb发送的。具体应用的时候肯定是从服务器下载到你的指定目录下的。
adb push ./tinkersimplein/build/outputs/apk/patch_signed_7zip.apk /storage/sdcard0/
(九)打开你之前安装到手机的apk(old.apk),执行你第四步代码,发现APP重启了,这时候你再打开就发现已经是new.apk里的内容了。而你发送的那个apk也消失了
阅读全文
0 0
- Tinker热修复(命令行接入——未知BUG--.java文件修改不成功)
- 初探Android热修复——tinker接入
- Tinker热修复之 —— Gradle接入
- Tinker热修复(gradle接入--成功)
- 接入热修复框架TinKer
- Tinker热修复简单接入
- 热修复,Tinker的接入
- 热修复Tinker简单接入
- tinker热修复gradle接入
- Android 热修复 Tinker接入
- Tinker热修复接入心得
- Android 热修复 Tinker 接入
- tinker热修复gradle接入
- tinker热修复gradle接入
- Android热修复(一):Tinker的使用(一)命令行接入
- Tinker热修复接入详解(入坑并出坑篇)
- 一步一步教你接入tinker 热修复
- 热修复 tinker接入及源码分析
- Mathematics for computer science-Patterns of Proof
- View绘制流程
- 20171023模拟赛总结
- kafka consumer 如何设置每次重启时从最新数据开始读取
- Java
- Tinker热修复(命令行接入——未知BUG--.java文件修改不成功)
- 嵌入式操作系统 uC/OS-II V2.86 版本的bug
- vue简单实例(todolist)
- CSS3
- 自然语言处理2---jieba分词
- Python如何使用 *arg 和 **kwargs
- CentOS系统安装JDK1.8
- springboot-websocket作为客户端
- 简单分析一下socket中的bind