App 版本更新接口的设计

转载 2018年04月17日 00:00:00

code小生,一个专注于 Android 领域的技术分享平台

作者:闲庭CC
链接:https://www.jianshu.com/p/f7394d871542
声明:本文是 闲庭CC 原创,转发等请联系原作者授权。

工作这几年碰到的版本检测升级的接口也算是五花八门,啥样的都有,但肯定有的功能是有个apk的下载链接,能间接或直接提示你是强制还是非强制更新:

  • 间接是指提供你后台最新版本号,让你自己与本地版本号通过比较得出是否升级;

  • 直接就是后台接口直接返回个Boolean类型告诉你是强制或者非强制更新。

个人认为一个好的版本检测接口需要设计的更灵活更清晰用起来更方便,下面就我理解的接口设计如下(如思路有误,欢迎指正):

总字段如下(并不是所有字段都要返回给客户端):
 1.最新版本号 :newVersion
 2.最小支持版本号 : minVersion
 3.apk下载url : apkUrl
 4.更新文案 : updateDescription
 5.是否有更新 : isUpdate
 6.是否强制更新 : forceUpdate

方案一(后端处理逻辑):
在客户端请求参数中添加当前版本号currentVersion传输给后台,由后台根据客户端传过来的当前版本号currentVersion做相应的判断后给出是否强制更新。
后端逻辑如下:

  1. 如果currentVersion < newVersion,则isUpdate = true;

  • 如果currentVersion < minVersion,则forceUpdate = true;

  • 如果currentVersion >= minVersion,则forceUpdate = false;

  • 如果有特殊需求可指定某个版本必须强制更新,如currentVersion == XXX,则forceUpdate = true;

  1. 如果currentVersion == newVersion,则isUpdate = false.

结论:
返回客户端的字段仅需要apk下载url : apkUrl、更新文案 : updateDescription、是否有更新 : isUpdate 、 是否强制更新 : forceUpdate 这四个字段即可。

方案二(前端处理逻辑):
逻辑和后端处理逻辑大体上一致,只是把逻辑判断移到前台,故需要后端提供最新版本号 :newVersion 、 最小支持版本号 : minVersion 、apk下载url : apkUrl 、更新文案 : updateDescription 这四个字段。

客户端逻辑如下:

  1. 如果currentVersion < newVersion,则有更新信息;

  • 如果currentVersion < minVersion,则需要强制更新;

  • 如果currentVersion >= minVersion,则不需要强制更新;

  1. 如果currentVersion == newVersion,则没有更新信息.

综上所述,这个处理逻辑客户端和后端谁来做都可以,无关乎懒不懒的问题,个人感觉灵活性后端比客户端方便多了,毕竟后端可以指定 minVersion 与 newVersion 中间的任意一个版本强制更新,而客户端做起来就没有那么灵活了,个人见解,如有更好的方案,欢迎指教。

640

版本更新

Android 检查版本升级应该怎么做?

Android版本更新、热更新以及权限管理

-
  • 1970年01月01日 08:00

APP版本升级,服务端API设计

1 客户端版本和服务器端API版本不是一一对应的 2 客户端版本可能为1.0, 1.1, 2.0, 2.1…… 而服务器端最多维护3个大版本,比如 1.x,  2.x,  3.x,当超过三个版本,...
  • jkguang
  • jkguang
  • 2017-01-03 18:32:13
  • 1499

App版本升级接口

版本升级表: DROP TABLE IF EXISTS `version_upgrade`; CREATE TABLE `version_upgrade` ( `id` int(11) NOT N...
  • fishermanmax
  • fishermanmax
  • 2016-08-07 16:21:09
  • 3563

APP产品设计系列-版本升级

本文转载自 简书-技术汪        在竞争激烈的互联网行业,相方拼的是时间和速度,新上线产品每月甚至更短时间更新迭代一次,以便打响品牌,快速占领市场。小步快跑,快速迭代也是互联网最流行的开发思...
  • ccfxue
  • ccfxue
  • 2017-05-06 19:38:11
  • 273

APP开发实战134-APP版本更新功能设计

35 APP版本更新功能设计 35.1功能项 35.1.1服务器端功能 1 可以从电脑上选择并上传APK到服务器。   2 可以编辑和显示更新日志。   3 可以自动读取APK中的渠道号...
  • xjbclz
  • xjbclz
  • 2016-08-25 22:31:16
  • 726

app版本更新

Android Studio使用gradle实现VersionCode VersionName自动更新注意,使用Android Studio加gradle实现,这个也不算要求了,基本上没多少人使用Ec...
  • chenqianleo
  • chenqianleo
  • 2017-10-19 14:52:09
  • 137

app版本升级

主类:package com.bw.versionupdate;import java.io.BufferedInputStream; import java.io.File; import java...
  • zxmyl
  • zxmyl
  • 2016-09-11 20:59:04
  • 244

<em>版本升级</em>管理方案

一个用于版本管理<em>升级</em>的方案,包括表<em>设计</em>,以及模块<em>设计</em>方案。... 一个用于版本管理<em>升级</em>的方案,包括表<em>设计</em>,以及模块...版本更新管理 <em>app版本</em>更新的四种实现方式 React...
  • 2018年04月20日 00:00

app版本更新的四种实现方式

版本更新大致分为四大类:app负责单版本检测测与更新(自己实现版本更新),通过苹果商店的自动更新机制进行自动更新和通过第三方平台实现版本检测与更新(如:友盟的版本检测与更新),app和服务器联合实现多...
  • jia12216
  • jia12216
  • 2015-11-06 10:04:07
  • 15550

android APP实现更新 PHP后台服务器

最近自己在做一款APP,需要实现APP版本更新功能,从网上找了许多资料,只找到了关于移动端的实现。经过我的研究,终于实现了比较完整的android APP版本更新功能,在此分享给广大朋友,但是我的io...
  • a510718250
  • a510718250
  • 2016-07-31 19:30:09
  • 4310
收藏助手
不良信息举报
您举报文章:App 版本更新接口的设计
举报原因:
原因补充:

(最多只允许输入30个字)