logo好方法网

一种应用程序升级的方法、装置和相关系统


技术摘要:
本发明公开了一种应用程序升级的方法、装置和相关系统。所述方法包括:接收服务器下发的应用程序的升级信息,根据升级信息中的升级条件,判断是否需要对应用程序进行升级;若是,根据升级信息中的下载地址下载升级包,使用升级包对应用程序进行升级。能够避免客户端上  全部
背景技术:
传统开发中,为完成客户端的个性化升级或灰度升级或AB测试,都需要上传客户 端的设备信息到服务器,再由服务器来判断是否需要升级,允许需要升级的客户端下载升 级包,完成升级。 其中,灰度升级即局部升级,是一种升级时候的平滑切换,当有些服务器的客户端 要进行升级,只对其中部分客户端升级并测试,确保程序无误后再全局升级;AB测试是为 Web或App界面或流程制作两个(A/B)或多个(A/B/……n)版本,在同一时间维度,分别让设 定的不同的群组访问不同的版本,收集各个群组的用户体验数据和业务数据,最后分析评 估出最好版本正式采用。 上述升级过程,首先需要客户端都上传设备信息给服务器,存在隐私被非法获取 的风险,很容易发生隐私泄露。
技术实现要素:
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的一种应用升级的方法、装置和相关系统。 第一方面,本发明实施例提供一种应用程序升级的方法,包括: 接收服务器下发的应用程序的升级信息,根据所述升级信息中的升级条件,判断 是否需要对所述应用程序进行升级; 若是,根据所述升级信息中的下载地址下载升级包,使用所述升级包对所述应用 程序进行升级。 在一些可选的实施例中,所述根据所述升级信息中的升级条件,判断是否需要对 所述应用程序进行升级,包括: 对所述升级信息进行解析,解析出升级条件,所述升级条件中包括至少一条升级 判定信息; 根据每条所述升级判定信息中的升级判定对象,判断本地的所述对象是否符合对 应的判定规则,若是,则确定需要对所述应用程序进行升级。 在一些可选的实施例中,当解析出的升级条件不止一个时,若符合任何一个升级 条件,则确定需要对所述应用程序进行升级。 在一些可选的实施例中,根据每条所述升级判定信息中的升级判定对象,判断本 地的所述对象是否符合对应的判定规则,包括下列至少一项: 根据所述升级判定信息中的业务模块的名称搜索本地是否存在所述业务模块; 根据所述升级判定信息中的业务模块的编号规则,判断本地的所述业务模块的编 5 CN 111610990 A 说 明 书 2/14 页 号是否满足所述编号规则; 根据所述升级判定信息中的业务模块的版本号规则,判断本地的所述业务模块的 版本号是否满足所述版本号规则; 判断本地的所述应用程序的编号是否满足所述升级判定信息中的所述应用程序 编号规则; 判断本地的所述应用程序的版本号是否满足所述升级判定信息中的所述应用程 序版本号规则; 判断本地设备的ID号是否满足所述升级判定信息中的设备ID号规则; 判断本地设备的品牌是否满足所述升级判定信息中的设备品牌规则; 判断本地设备的型号是否满足所述升级判定信息中的设备型号规则; 判断本地设备的软件操作系统版本号是否满足所述升级判定信息中设备的软件 操作系统版本号规则; 判断本地设备的用户ID号是否满足所述升级判定信息中的用户ID号规则; 判断本地设备的用户分类标签是否满足所述升级判定信息中的用户分类标签规 则; 判断本地设备的升级方式是否满足所述升级判定信息中设备的升级方式规则; 判断本地设备的网络状态是否满足所述升级判定信息中设备的网络状态规则; 判断本地设备的升级方式是否满足所述升级判定信息中设备的升级方式规则; 判断本地设备的位置是否满足所述升级判定信息中设备的位置规则。 在一些可选的实施例中,接收服务器下发的所述应用程序的升级信息前,还包括: 调用相应的资源启动所述应用程序,与服务器建立socket连接;通过socket连接接收服务 器下发的的所述应用程序的升级信息。 在一些可选的实施例中,根据所述升级信息中的下载地址下载升级包,包括: 根据所述升级信息中的下载地址下载所述应用程序的升级包;或 根据所述升级信息中的下载地址下载所述应用程序中至少一个业务模块的协议 程序包,所述协议程序包中包括针对所述业务开发的协议代码以及运行协议代码所需调用 的资源。 在一些可选的实施例中,当下载所述应用程序中至少一个业务模块的协议程序包 时,所述应用程序是由包含编译后的应用程序原生代码的安装包安装得到的;所述原生代 码包括应用程序的基础代码、运行应用程序需要调用的资源、协议引擎和协议代码与基础 代码调用映射关系库;相应的, 使用所述升级包对所述应用程序进行升级,包括: 将所述协议程序包存储到应用程序的指定目录中;根据协议代码与基础代码调用 映射关系库,调用所述协议程序包中的需要运行的协议代码,在相应的协议引擎上运行调 用的所述协议代码。 在一些可选的实施例中,接收服务器下发的所述应用程序的升级信息,包括: 接收服务器下发的包括下列至少一项备注信息的所述应用程序的升级信息: 是否强制升级的信息;所述升级包的信息摘要算法MD5值;升级内容;所述升级包 的大小。 6 CN 111610990 A 说 明 书 3/14 页 在一些可选的实施例中,所述方法,还包括执行下述步骤中的至少一个: 确定需要对应用程序进行升级时,根据所述备注信息中包括的是否强制升级的信 息,确定直接执行或接收到用户的升级指令后再执行所述根据所述升级信息中的下载地址 下载升级包的步骤; 下载升级包之后,将升级包中的MD5值与所述备注信息中包括的MD5值匹配,若匹 配正确,执行所述使用所述升级包对所述应用程序进行升级的步骤; 确定需要对应用程序进行升级时,将所述备注信息中包括的升级内容和/或升级 包的大小展示给用户,接收到用户的升级指令后再执行所述根据所述升级信息中的下载地 址下载升级包的步骤。 在一些可选的实施例中,接收服务器下发的所述应用程序的升级信息,包括: 接收服务器下发的预先将升级信息按照预定的加密方式加密成的升级信息密文; 对应的, 根据升级信息中的升级条件判断是否需要升级之前,还包括: 按照与所述加密方式对应的解密方式解密所述升级信息密文。 在一些可选的实施例中,判断是否需要对所述应用程序进行升级之前,还包括: 判断所述升级信息是否合规; 若是,再执行所述根据所述升级信息中的升级条件,判断是否需要对所述应用程 序进行升级的步骤。 在一些可选的实施例中,接收服务器下发的所述应用程序的升级信息,包括: 接收服务器主动下发的所述应用程序的升级信息;或, 向服务器发送升级信息请求,接收服务器根据所述请求下发的所述应用程序的升 级信息。 第二方面,本发明实施例提供一种应用程序升级的装置,包括: 接收模块,用于接收服务器下发的应用程序的升级信息; 第一判断模块,用于根据所述接收模块接收的所述升级信息中的升级条件,判断 是否需要对所述应用程序进行升级; 下载模块,用于当所述第一判断模块判断为是时,根据所述接收模块接收的所述 升级信息中的下载地址下载升级包; 升级模块,用于使用所述下载模块下载的升级包对所述应用程序进行升级。 在一些可选的实施例中,所述第一判断模块,具体用于: 对所述升级信息进行解析,解析出升级条件,所述升级条件中包括至少一条升级 判定信息;根据每条所述升级判定信息中的升级判定对象,判断本地的所述对象是否符合 对应的判定规则,若是,则确定需要对所述应用程序进行升级。 在一些可选的实施例中,所述装置,还包括: 启动模块,用于调用相应的资源启动所述应用程序,与服务器建立socket连接;相 应的, 所述接收模块,用于通过所述启动模块建立的所述socket连接接收服务器下发的 的所述应用程序的升级信息。 在一些可选的实施例中,所述下载模块,具体用于: 7 CN 111610990 A 说 明 书 4/14 页 根据所述接收模块接收的所述升级信息中的下载地址下载所述应用程序的升级 包;或 根据所述接收模块接收的所述升级信息中的下载地址下载所述应用程序中至少 一个业务模块的协议程序包,所述协议程序包中包括针对所述业务开发的协议代码以及运 行协议代码所需调用的资源。 在一些可选的实施例中,所述接收模块,具体用于: 接收服务器下发的包括下列至少一项备注信息的所述应用程序的升级信息:是否 强制升级的信息;所述升级包的信息摘要算法MD5值;升级内容;所述升级包的大小。 在一些可选的实施例中,所述装置,还包括至少一个下述模块: 确定模块,用于在所述第一判断模块确定需要对应用程序进行升级时,根据所述 备注信息中包括的是否强制升级的信息,确定直接执行或接收到用户的升级指令后所述下 载模块再执行所述根据所述升级信息中的下载地址下载升级包的步骤; 匹配模块,用于所述狭窄模块下载升级包之后,将升级包中的MD5值与所述备注信 息中包括的MD5值匹配,若匹配正确,所述升级模块执行所述使用所述升级包对所述应用程 序进行升级的步骤; 展示模块,用于所述第一判断模块确定需要对应用程序进行升级时,将所述备注 信息中包括的升级内容和/或升级包的大小展示给用户,接收到用户的升级指令后下载模 块再执行所述根据所述升级信息中的下载地址下载升级包的步骤。 在一些可选的实施例中,所述接收模块,具体用于: 接收服务器下发的预先将升级信息按照预定的加密方式加密成的升级信息密文; 对应的,所述装置还包括解密模块,用于: 所述第一判断模块根据升级信息中的升级条件判断是否需要升级之前,按照与所 述加密方式对应的解密方式解密所述升级信息密文。 在一些可选的实施例中,所述装置,还包括: 第二判断模块,用于在所述第一判断模块判断是否需要对所述应用程序进行升级 之前,判断所述升级信息是否合规; 若是,所述第一判断模块再执行所述根据所述升级信息中的升级条件,判断是否 需要对所述应用程序进行升级的步骤。 在一些可选的实施例中,所述接收模块,具体用于: 接收服务器主动下发的所述应用程序的升级信息;或,向服务器发送升级信息请 求,接收服务器根据所述请求下发的所述应用程序的升级信息。 第三方面,本发明实施例提供一种应用程序升级的系统,包括:服务器和至少一个 客户端; 所述客户端设置有上述任一所述的应用升级的装置; 所述服务器用于生成并向每个客户端发送所述升级信息。 第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机指令, 当该指令被处理器执行时实现上述应用程序升级的方法。 本发明实施例提供的上述技术方案的有益效果至少包括: 接收服务器下发的应用程序的升级信息,根据升级信息中的升级条件,判断是否 8 CN 111610990 A 说 明 书 5/14 页 需要对应用程序进行升级;若是,根据升级信息中的下载地址下载升级包,使用升级包对应 用程序进行升级。通过服务器下发升级信息,将计算并判断是否需要升级的工作放在客户 端进行,节约了服务器的计算量;客户端判断需要升级则按照下载地址下载升级包完成升 级,客户端与服务器之间不用反复的通信,有效的节省了网络带宽;同时,能够避免客户端 上传设备信息到服务器再由服务器来判断是否需要升级所带来的信息泄露,保护了用户隐 私。故,本实施例所述方法可以更加高效安全实时的实现应用程序的升级。 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 附图说明 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中: 图1为本发明实施例一中所述应用程序升级的方法的流程图; 图2为本发明实施例三中所述应用程序的开发方法的流程图; 图3为本发明实施例四中所述应用程序升级的方法的具体实现流程图; 图4为本发明实施例中所述应用程序升级的装置的结构示意图; 图5为本发明实施例中所述应用程序升级的系统的结构示意图。
分享到:
收藏