一、代码集成
导包、配置build.gradle参数
1>首先在根目录下的build.gradle中添加tinker的插件
classpath "com.tencent.tinker:tinker-patch-gradle-plugin:${TINKER_VERSION}"
2>在app目录下的build.gradle中添加tinker核心库
compile("com.tencent.tinker:tinker-android-lib:${TINKER_VERSION}") { changing = true }
//可选,用于生成application类
provided("com.tencent.tinker:tinker-android-anno:${TINKER_VERSION}") { changing = true }
3>在根目录下的gradle.properties中添加具体的tinker版本值
#tinker版本号
TINKER_VERSION=1.7.11
4>剩余app目录下build.gradle中的参数可以参照官方demo或者点击这里进行参考
5>拷贝demo中的工具类

在我的demo中添加了下载apk的service工具类DownloadFileService
好了代码集成就完成了,接着进行如何使用tinker
2、如何使用tinker
首先先打一个基础包,无论是debug或者release版本
这里说明下三种打包的方式:
a.最常用的直接点击三角图标,默认都是debug版本,除非要build.gradle配置了release,并在buildVariants中设置了默认项
b.使用命名,在Terminal中输入gradlew assembleDebug (记得配置gradle环境变量)
Gradlew是包装器,自动下载包装里定义好的gradle 版本,保证编译环境统一,gradle 是用本地的gradle
c.使用studio的插件,如下图

打完包之后会在app→build下生成一个bakApk的目录,这个目录就是存放基础apk的目录,之后形成的补丁就是与该目录下的apk做的差异算法形成的。

将基础包的apk与txt文件名填写到build.gradle中
骚年.给你三分钟去修改你的bug吧....
时间到,bug修改完毕....
接着我们需要打出一个补丁包,该怎么打呢?so简单
a.在Terminal中输入gradlew tinkerPatchDebug
b.如果记不住命名,就是用gradle插件直接打包吧

生成的补丁包会出现下图中...

至此你就可以拿着这个补丁包上传到公司的服务器上去了,在app启动的时候进行下载该app,
下载完成使用 TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(), Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk");
进行加载补丁即可,下载的目录与补丁的目录保持一致
测试阶段如果不想使用下载也可以将补丁包直接push到手机上
网友评论