android app检测更新版本,《Android APP应该有的东西》之功能篇:版本检测更新
《Android APP该有的东西》之功能篇:版本检测更新
自从友盟的自动更新下线之后,一大批app选择了自己写更新逻辑。是的,这里的逻辑并不复杂,完全可以自己写,但是不复杂不代表不麻烦,像是否强制更新、是否能开启循环检测等功能,跟后台配合起来就显得麻烦了。
后来发现了腾讯的Bugly,他是这么介绍的:升级功能是专为App的灰度升级而开发的组件,在bugly内测页面配置好App的更新策略,策略指定的老版本App在启动时会自动检测更新并提示升级,为团队的应用分发,灰度内测提供一站式解决方案。
本文就自己写更新逻辑和集成腾讯bugly自动更新记录一下说明和代码,如果有朋友恰好需要,又恰好看到了,又恰好用上了,又恰好解决了问题,算是功德一件咯~
首先是跟后台配合的更新
讲思路:一般的解决思路都是这样,进入app就开始检测更新,然后弹出Dialog告诉用户,用户点击更新按钮,开启线程下载文件,同时显示下载进度,下载完成自动弹出安装界面,用户安装完成更新。
检测更新涉及到跟后台的交互,可用json和xml说明新版本信息。
其中:
必须包括的内容有:versionCode版本号、更新说明、下载地址
可能包含的信息有:MD5值、新版本截图等
请求拿到数据之后对比本地版本号,开始后面的操作。
此处封装了一个完整的类UpdateManager来解决更新问题,以下为逻辑代码,详细实现参看文末Demo
public class UpdateManager {
//构造方法
public UpdateManager(Context context) {
this.mContext = context;
}
//检测更新
public void checkUpdate() {
if (isUpdate()) {
// 显示提示对话框
showNoticeDialog();
}
}
//判断更新
private boolean isUpdate() {}
//显示软件更新对话框
private void showNoticeDialog() {
//下载
//显示下载进度
}
//安装
private void installApk() {}
}
然后只需要在想使用的类里面new出UpdateManage实例对象,在想使用的地方调用checkUpdate方法。
这里面有很多比较繁琐的内容,比如发放强制更新版本,绘制美观的更新界面,在状态栏的进度显示等等。
使用腾讯bugly自动更新
其实参看官方的应用升级SDK说明就很容易集成了,集成方式本身就很简单,教程也给得清楚明了。
这里也是给出思路:
1.集成jar包或者Gradle依赖,jar包下载和Gradle依赖的写法去官网看哇
2.在想要实现升级的地方配置:
Bugly.init(getApplicationContext(), "添加产品后出现的APPID", true);//bugly自动升级
3.Manifest文件加上更新弹窗的activity:
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:theme="@android:style/Theme.Translucent"/>
4.以及权限配置:
5.在bugly后台上传新版本的apk包,并配置更新策略。
这时候打开低于bugly后台apk里面的versionCode的旧应用,就会在三秒左右的时间里自动检测更新了。
最后的说明
自己写的要满足要求很麻烦,bugly算是给出来一个比较满意的方案,但是PM和UI一定要求某种效果的话,还是得自己去写这个升级策略了,终极定制化还是得落到自己手里的。
另外,Demo里面的targetSdkVersion是24,所以涉及到动态权限的问题,使用RxPermissions处理了一下。
Android-快速完成6.0运行时动态权限申请
【功能篇】扩展阅读
本文作者:paradoxie
个人主页:谢盒盒的小黑屋,不止说技术
简书地址:简书主页,专注说技术
github地址:paradoxie
转载请注明出处,蟹蟹!
-------我的梦想真的是做一条咸鱼!
android app检测更新版本,《Android APP应该有的东西》之功能篇:版本检测更新相关推荐
- Android 6.0 7.0 8.0 一个简单的app内更新版本-okgo app版本更新
登陆时splash初始页调用接口检查app版本.如有更新,使用okGo的文件下载,保存到指定位置,调用Android安装apk. <!-- Android 8.0 (Android O)为了针对 ...
- android p是哪个版本,android p是什么版本
android p指的是安卓9.0版本.在开发时,安卓9.0戴好为android p,p是pistachio ice cream的简称,也可以理解为pie,在正式发布后,谷歌将这款系统称为安卓9.0, ...
- android最早的版本,Android版本演进史
:在开发android应用程序前,你必须使用SDK管理器下载至少一种Android平台来编译你的程序.通常,任何修复漏洞的Android发布版本会重新发布并标注"revision" ...
- android p是哪个版本,Android P是什么系统?Android P与Android有什么区别?[多图]
对于Android P系统,是一个既熟悉又陌生的概念,网上关于Android P爆料很多,但具体是什么系统,与Android系统有什么区别都不太清楚.随着一年一度的 古哥 I/O 2018 开发者大会 ...
- android o是哪个版本,Android O是Oreo的O,安卓系统小甜品大盘点
[PConline 聚超值] 前几天Android 8.0正式发布,系统的版本名称也从Android N进化到Android O,这里的O就是之前大家一直猜测的Oreo,Oreo就是我们平时吃的&qu ...
- android 人脸检测代码,在Android实现人脸识别的详细过程
照相时,在预览画面上提示用户人脸的位置,并完成自动对焦等,是个错的应用; 下面是实现细节 我们知道在android的代码中已有人脸识别的底层算法代码,而且在framework层也封了调用的API函数 ...
- android 摄像头检测工具,检摄app下载-检摄软件(检测摄像头)下载 v1.0.7安卓版_5577安卓网...
检摄app推荐给大家,很多人担心在商场.酒店或是其他其他地方隐藏摄像头来偷窥自己的隐私,那怎么办?小编分享这款检摄软件给你们使用,进入房间之前开启,利用磁力传感器功能来感应周围的摄像头,一起来下载使用 ...
- 基于android的检测心率,基于android手机的血氧饱和度检测
67 基于 android手机的血氧饱和度检测 许方成,赵曙光,杨 峰,黄佳佳 (东华大学信息科学与技术学院,上海 201620) 摘要:血氧饱和度是人体健康状况的标准指标,连续记录血氧饱和度可以预测 ...
- android 入侵检测系统,面向Android智能手机异常入侵检测的在线学习算法.DOC
面向Android智能手机异常入侵检测的在线学习算法 页码 计算机应用研究 第28卷收稿日期:2014-00-00:修回日期: 基金项目:基金项目1全称(基金项目号):基金项目2全称(基金项目号):作 ...
- android中检测网速,Android 流量与网速监测(悬浮窗) 源码
[实例简介] 对应博文链接:http://blog.csdn.net/yyh352091626/article/details/50599621 Android 实现流量与网速监测(悬浮窗) 源码. ...
最新文章
- spoj16935 Straight Line Spiral Pattern (Act 3)
- win10 1709电脑无法显示局域网共享
- java求一个数的阶乘_Java如何使用方法计算一个数字的阶乘值?
- FromBottomToTop团队项目总结
- [BZOJ 1001] 狼抓兔子
- native vlan(本征vlan)----vlan 1 与一般vlan的区别详细解答、tag字段简介、二层异vlan通信、双vlan tag跳跃攻击(附图,建议电脑观看)
- 用MVC做可拖拽的留言板,利用 Jquery模板 -- JsRender
- 【100题】第十一题(二叉树中节点的最大距离)
- 【8】测试用例设计-边界值法
- python调试利器pysnooper
- python 分类树_python中列表的分类树实现
- Chrome谷歌离线安装包下载
- Threejs实现天空盒,全景场景,地面草地
- 原子操作:CAS、TAS、TTAS、FAA浅析
- 关于指针赋初值为NULL的问题
- 聚类算法评价指标python实现_聚类算法及其评估指标
- 可以在PowerShell里使用的Word度量单位
- win11怎么看电脑显卡信息
- 【DeeplabV3+ MIoU】DeeplabV3+计算评价指标
- python爬取网页表格数据匹配_爬取表格类网站数据并保存为excel文件