热更新的使用(腾讯的Bugly)
热更新解决方案,选择的是腾讯的bugly,同时附带着bug手机,很好用,反馈率很高,也比较准,目前对集成的项目来看还没有太大的问题。0.0多渠道打包速度太慢不知道算不算。
腾讯bugle理解:热更分为基准包+补丁包;基准包为线上版本在运行的apk包,补丁包为依赖于基准包而生成的补丁文件,需要上传到bugly更新列表中;补丁包上传到bugly更新列表成功的前提是基准包在补丁包上传之前在APP上联网运行过。。当然,较大程度的更新还是依赖于发APK包的形式,小的更新+解决比较着急致命的bug直接使用热更即可。
bugly热更新的局限性
1、不支持修改清单文件,不支持新增android端四大组件(页面、Service服务,广播、数据库)。后续版本应该也支持了
2、不建议在GP渠道热更新代码。
3、在Android N上对启动时间有轻微影响。
4、不支持部分三星android-21机型,加载补丁时会主动抛出异常。
不支持一些动画类型的资源文件的更新。
官方链接:腾讯bugly官方地址
下面是具体的集成步骤,官方文档介绍的比较详细,这里着重把需要注意的点写下来,少趟坑。
1.工程根目录下“build.gradle”文件中添加:
dependencies { classpath "com.tencent.bugly:tinker-support:1.1.2"}
1、APP下的build.gradle中添加bugly SDK的依赖
dependencies {
compile "com.android.support:multidex:1.0.1" // 多dex配置
compile 'com.tencent.bugly:crashreport_upgrade:1.3.5' // 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker)
compile 'com.tencent.tinker:tinker-android-lib:1.9.6' compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0
}
// 依赖插件脚本apply from: 'tinker-support.gradle'
1、APP创建tinker-support.gradle文件,文件中大体内容为
针对上述tinker-support.gradle文件中的三个重要点
1、baseApkDir:打补丁包时依据的基准包地址,大基准包时不用定义。
2、tinkerId:基础包+补丁包的版本号(打基础包时改为基础包版本号,打补丁包时改为补丁包版本号)
3、enableProxyApplication:是否使用自己的Application,或者是集成sdk中的application。(文档中有详细说明)
另外:支持加固模式和多渠道也在上图注释中有,说明一点的是,多渠道打包的时候,只需要在build.gradle中加入productFlavors即可
实例化热更新
build.gradle中配置好打包信息后,使用Gradle自带的打包命令进行基础包、补丁包的打包
多渠道打包的时候,基准包的生成会有单个文件:mapper文件(如果没有,说明build.gradle中的minifyEnabled没有开启混淆)、APK文件、TXT文件,需要进行联网运行的基础包就是该APK文件。补丁包选取patch下的7z.apk文件。上传到bugly后台即可。
下面附完整截图流程,接入Demo需要的联系我私发。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
初识响应式前端框架——Vue.js
响应式编程已经渗透到很多领域中的编码中,比如RxJava,Vue.js等,当然,目的就是提高编程的效率 起因: 以前我们改变UI的时候,就需要通过Dom来操作UI元素,随着业务的增多,这种方式就显得很笨重了 比如document.getElementById('id') 因此,我们就需要一个更好的方案了 方案: React.js,Angular.js和Vue.js。 相对于Vue.js来说,Angular.js稍显复杂和笨重(毕竟vue比angular少四个字母,手动滑稽),下面我们就简单介绍一下Vue.js的基本原理和用法 基本思想: 它的思想就是通过data与view进行双向绑定,就可以实现UI和和数据的快速互动了(data发生变化,UI就会发生变化;UI发生变化,data也会发生变化),显得很简洁方便 基本原理: data和view相互通信的关键就是,基于JS的异步事件模型,简单地来说,就是有一个循环事件模型一直在跑,如果相应的事件被触发了,就可以通知到data或者view。(和Android中的Handler,Looper,Message的异步机制感觉很相似) 基本用法,如下 ...
- 下一篇
Android 优秀文章
https://academy.realm.io/cn/posts/droidcon-farber-improving-android-app-performance/ https://academy.realm.io/cn/posts/tools-and-libraries-for-common-android-problems/ 机器速成AI 常用网站 各种常用的网站 AndroidDevTools(各种android相关工具下载)http://www.androiddevtools.cn/index.html 在线文档-JDKhttp://tool.oschina.net/apidocs/apidoc?api=jdk_7u4 在线文档-Androidhttps://developer.android.google.cn/develop/index.html 在线文档-Kotlinhttps://github.com/wangjiegulu/kotlin-for-android-developers-zh/blob/master/SUMMARY.md 在线文档-Glidehttps...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Red5直播服务器,属于Java语言的直播服务器
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装