Android App应用程序实现自动更新
来源:互联网 发布:知乎 宋茜 编辑:程序博客网 时间:2024/05/18 09:11
1. 初衷:
Android App 需要不断更新迭代。当新版本发布以后,如果客户下载了或者仍然在使用老版本的App,这个时候就应该提醒客户升级App,以便提供给客户更加完善的功能等,提升用户体验满意度。
2. 逻辑:
- 当客户进入Splash界面的时候,获取本地客户端的版本号。
- 获取服务器端版本号,两者做比较,如果本地客户端=服务器端版本号,直接进入主页面或者引导页面;如果本地客户端小于服务器端版本号(前者不会大于后者,做判断的时候只需要判断是否相等即可),则提示用户升级。
- 客户选择升级,下载Apk。下载完成以后,则替换安装即可。
3. 配置服务器端:
- 创建名为updateinfo.json的文件,放置在Tomcat服务器webapps\ROOT下,内容如下:
说明:version是服务器的版本,description:更新对话框中显示的内容(优点:在服务器端可动态设置),downloadpath:apk的存放地址。
- 放置版本为1.0.1的xxx.apk在webapps\ROOT下(位置和updateinfo.json里面的下载地址一致)
- 项目value文件夹下创建config.xml文件,内容如下:
说明:这个url存放的是updateinfo.json的ip地址,优点就是可以动态设置。
4. 配置OkHttputils
- 添加依赖:
- 初始化(Application中,别忘记注册文件里面配置下):
5. 实现自动更新逻辑:
- 准备用来读取流的工具类StreamTools
- 准备获取本地版本的工具类PackageInfoUtils
- 创建两个活动(Activity),MainActivity和SplashActivity,创建各自布局并初始化,并且把本地版本号打印在Splash页面:
MainActivity(主页面布局和初始化如下):
activity_main.xml:
MainActivity:
SplashActivity(布局和初始化如下):
activity_splash.xml:
MainActivity(初始化+显示本地版本号到页面上):
- 开启子线程,获取服务器端版本号并比较,版本号一致,直接进入程序主页面,不一致,提示用户升级:
- 弹出用户升级对话框,如果选择立刻升级则下载并替换安装,如果选择下次再说,直接跳转到主页面
6. 总结:
此次SDK版本是25,编译工具版本25.0.1;通过以上操作,逻辑+代码可以实现App自动更新的操作,如果哪里有疑问或者有其他意见和建议,都可以写在评论里面,我每一条都会认真看认真回复;觉得还可以的,还望收藏点赞,我会继续努力;元旦之际,祝各位新年快乐,万事如意。
7.demo下载地址:
链接: https://pan.baidu.com/s/1qXWpNkw 密码: nwp2
0 0
- Android App应用程序实现自动更新
- Android实现APP自动更新
- Android实现APP自动更新功能
- Android实现App版本自动更新
- Android实现App版本自动更新
- Android实现App版本自动更新
- Android实现App版本自动更新
- Android如何实现APP自动更新
- Android实现APP版本自动更新功能
- Android 应用程序自动更新
- Android应用程序自动更新
- Android 之应用程序自动更新
- Retrofit2实现App自动更新
- Retrofit2实现App自动更新
- App实现自动更新
- App实现自动更新
- android app 自动更新
- Android自动更新App
- [学习笔记]kd-tree
- 安卓icon图标大小标准,以及mdpi等对应放置的图片大小
- thinkphp 3.2预防sql注入、对查询的sql过滤
- Gilde 用法缓冲
- mysql死锁问题分析
- Android App应用程序实现自动更新
- 开发中用到的有用的网址
- 苹果企业开发账号申请三步走
- 关于UEdit在编辑时老是弹窗提示UEdit已启用
- Git与TortoiseGit基本操作
- 解决从SVN导入maven项目pom.xml无法下载的问题
- 【caffe源码研究】第三章:源码篇(1) :caffe整体架构
- 高并发读与高并发写的项目总结和mongodb使用中遇到的坑
- 数据结构之递归(Recursion)------分而治之