buglybugly 应用升级级功能包名改了还能收到更新提示吗

Bugly热更新SDK你需要知道的一些事 - DEV CLUB
这家伙很懒,什么个性签名都没有留下。
Bugly出热更新SDK了?
没错,Bugly也出热更新SDK啦,号,我们Bugly也上线了Android版的热更新SDK,大家都知道这一年来热更新被无数次提起,各大厂自主研发的热更新方案层出不穷,下面就列举一些大家比较熟悉的一些热更新方案:
微信开源:
大众点评:
阿里巴巴:
阿里巴巴:
各个方案的优劣性笔者就不在这里做过多讨论了,总的一句话没有最好的,只有最适合自己的。
我们Bugly也是出于高可用性的考虑,Tinker支持动态下发代码、So库以及资源,所以我们最终选择了Tinker方案作为我们SDK的一项能力。
这里有一点需要说明的,Android版的热更新SDK是包含在升级SDK里面的,所以如果你想使用我们提供的热更新能力需要下载对应版本的,目前我们在1.2.0版本才开始支持热更新:
注意:升级SDK自1.2.0起将不再支持以jar包形式集成,我们建议您使用Android studio并且以gradle方式集成。
为什么集成我们Bugly热更新SDK?
热更新能力是Bugly为解决开发者紧急修复线上Bug,而无需重新发版让用户无感知就能把问题修复的一项能力。Bugly目前采用的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并且应用补丁的功能,我们也提供了热更新管理后台让开发者对每个版本的补丁进行管理。
集成我们SDK的好处是显而易见的:
无需关注Tinker是如何合成补丁的
无需自己搭建补丁管理后台
无需考虑后台下发补丁策略的任何事情
无需考虑补丁下载合成的时机,处理后台下发的策略
我们提供了更加方便集成Tinker的方式
我们提供应用升级一站式解决方案
![Uploading 2_453273.png . . .]
如何集成Bugly热更新SDK?
看文档、看文档、看文档。重要的事情说三遍。
相信接入过Tinker的同学会发现使用Tinker还是有一定门槛的,小白用户第一次使用可能会懵圈,我们Bugly也希望能让第一次接入的同学能顺利使用上热更新,所以建议大家严格按照我们文档的流程来接入,如果遇到任何使用SDK的问题可以及时跟我们反馈(交流群号:),但如果是Tinker插件的使用问题也是建议您认真查看。
简单概要说一下整个接入流程:
配置插件依赖(这里包含tinker插件和tinker-support插件的依赖)
apply插件(这里可以只配置apply plugin: 'com.tencent.bugly.tinker-support')
集成远程SDK仓库
重新自定义Application、ApplicationLike
AndroidManifest配置
打基准包安装并上报联网(注:填写唯一的tinkerId)
对基准包的bug修复(可以是Java代码变更,资源的变更)
修改基准包路径、填写补丁包tinkerId、mapping文件路径、resId文件路径
执行tinkerPatchRelease打Release版本补丁包
选择app/build/outputs/patch目录下的补丁包并上传(注:不要选择tinkerPatch目录下的补丁包,不然上传会有问题)
编辑下发补丁规则,点击立即下发
重启基准包,请求补丁策略(SDK会自动下载补丁并合成)
再次重启基准包,检验补丁应用结果
以上是应用补丁的流程,有同学可能会问,如果我想撤回怎么办?这里先解释下我们补丁的几种状态:
生效中、下发停止
下发中:表示你上传一个补丁后,点击立即下发之后的状态,表示后台正在下发补丁策略,补丁包对应的基线版本是可以收到对应的策略的。
生效中、下发停止:表示你已经下发过这个补丁,但因为你上传了新补丁,这个补丁下发会被停止,要注意一个目标版本只运行下发一个补丁。
撤回中:表示你不再下发这个补丁,这个操作是不可逆的,点击撤回,基线版本将不会再收到这个补丁策略。
以上就是Bugly热更新SDK的集成方式一些说明啦,如果还有疑问直接找Bugly-kirito咨询。
一些大家比较关注的问题
Q:Bugly热更新会收费么?
A:大家可以放心,我们热更新服务目前是完全免费的。
Q:之前使用Tinker,怎么切换过来使用Bugly?
A: 你只需在dependencies中配置一句代码:
compile &com.tencent.bugly:crashreport_upgrade:1.2.0&
注释掉以前的配置:
// 可选,用于生成application类
//provided('com.tencent.tinker:tinker-android-anno:1.7.5')
// tinker的核心库
// compile('com.tencent.tinker:tinker-android-lib:1.7.5')
插件配置不需要更改,只需要加上我们Bugly额外的tinker-support插件即可:
// tinker gradle插件
classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.5')
// tinkersupport插件
classpath &com.tencent.bugly:tinker-support:1.0.1&
这里建议您不要随便更改插件版本,避免因为插件的更新导致您无法正常生成我们需要的补丁包。
Q:如果我配置了升级策略,又配置了补丁策略,会是怎样的效果?
A:升级策略优先级会高于补丁策略,后台会优先下发升级策略。毕竟你都要升级了,热更新只是帮助你修复bug而已。
Q:我只想使用热更新,不想使用升级?
A:热更新是包含在升级SDK里面的,你可以不配置任何升级策略,只需按照热更新文档集成即可。
Q:是否支持加固模式?
A:tinker是支持加固模式的,但需要你回退到Qzone方案
,将usePreGeneratedPatchDex设置为true。
但要注意Tinker官方的提示:
是否提前生成dex,而非合成的方式。这套方案即回退成Qzone的方案,对于需要使用加固或者多flavor打包(建议使用其他方式生成渠道包)的用户可使用。但是这套方案需要插桩,会造成Dalvik下性能损耗以及Art补丁包可能过大的问题,务必谨慎使用。另外一方面,这种方案在Android N之后可能会产生问题,建议过滤N之后的用户。
Q:是否支持打多Flavor的patch包
A:支持的。你需要配置productFlavor(示例):
productFlavors {
applicationId 'com.tencent.bugly.hotfix.xiaomi'
applicationId 'com.tencent.bugly.hotfix.yyb'
打flavor包,只需要配置构建flavor的目录,其他字段不需要填写(执行tinkerPatchAllFalvorRelease就可以得到所有flavor的包):
关于Bugly热更新SDK你需要知道的一些事情,笔者已经讲完啦,如果你在使用过程中遇到任何问题可以及时跟我们反馈,我们会持续跟进优化SDK和完善接入流程,后续我们会分享更多我们Bugly关于热更新的一些技术和原理上的理解,希望本篇文章能够让使用Bugly热更新SDK的同学和想了解我们热更新的同学的有一些解惑。
你好,请问下bugly是如何做到解决SQLite数据库 freeList的不能回收的问题呢?我在内部执行db.execSQL(“vacuum”);
观察到文件并没有减小太多
Copyright (C) 1998 - 2017 Tencent. All Rights Reserved.
腾讯公司 版权所有他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)使用腾讯bugly实现应用自动更新提示 - 简书
使用腾讯bugly实现应用自动更新提示
我们都知道,在app开发完成发版的时候,会上传到各个应用市场,来增加用户量,但是这些市场往往会有一个审核的周期,等审核通过之后才会推送给用户来下载,并且,当我们某个版本出现严重bug,或者新增了一个特色功能的时候,我们会希望用户很快就能更新我们最新的app,这时候就要用到 应用检测更新了。
通常,实现应用更新一般我们有两种方法。
自己搭建后台检测是否有更新
这种方法通常要求客户端启动后,在某个时机,利用当前版本的某些信息(版本号,渠道号等)来请求服务器,服务器处理后返回是否需要升级等信息。如果需要升级,则下载最新的App安装包进行安装。
第二种 利用现有的比较成熟的第三方框架
现有的用户量比较大的有友盟,腾讯bugly,讯飞平台等。
公司最开始用的是友盟自动更新 ,但是由于某些原因,10.15友盟会关闭自动更新这个服务,对比了几个比较成熟的第三方自动更新,最后决定使用bugly这个,集成和使用也比较简单,下面来详细介绍集成和使用步骤。
1.注册bugly账号以及添加产品
在 这个网址直接用qq登录,然后点击右上角-我的产品,如果没有添加过产品的话,点击 新建产品 ,
然后会跳转到另一个页面:
新建产品详情
带星号的是必填选项,当我们把必填信息填写完成后,点击最下方的保存按钮即可保存。
此时再次点击右上角-我的产品,就会看到我们新建的这个产品了,点击某个产品,会跳转到产品详情界面,在右上角-更多-产品设置中可以查询到改产品的AppId,这里就不放图了。
2.在项目中集成
1.新建一个项目,在app目录下的gradle文件中添加如下配置:
defaultConfig 下:
//设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
dependencies
compile 'com.tencent.bugly:crashreport_upgrade:latest.release'//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.0.0
compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0
2.AndroidMainfest相关配置
权限配置:
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.READ_LOGS" /&&!--保存资源到SD卡--&&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
Activity配置:
&activity android:name="com.tencent.bugly.beta.ui.BetaActivity" android:theme="@android:style/Theme.Translucent" /&
-keep public class com.tencent.bugly.**{*;}
3.代码中使用
在应用初始化的时候调用Bugly.init(getApplicationContext(), "注册时申请的APPID", false)即可。
3.在bugly后台发布新版本
在bugly后台我们点击某个产品,会进入产品详情页面,
点击应用升级-发布新升级,这时会弹出一个对话框,让我们选择升级的设置(策略),这里直接放一张官网的图:
创建升级策略
可以看到,我们可以设置很多升级相关的内容:
1.升级方式-用户选择升级或者强制升级。
2.弹窗样式-可以简单的向用户展示版本信息,更新日志等,也可以添加图片banner给用户,诱导升级。
3.高级配置-升级的触发时机等(某些渠道单独升级,在某个时间段才弹窗提示用户升级等。)
设置完成后点击 创建策略 ,然后刷新 应用升级 页面,会看到我们创建的策略。
拥有的升级策略
我这个升级策略已经启动了,如果你的没有启动,将鼠标放到策略的 状态与操作 栏下,会提示你进行开启。当策略开启后,客户端打开以后,默认在3s后检测是否有新版本,如果检测到的话,就会弹窗提示用户升级。
注意:发布升级的版本的版本号必须大于客户端已安装版本的版本号,否则将会检测不到新版本。
以上是使用bugly进行版本升级的最基本的使用方法,我们还可以有一个复杂的操作,比如在代码中添加多渠道 以支持按渠道升级等。
山水不相逢,微信公众号:码农强仔
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
//我所经历的大数据平台发展史(三):互联网时代 o 上篇http://www.infoq.com/cn/articles/the-development-history-of-big-data-platform-paet02 编者按:本文是松子(李博源)的大数据平台发展史...
最强大的文案策略,内部资料,严禁外传!
你的广告是在为读者们创造机会,使他们得以从平时枯燥的生活中抽离出一会儿,可以变得高兴、感到震惊!怎样的文案才能让读者成为你的顾客,大少来为大家解答。
为了吸引大家的注意力,在网络上,报纸中,你的竞争对手是大量的有关死亡和税务的故事...
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式...
小时候,我坐在单车后, 父亲的肩总是那么厚。 懂事了,我摸着老茧的手, 回忆着童年无忧。 而现在,两部手机连接起彼此心头, 儿子心,轻轻的说, 父亲泪,轻轻地流。 到童年, 道童年。
写在前面: 共享单车作为一项租赁服务,应遵循租赁服务相关的基本要求。 比如,共享单车平台应确保用于对外租赁的自行车,符合国家有关自行车质量标准要求。 再比如,共享单车平台用于对外租赁的自行车,应该部件完整且性能正常。 虽然这些要求未必会在平台提供的租用协议中体现,但这确实属...
今天,临摹一只小萌鼠。 老鼠虽小,但它是十二属相之首。萌萌哒,很可爱。 呆萌的线稿。 小嘴,小鼻子,小尾巴都是粉色。还有粉粉的耳朵,小黑豆眼。 脑袋上第一遍颜色。淡黄。 橘红。 咖色,黑色各上一遍。 完善耳朵和尾巴。一直萌鼠就画好了。 虽然画的不太细,但能提前完成老师作业已...
日本是个岛国,人口密度大,然而无论城市还是乡村,这次旅行所见的街道马路几乎都一尘不染非常整洁,公共交通井然有序,生活也十分便利。它的很多细节之处都令人赞叹,甚至意想不到。 我们常说,细节能够反映一个人的品质,可以决定成败,其实细节也同样是考量一个企业、一个民族和国家特别重要...
前言:除了全力以赴,别无选择!
大学所在学院采取的是大类招生政策,即先进行一年半的通识教育再细分专业(会计、审计、劳动关系、市场营销、工商管理),相对来说会审较为热门,因为在大多数家长或学生眼里,所谓管理类学科都较为“玄幻”,会审是门技术,掌握门技术至少不愁就业!

我要回帖

更多关于 腾讯bugly升级 的文章

 

随机推荐