腾讯Bugly热更新集成总结
来源:互联网 发布:小米任我行 联通网络 编辑:程序博客网 时间:2024/05/17 18:01
热更新:多么高大上的名字,Android 开发者应该都知道这么个东西,原理呢!请自行百度,这里只是集成总结,谢谢!!!
对于第三方SDK的使用,大家都知道用“步步高点读机,哪里不会点哪里”—— 所以第一步肯定是看官方集成文档:地址:https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix/?v=20170223160322
首先,刚开始看的时候跟大部分SDK一样肯定是各种配置的,这里根据官方文档的步骤来解释说明哪里需要注意的,以及我是怎么处理成功的。
第一步:添加插件依赖
工程根目录下“build.gradle”文件中添加:
buildscript {
repositories {
jcenter()
}
dependencies {
// tinkersupport插件, 其中lastest.release指拉取最新版本,也可以指定明确版本号,例如1.0.4
classpath “com.tencent.bugly:tinker-support:latest.release”
}
}
坑 1:这里是添加依赖没错,但我遇到问题就是后面生成patch包时在Gradle任务中找不到文档里面说的tinker文件夹和tinker-support文件夹(后面的步骤会说到),于是乎翻山越岭找资料,发现一个这个: classpath (‘com.tencent.tinker:tinker-patch-gradle-plugin:1.7.5’) 需要这个依赖插件
第二步:集成SDK:这里没有什么大坑,照着复制就可以了,注意:tinker-support.gradle文件中的配置
apply plugin: ‘com.tencent.bugly.tinker-support’
def bakPath = file(“${buildDir}/bakApk/”)
/**
* 此处填写每次构建生成的基准包目录,如果是你打基准包这个可以暂时不用管,打patch包的话就要改成你的基准包生成的目录,必须相同
*/
def baseApkDir = “app-0208-15-10-00”
/**
* 对于插件各参数的详细解析请参考
*/
tinkerSupport {
// 开启tinker-support插件,默认值trueenable = true// 指定归档目录,默认值当前module的子目录tinkerautoBackupApkDir = "${bakPath}"// 是否启用覆盖tinkerPatch配置功能,默认值false// 开启后tinkerPatch配置不生效,即无需添加tinkerPatchoverrideTinkerPatchConfiguration = true// 编译补丁包时,必需指定基线版本的apk,默认值为空// 如果为空,则表示不是进行补丁包的编译// @{link tinkerPatch.oldApk } **patch包改成基准包的apk文件名**baseApk = "${bakPath}/${baseApkDir}/app-release.apk"// 对应tinker插件applyMapping **patch包改成基准包的mapping文件名**baseApkProguardMapping = "${bakPath}/${baseApkDir}/app-release-mapping.txt"// 对应tinker插件applyResourceMapping **patch包改成基准包的R文件名**baseApkResourceMapping = "${bakPath}/${baseApkDir}/app-release-R.txt"// 构建基准包和补丁包都要指定不同的tinkerId,并且必须保证唯一性,**基准包这里最好是改成base-versionname,patch包就改成patch-versionname,每个版本的都不一样**tinkerId = "base-1.0.1"//示例// 构建多渠道补丁时使用// buildAllFlavorsDir = "${bakPath}/${baseApkDir}"// 是否开启反射Application模式enableProxyApplication = false
}
/**
* 一般来说,我们无需对下面的参数做任何的修改
* 对于各参数的详细介绍请参考:
* https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
*/
tinkerPatch {
//oldApk =”
ignoreWarning = false
useSign = true
dex {
dexMode = “jar”
pattern = [“classes*.dex”]
loader = []
}
lib {
pattern = [“lib//.so”]
}
res { pattern = ["res/*", "r/*", "assets/*", "resources.arsc", "AndroidManifest.xml"] ignoreChange = [] largeModSize = 100}packageConfig {}sevenZip { zipArtifact = "com.tencent.mm:SevenZip:1.1.10"
// path = “/usr/local/bin/7za”
}
buildConfig {
keepDexApply = false
//tinkerId = “1.0.1-base”
//applyMapping = “
//applyResourceMapping = “
}
}
后面的步骤就按照集成文档来就OK了,最后说明一下:build文件夹下会产生很多app-xxxx-xx-xx的文件夹, 你生成的基准包就是在这里面,主要使用最新的,不想要的话直接build project或者clean也可以。
终极大坑: 在打patch包的时候,遇到点击Gradle任务中的tinker-support生成apk的时候有时会出错,经过我的不断rebuild和clean之后就好了(也有可能是你配置文件中的问题,这里需要注意)。
demo地址:http://download.csdn.net/detail/ling9400/9763209(module)
- 腾讯Bugly热更新集成总结
- 腾讯Bugly热更新的集成实现
- 腾讯Bugly热更新集成以及问题
- 腾讯bugly热更新
- 安卓集成腾讯bugly里的热更新
- 使用腾讯bugly集成热更新使用踩坑记录
- Android 腾讯Bugly 热更新
- Bugly热更新简单集成
- Android集成Bugly热更新
- Android中第三方SDK集成之腾讯Bugly热更新集成指南
- 腾讯bugly热修复集成工程
- 腾讯Bugly-热更新破解记录
- Bugly Android热更新总结篇
- 集成腾讯bugly的热修复功能sdk步骤
- 腾讯bugly的热修复功能集成笔记
- 集成腾讯bugly的热修复功能sdk步骤
- 集成腾讯bugly的热修复功能sdk步骤
- Bugly热更新集成,以及遇到的问题
- 图像处理和计算机视觉中的经典论文
- perl——深入理解(包、命名空间、符号表、类型团、GLOB、变量和函数)
- 死锁的解除
- Apache Mina(二)
- caffe的二分类微调,制作train.txt,val.txt
- 腾讯Bugly热更新集成总结
- SpringMVC multipart文件上传详细教程之三:视图及运行结果
- 【数组】Leetcode编程题解:215. Kth Largest Element in an Array Add to List
- 微信开发.Net 接入示例
- The battery cannot be identified the system will be unable to charge this battery
- JSP 九大隐式对象及其out对象
- MyBatis Generator generatorConfig.xml配置详解
- sox 获取wav文件的时长
- jquery 数值输入框实现