Tinker热修复接入心得

xiaoxiao2021-02-27  371

公司添加热修复功能,我们用了微信的tinker

可以借鉴这篇博客:http://blog.csdn.net/u010381752/article/details/56012405

Tinker官方说明:Git地址

Tinker平台介绍:http://tinkerpatch.com/Docs/intro

写点自己的东西,帮助学习(简单粗暴)

1、在http://tinkerpatch.com/注册自己的平台,新建app,得到自己的appkey,创建版本号,以后管理用

2、添加依赖

project中

classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:${TINKERPATCH_VERSION}"

app中

1、拷贝tinkerpatch.gradle

2、在build.gradle中

apply from: 'tinkerpatch.gradle'  

compile "com.android.support:multidex:1.0.1"      //无需引入tinker的任何库,使用tinkerpatch sdk即可   compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:${TINKERPATCH_VERSION}") { changing = true } 

3、配置Application

创建自己的Application,继承DefaultApplicationLike(需要重写构造),内容从demo的SampleApplicationLike里面拷贝

打开自己的AndroidManifest.xml 在application 节点下配置android:name=”MyApplication” 

这基本上就配置搞定了

4、使用

这个过程就比较有意思了

在tinkerpatch.gradle中

/** * TODO: 请按自己的需求修改为适应自己工程的参数 */ def bakPath = file("${buildDir}/bakApk/") def baseInfo = "app-1.0.0-0503-14-38-46" def variantName = "release"

这里有几个参数要自己设置,

baseInfo:这个需要填写你的基础版本,在app-build-bakApk-app-1.0.0-0503-14-38-46文件夹中

variantName:release和debug,看你的基础版本是如何生成的

appkey:修改自己生成的

生成了基础版本后,修改自己的代码,然后在

点击Gradle,

找tinker,然后选择Debug还是Release,双击生成补丁文件

生成后放在了app-build-outputs中找到patch_signed_7zip.apk(如果是debug的话应该是patch_debug_7zip .apk)

在文件夹中找到,这个时候可以上传到平台,这就搞定啦

这个时候应该默认是3个小时候会下载更新,如果测试的话可以设置

TinkerPatch.with().reflectPatchLibrary();

在自己的app启动的oncreat()方法中调用这个

这样就可以啦

补充:注意事项

1、第一次运行前,需要修改appbuild.gradle文件中的tinkerId为当前版本号(很重要),发布新的版本apk后,需要保存app/build/bakApk下的最新的.apk和R.txt文件,用于以后创建补丁

2、在应用上线后,出现bug,并且修复bug后,需要生成补丁文件,这时需要将之前保存的.apkR.txt文件放到原来的位置。

转载请注明原文地址: https://www.6miu.com/read-1976.html

最新回复(0)