最近因公司的项目需求需要加入热更新功能,但是热更新各大平台方法不一,最后笔者选择用微信开源的Tinker作为项目的引用,但是集成下来却踩了不少的坑,所以决定记录一下集成的过程.
Github : https://github.com/Tencent/tinker
Tinker集成步骤
1.在项目的 build.gradle中添加依赖库
然后在app的build.gradle中添加依赖
并且在android/defaultConfig 设置 multiDexEnabled true
其中配置app中build.gradle参数详解文件请移步官方配置文件进行copy.配置完毕以后build一下,有些同学可能会遇到第一个错误就是提示tinkerId is not set,这是电脑没有安装git或者没有配置系统环境变量,如果检查都没有问题,请将项目commit一次.或者参考Tinker #Issues.
2.配置Application
1.新建自己的Application ,使之继承DefaultApplicationLike,并重写onBaseContextAttached方法,代码如下:
3.配置AndroidManifest
注意6.0以上手机,请自行添加获取权限代码
注意这个application不用写出实体类出来,在上面SumCation中已经用注解声明了。
配置完这些东西以后,运行项目,成功后会在build文件bakApk下生成apk文件,请在build.gradle中替换修改ext相关配置,如下:
最后调用tinkerPatchDebug,生成更新的补丁包, 补丁包与相关日志会保存在/build/outputs/tinkerPatch/,然后我们将patch_signed_7zip.apk复制到手机的sdcard中或者输入命令adb push./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/推送到手机的sdcard中.
将补丁文件放到手机中对应的地方后,打开一次app,然后kill掉,再次打开,你会发现更新成功了,到此微信Tinker热更新配置结束。
网友评论