《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应该有的东西》之功能篇:版本检测更新相关推荐

  1. Android 6.0 7.0 8.0 一个简单的app内更新版本-okgo app版本更新

    登陆时splash初始页调用接口检查app版本.如有更新,使用okGo的文件下载,保存到指定位置,调用Android安装apk. <!-- Android 8.0 (Android O)为了针对 ...

  2. android p是哪个版本,android p是什么版本

    android p指的是安卓9.0版本.在开发时,安卓9.0戴好为android p,p是pistachio ice cream的简称,也可以理解为pie,在正式发布后,谷歌将这款系统称为安卓9.0, ...

  3. android最早的版本,Android版本演进史

    :在开发android应用程序前,你必须使用SDK管理器下载至少一种Android平台来编译你的程序.通常,任何修复漏洞的Android发布版本会重新发布并标注"revision" ...

  4. android p是哪个版本,Android P是什么系统?Android P与Android有什么区别?[多图]

    对于Android P系统,是一个既熟悉又陌生的概念,网上关于Android P爆料很多,但具体是什么系统,与Android系统有什么区别都不太清楚.随着一年一度的 古哥 I/O 2018 开发者大会 ...

  5. android o是哪个版本,Android O是Oreo的O,安卓系统小甜品大盘点

    [PConline 聚超值] 前几天Android 8.0正式发布,系统的版本名称也从Android N进化到Android O,这里的O就是之前大家一直猜测的Oreo,Oreo就是我们平时吃的&qu ...

  6. android 人脸检测代码,在Android实现人脸识别的详细过程

    照相时,在预览画面上提示用户人脸的位置,并完成自动对焦等,是个错的应用; 下面是实现细节 我们知道在android的代码中已有人脸识别的底层算法代码,而且在framework层也封了调用的API函数 ...

  7. android 摄像头检测工具,检摄app下载-检摄软件(检测摄像头)下载 v1.0.7安卓版_5577安卓网...

    检摄app推荐给大家,很多人担心在商场.酒店或是其他其他地方隐藏摄像头来偷窥自己的隐私,那怎么办?小编分享这款检摄软件给你们使用,进入房间之前开启,利用磁力传感器功能来感应周围的摄像头,一起来下载使用 ...

  8. 基于android的检测心率,基于android手机的血氧饱和度检测

    67 基于 android手机的血氧饱和度检测 许方成,赵曙光,杨 峰,黄佳佳 (东华大学信息科学与技术学院,上海 201620) 摘要:血氧饱和度是人体健康状况的标准指标,连续记录血氧饱和度可以预测 ...

  9. android 入侵检测系统,面向Android智能手机异常入侵检测的在线学习算法.DOC

    面向Android智能手机异常入侵检测的在线学习算法 页码 计算机应用研究 第28卷收稿日期:2014-00-00:修回日期: 基金项目:基金项目1全称(基金项目号):基金项目2全称(基金项目号):作 ...

  10. android中检测网速,Android 流量与网速监测(悬浮窗) 源码

    [实例简介] 对应博文链接:http://blog.csdn.net/yyh352091626/article/details/50599621 Android 实现流量与网速监测(悬浮窗) 源码. ...

最新文章

  1. spoj16935 Straight Line Spiral Pattern (Act 3)
  2. win10 1709电脑无法显示局域网共享
  3. java求一个数的阶乘_Java如何使用方法计算一个数字的阶乘值?
  4. FromBottomToTop团队项目总结
  5. [BZOJ 1001] 狼抓兔子
  6. native vlan(本征vlan)----vlan 1 与一般vlan的区别详细解答、tag字段简介、二层异vlan通信、双vlan tag跳跃攻击(附图,建议电脑观看)
  7. 用MVC做可拖拽的留言板,利用 Jquery模板 -- JsRender
  8. 【100题】第十一题(二叉树中节点的最大距离)
  9. 【8】测试用例设计-边界值法
  10. python调试利器pysnooper
  11. python 分类树_python中列表的分类树实现
  12. Chrome谷歌离线安装包下载
  13. Threejs实现天空盒,全景场景,地面草地
  14. 原子操作:CAS、TAS、TTAS、FAA浅析
  15. 关于指针赋初值为NULL的问题
  16. 聚类算法评价指标python实现_聚类算法及其评估指标
  17. 可以在PowerShell里使用的Word度量单位
  18. win11怎么看电脑显卡信息
  19. 【DeeplabV3+ MIoU】DeeplabV3+计算评价指标
  20. python爬取网页表格数据匹配_爬取表格类网站数据并保存为excel文件

热门文章

  1. 如何在保持营养均衡的同时不长肉
  2. ggplot2设置坐标轴范围_ggplot2|详解八大基本绘图要素
  3. 物联网平台的结构组成有哪些
  4. ltb火箭_火箭的大脑
  5. 消防安全监测模块,筑牢工厂消防安全屏障
  6. 2020上半年盘点:全球AI融资降至3年最低,但这四大领域被按了加速键
  7. 这些数据爬虫网站,帮你工作提质增效,还不收藏?
  8. iOS 内购提示不允许App内购买项目,打开内购方式和检测不允许内购的方法。
  9. 【深度学习Deep Learning】资料大全
  10. 如何在VC中调用第三方lib库(step by step)