Tinker热修复框架接入
Android现在开发App基本都开始接入
热修复
框架,为的就是能够修复一些线上紧急Bug。热门的热修复框架以及对比,网上介绍的也很多,个人而言就用过腾讯的tinker以及阿里的sophix。
腾讯tinkerTinker简介,根据官方文档接入tinker,然后测试热修复补丁,总是莫名地失败(或许是自己技术太渣)。无奈就不去折腾它,而选择了第三方的tinkerpatch
这个sdk,并测试补丁ok。
**注:**参照网上的tinker接入博客,以及官方文档,自己总是搞不定,说是自己技术渣吧,也可能。反正我参照阿里的文档接入sophix就很顺利。
闲言少续,言归正传,以下为接入tinkerpatch
的大致步骤
- 在项目根
build.gradle
加入依赖配置
buildscript {
repositories {
...
maven { url 'https://dl.bintray.com/wemobiledev/maven' }
maven { url 'https://dl.bintray.com/tinker/maven' }
}
dependencies {
...
// TinkerPatch 插件
classpath "com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:1.2.8"
}
}
- 在
app
的build.gradle
中,添加依赖
apply from: '../tinkerpatch.gradle'
dependencies{
// 若使用annotation需要单独引用,对于tinker的其他库都无需再引用
implementation 'com.tinkerpatch.sdk:tinkerpatch-android-sdk:1.2.8'
annotationProcessor 'com.tinkerpatch.tinker:tinker-android-anno:1.9.8'
//dex分包,用于tinker
implementation "com.android.support:multidex:1.0.3"
...
}
-
根据上面的配置,就需要创建换一个
tinkerpatch.gradle
文件,路径与app
的builde.gradle
同级。一般来说,需要注意两个位置-
appKey就是你在tinkerpatch平台上的key
-
sevenZip的版本和路径配置,对应到你本地的路径。(注意,这里可能你会下载不到,maven仓库配置一下阿里的jcenter比较好)
-
7zip文件的下载,7za这个好多人没有,需要https://www.7-zip.org/download.html这里面的download目录下
7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager
这一栏。然后解压到你对应路径,配置到下面就好。 -
com.tencent.mm:SevenZip:1.2.12
有时候加载不出来,你就在app的buidle.gradle
中添加这个依赖implementation com.tencent.mm:SevenZip:1.2.12
来下载,就好。 -
这里用到一个变量
appversionName
需要你配置在gradle中的一个变量,就是app的版本号。可以在根目录的gradle.properties
中配置,如:
-
appVersionCode=16
appVersionName=2.0.2
注意,有时候AS设置中去掉compile
设置项下的--offline
参数比较好
i