APP升级

news/2024/7/20 20:12:30 标签: Android, IOS

1、概述

        APP升级分为两种类型

  • 强制升级。
    • APP不升级,将无法使用。
  • 非强制升级。
    • 提示用户升级,用户可以选择不升级。

1.1 设计实现

  • 版本控制
    • APP:当前安装的版本号。
    • 数据库:记录所有的版本号。
  • 升级检测
    • 启动APP:用户在启动APP时,首先检测当前APP是不是最新版本。
    • 定时任务:定时检测当前APP是不是最新版本。
  • 升级通知
    • 推送通知:通知中可以包含新版本的信息(如版本号、下载链接等)。
  • 安装
    • 应用市场:将最新APP推送到应用市场。
    • 本地安装:主要针对的Android手机。安装包在服务器上,可以下载安装。如果用户量大,可以通过cdn加速。
  • 新手引导
    • 引导用户使用新版本的功能。

1.2 流程图

2、表设计

2.1 表结构

CREATE TABLE `t_app_version` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `os` tinyint(1) NOT NULL DEFAULT '0' COMMENT '系统 0:Android;1:IOS;',
  `version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '版本号',
  `version_seq` int NOT NULL DEFAULT '1' COMMENT '版本顺序号',
  `version_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '版本描述',
  `download_url` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '版本下载地址,只有Android需要',
  `online_time` datetime NOT NULL COMMENT '上线时间',
  `forced_update` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否强制更新 0:询问更新; 1:强制更新。',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '更新时间',
  `is_delete` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除 0:未删除;1:删除;',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_os_version_seq` (`os`,`version_seq`),
  KEY `idx_online_time` (`online_time`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='APP版本信息';
  • version_seq:版本顺序号。数字类型,用来判断版本高低的。
  • version_desc:版本描述。上线了哪些功能。
  • download_url:版本下载地址,只有Android需要。因为IOS只能在APP store安装。
  • online_time:上线时间。这个版本的上线时间。

2.2 示例数据

INSERT INTO `t_app_version` (`id`, `os`, `version`, `version_seq`, `version_desc`, `download_url`, `online_time`, `forced_update`, `create_time`, `update_time`, `is_delete`) VALUES (1, 0, 'v1.0', 10, '第一版', 'https://image.cws930.xyz/CellPhonesAccessories', '2021-11-29 06:23:55', 1, '2002-09-22 03:30:16', '2012-02-19 23:01:12', 0);
INSERT INTO `t_app_version` (`id`, `os`, `version`, `version_seq`, `version_desc`, `download_url`, `online_time`, `forced_update`, `create_time`, `update_time`, `is_delete`) VALUES (2, 1, 'v1.0', 10, '第一版', NULL, '2021-11-29 06:23:55', 1, '2000-02-10 11:00:00', '2005-04-10 07:17:10', 0);
INSERT INTO `t_app_version` (`id`, `os`, `version`, `version_seq`, `version_desc`, `download_url`, `online_time`, `forced_update`, `create_time`, `update_time`, `is_delete`) VALUES (3, 0, 'v1.1', 11, '修复bug', 'http://www.nakayamayu.org/BaggageTravelEquipment', '2021-12-01 06:23:55', 0, '2014-01-31 21:57:05', '2019-02-04 11:31:43', 0);
INSERT INTO `t_app_version` (`id`, `os`, `version`, `version_seq`, `version_desc`, `download_url`, `online_time`, `forced_update`, `create_time`, `update_time`, `is_delete`) VALUES (4, 1, 'v1.1', 11, '修复bug', NULL, '2021-12-01 06:23:55', 0, '2001-09-04 05:11:07', '2008-03-24 22:14:32', 0);
INSERT INTO `t_app_version` (`id`, `os`, `version`, `version_seq`, `version_desc`, `download_url`, `online_time`, `forced_update`, `create_time`, `update_time`, `is_delete`) VALUES (5, 0, 'v2.0', 20, '新增功能', 'http://video.hiutunglai.co.jp/Appliances', '2022-01-01 06:23:55', 0, '2017-05-16 09:08:48', '2015-03-04 20:08:40', 0);
INSERT INTO `t_app_version` (`id`, `os`, `version`, `version_seq`, `version_desc`, `download_url`, `online_time`, `forced_update`, `create_time`, `update_time`, `is_delete`) VALUES (6, 1, 'v2.0', 20, '新增功能', NULL, '2022-01-01 06:23:55', 0, '2017-05-16 09:08:48', '2015-03-04 20:08:40', 0);

 2.3 升级查询sql

SELECT
	* 
FROM
	t_app_version 
WHERE
	is_delete = 0 
	AND online_time > now() 
	AND version_seq > $ { version_seq };
  • $ { version_seq }为用户的安装版本,有APP前端提供。
  • APP升级的逻辑
    • 没记录,用户不需要升级。
    • 有需要强更的记录,用户必须升级到最新版本。
    • 没有强更记录,提示用户升级。

3、安装包

  • 下载安装包:没有版本号。用户下载时,永远是最新版。
  • 备份安装包:有版本号。如果失败,可以回滚到历史版本。

http://www.niftyadmin.cn/n/5132775.html

相关文章

oracle rac-归档满处理

有客户反馈数据库无法使用了,客户手动启动报错如下 SQL> startup; ORACLE instance started. Total System Global Area 2.6924E10 bytes Fixed Size 2265984 bytes Variable Size 1.3959E10 bytes Database Buffers 1.2952E10 bytes R…

数据库第8章作业

ps:本篇只为记录和分享 一. 单选题(共20题) 1. (单选题)E-R图是数据库设计的工具之一,它适用于建立数据库的( )。 A. 概念模型B. 物理模型C. 逻辑模型D. 结构模型 我的答案: A :概念模型; 2. (单选题)数…

【计算机毕设】微信小程序案例-学生签到系统

前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 👉IT源码社-SpringBoot优质案例推荐👈 👉IT源码社-小程序优质案例…

拿捏面试官,高频接口自动化测试面试题总结(附答案)狂收offer...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题&#xff1…

两数和的目标 python (初学者vs程序员)

题目描述 1)给定一个整数列表,在列表中,从前向后查找两个元素使其相加之和等于目标数,并返回两个整数在列表中的下标。如果没有符合条件的数字,输出False,本题假设题目的解唯一。‬‪‬‪‬‪‬‪‬‮‬‪…

数据结构,及分类(存储分类、逻辑分类)介绍

一、数据结构: 数据是软件开发的核心。在软件开发过程中基本上就是对数据的新增、删除、修改、查看的操作。 如何合理存储数据,如何有效提升数据操作开发效率,都是软件开发中的重中之重。使用合理的数据结构是非常重要的。 1.1简介&#xff…

基于引力搜索算法的无人机航迹规划-附代码

基于引力搜索算法的无人机航迹规划 文章目录 基于引力搜索算法的无人机航迹规划1.引力搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用引力搜索算法来优化无人机航迹规划。 …

超详细的Windows 11虚拟机安装教程

准备安装文件创建虚拟机Windows安装 准备安装文件 1、安装好VMware WorkStation 16 Pro(越新越好) 2、下载好Windows 11系统镜像 其中VMware的安装教程看我往期推送,至少用我提供的16.2版本,低版本的会出现蓝屏问题。Windows …