应用程序的升级处理方法、相关装置和介质与流程
本公开涉及计算机,特别是涉及一种应用程序的升级处理方法、相关装置和介质。
背景技术:
1、目前,移动终端(例如手机、平板电脑等)中的应用程序的版本升级常常是通过两种升级模式实现的:第一种升级模式是由开发者将应用程序的各个版本对应的安装包文件提交到各个服务运营商的应用中心,由各个服务运营商根据既定的审核机制对接收到的安装包文件进行审核处理,并在审核通过之后再根据该版本对应的版本推送策略,将版本对应的安装包文件部署到应用中心,再向普通用户推送。这一方式会由于服务运营商的审核和推送有一个过程,而使得应用程序版本更新不及时。第二种升级模式是在用户终端自动化检测应用程序的发布版本,并依赖于版本比对与用户交互引导,在用户手动完成安装包文件下载及授权安装操作之后才执行应用程序的版本升级。这一方式会由于用户未及时手动更新而导致版本更新及时性差。
技术实现思路
1、本公开实施例提供了一种应用程序的升级处理方法、相关装置和介质,它能够提高应用程序的版本升级及时性。
2、根据本公开的一方面,提供了一种应用程序的升级处理方法,所述方法包括:
3、响应于安装有所述应用程序的终端开机,执行开机例程,以激活与所述应用程序绑定的插件,其中,所述插件随所述应用程序预下载到所述终端,并在所述开机例程中嵌入用于在开机时激活所述插件的代码;
4、通过所述插件,获取所述应用程序的目标版本信息,所述目标版本信息是所述应用程序的已公开版本中的发布时间最新的版本的版本信息;
5、如果所述目标版本信息大于所述终端上安装的所述应用程序的当前版本信息,下载所述目标版本信息对应的目标安装包;
6、识别所述应用程序在所述终端上的运行状态;
7、如果所述运行状态满足第一条件,用所述目标安装包对所述终端上所述应用程序的当前版本对应的版本安装包进行全量替换。
8、根据本公开的一方面,提供了一种应用程序的升级处理装置,所述装置包括:
9、执行单元,用于响应于安装有所述应用程序的终端开机,执行开机例程,以激活与所述应用程序绑定的插件,其中,所述插件随所述应用程序预下载到所述终端,并在所述开机例程中嵌入用于在开机时激活所述插件的代码;
10、获取单元,用于通过所述插件,获取所述应用程序的目标版本信息,所述目标版本信息是所述应用程序的已公开版本中发布时间最新的版本的版本信息;
11、下载单元,用于如果所述目标版本信息大于所述终端上安装的所述应用程序的当前版本信息,下载所述目标版本信息对应的目标安装包;
12、识别单元,用于识别所述应用程序在所述终端上的运行状态;
13、升级单元,用于如果所述运行状态满足第一条件,用所述目标安装包对所述终端上所述应用程序的当前版本对应的版本安装包进行全量替换。
14、可选地,所述运行状态包含所述应用程序开启的功能、所述功能上一次被调用的时间距离当前时间的停止调用时长;
15、所述升级单元用于:
16、基于开启的各个功能的所述停止调用时长,计算平均停止调用时长;
17、基于所述平均停止调用时长,计算第一分数,所述第一分数为所述平均停止调用时长的增函数;
18、基于开启的功能的总数目,计算第二分数,所述第二分数为所述总数目的减函数;
19、基于所述第一分数和所述第二分数,计算第一总分数;
20、如果所述第一总分数大于第一阈值,关闭所述应用程序,并用所述目标安装包对所述终端上所述应用程序的当前版本对应的版本安装包进行全量替换。
21、可选地,所述升级单元包括:
22、获取模块,用于如果所述运行状态满足第一条件,获取所述应用程序的执行环境参数;
23、第一替换模块,用于基于所述执行环境参数,用所述目标安装包对所述终端上所述应用程序的当前版本对应的版本安装包进行全量替换。
24、可选地,所述执行环境参数包括所述终端的网络速度、剩余内存大小、剩余计算能力大小;
25、所述第一替换模块用于:
26、基于所述网络速度,确定第三分数,所述第三分数是所述网络速度的增函数;
27、基于所述剩余内存大小,确定第四分数,所述第四分数是所述剩余内存大小的增函数;
28、基于所述剩余计算能力大小,确定第五分数,所述第五分数是所述剩余计算能力大小的增函数;
29、基于所述第三分数、所述第四分数和所述第五分数,计算第二总分数;
30、如果所述第二总分数大于第二阈值,用所述目标安装包对所述终端上所述应用程序的当前版本对应的版本安装包进行全量替换。
31、可选地,所述下载单元包括:
32、确定模块,用于如果所述目标版本信息大于所述终端上安装的所述应用程序的当前版本信息,则确定所述终端对应的终端摘要信息;
33、下载模块,用于如果基于所述终端摘要信息确定所述终端具有下载权限,则下载所述目标版本的所述目标安装包。
34、可选地,所述确定模块用于:
35、所述基于所述终端摘要信息确定所述终端具有下载权限,包括:
36、获取在当前时间具有下载权限的终端对应的第一值;
37、基于所述终端摘要信息、和所述应用程序对应的已安装终端数目进行取模运算,得到目标余数;
38、如果所述目标余数、和所述第一值相同,则确定所述终端具有下载权限。
39、可选地,所述目标版本的所述目标安装包包括目标代码文件;
40、所述应用程序的升级处理装置还包括优化单元,所述优化单元用于:
41、对所述目标代码文件中的字节进行对齐处理,得到对齐代码文件;
42、对所述对齐代码文件中的类文件进行字段验证,得到字段验证结果;
43、基于所述字段验证结果、和所述类文件的调用频次,在所述对齐代码文件中的类文件中确定目标类文件,并对所述目标类文件进行内存布局优化。
44、可选地,所述升级单元包括:
45、解压模块,用于对所述目标安装包进行解压处理,得到目标资源文件和目标代码文件;
46、验证模块,用于基于所述目标版本信息,对所述目标资源文件和所述目标代码文件进行第一验证;
47、第二替换模块,用于如果所述第一验证通过,则用所述目标资源文件和所述目标代码文件对所述版本安装包进行全量替换。
48、可选地,所述验证模块用于:
49、获取所述目标安装包的安装包签名;
50、从所述目标版本信息中提取安装包校验码;
51、对所述目标资源文件和所述目标代码文件进行摘要运算,得到安装包摘要;
52、基于所述安装包校验码与所述安装包摘要的比较,对所述目标资源文件和所述目标代码文件进行第一子验证;
53、基于所述安装包签名,对所述目标资源文件和所述目标代码文件进行第二子验证。
54、可选地,所述版本安装包包括所述终端上所述应用程序正在使用的当前代码文件和当前资源文件;所述目标资源文件包括第一目标子资源文件和第二目标子资源文件;所述当前资源文件包括第一当前子资源文件和第二当前子资源文件;
55、所述第二替换模块用于:
56、用所述目标代码文件对所述应用程序的当前版本对应的所述当前代码文件进行全量替换;
57、用所述第一目标子资源文件对所述应用程序的当前版本对应的所述第一当前子资源文件进行全量替换,并用所述第二目标子资源文件对所述应用程序的当前版本对应的所述第二当前子资源文件进行全量替换。
58、可选地,所述应用程序的升级处理装置还包括回滚单元,所述回滚单元用于:
59、如果所述第一验证不通过,则清除所述目标安装包的已下载文件;
60、加载所述当前版本对应的所述版本安装包中的代码文件,以启动所述应用程序。
61、可选地,所述下载单元用于:
62、确定所述终端在当前时间的网络连接状态;
63、如果确定所述网络连接状态、和所述当前时间满足预设下载条件,则对所述目标版本信息和所述终端上安装的所述应用程序的当前版本信息进行比较;
64、如果所述目标版本信息大于所述终端上安装的所述应用程序的当前版本信息,则下载所述目标版本信息对应的所述目标安装包。
65、可选地,所述应用程序的升级处理装置还包括第一清除单元,所述第一清除单元用于:
66、如果确定所述网络连接状态、和所述当前时间满足预设下载条件,则在所述应用程序已下载的多个应用安装包中确定失效安装包;
67、清理所述失效安装包,其中,所述失效安装包的版本小于所述当前版本。
68、可选地,所述下载单元用于:
69、获取上一次拉取所述目标版本信息的时间戳;
70、如果所述时间戳与当前时间的差值大于或者等于预设阈值,则对所述目标版本信息和所述当前版本信息进行比较;
71、如果所述目标版本信息大于所述当前版本信息,则下载所述目标版本信息对应的所述目标安装包。
72、可选地,所述下载单元用于:
73、获取上一次拉取所述目标版本信息的时间戳;
74、如果所述时间戳与当前时间的差值小于预设阈值,则获取所述终端的下载任务列表,其中,所述下载任务列表用于存储所述终端中未完成下载的中间安装包;
75、如果所述下载任务列表中存在与所述目标版本信息对应的中间安装包、且所述目标版本信息大于所述当前版本信息,则继续下载与所述目标版本信息对应的中间安装包,作为所述目标版本信息对应的目标安装包。
76、可选地,所述应用程序的升级处理装置还包括第二清除单元,所述第二清除单元用于:
77、如果所述下载任务列表中存在所述应用程序对应的中间安装包、且所述中间安装包对应的版本信息小于所述目标版本信息,则下载所述目标版本信息对应的目标安装包;
78、在所述下载任务列表中清除所述应用程序对应的中间安装包。
79、可选地,所述应用程序的升级处理装置还包括重启单元,所述重启单元用于:
80、响应于针对所述应用程序的重启请求,启动预设的空进程;
81、基于所述空进程,对所述应用程序中除所述空进程以外的其他进程进行终止处理,以使所述应用程序的所述目标版本信息对应的目标安装包生效。
82、根据本公开的一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的应用程序的升级处理方法。
83、根据本公开的一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的应用程序的升级处理方法。
84、根据本公开的一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被电子设备的处理器读取并执行,使得该电子设备执行如上所述的应用程序的升级处理方法。
85、本公开实施例中,针对相关技术的在应用程序的升级处理中,需要经过服务运营商对应用程序的安装包进行审核,也需要用户手动完成安装包文件下载和授权安装操作导致的应用程序的版本更新及时性差的问题,实现了应用程序的自动化更新。具体地,本公开实施例中,在终端上安装应用程序的时候会自动绑定插件,并在预下载插件到终端时,在开机例程中嵌入用于在开机时激活插件的代码。由于在预下载时在开机例程中嵌入了一开机就激活插件的代码,使得终端一执行开机例程就会激活插件,从而通过插件自动地获取应用程序的已公开版本中发布时间最新的版本的版本信息作为目标版本信息,并在目标版本信息大于终端上安装的应用程序的当前版本信息时,自动下载目标版本信息对应的目标安装包,提高了应用程序的版本升级及时性。同时,在版本更新过程中,识别应用程序在终端的运行状态,如果运行状态满足第一条件,就用目标安装包对终端上应用程序的当前版本对应的版本安装包进行全量替换。这样一来,就能对应用程序进行全量功能迭代,并对应用程序中所有功能模块进行完整覆盖更新,从而实现对应用程序的版本升级。这一方式只要通过插件检测到应用程序存在新版本,就能通过插件自动下载新版本的安装包并执行版本升级操作,实现对应用程序的静默更新,提高了应用程序的版本升级及时性。
86、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com