CN109002315A - 应用程序更新方法、装置、终端及存储介质 - Google Patents
应用程序更新方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN109002315A CN109002315A CN201811290592.XA CN201811290592A CN109002315A CN 109002315 A CN109002315 A CN 109002315A CN 201811290592 A CN201811290592 A CN 201811290592A CN 109002315 A CN109002315 A CN 109002315A
- Authority
- CN
- China
- Prior art keywords
- application
- destination
- data package
- download
- updated data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种应用程序更新方法、装置、终端及存储介质,属于应用程序领域。所述方法用于终端,终端中安装有目标应用程序和预下载应用程序,所述方法包括:通过预下载应用程序调用目标应用程序中的应用更新组件,应用更新组件支持独立于目标应用程序运行;通过应用更新组件从目标服务器处下载目标应用更新数据包,目标服务器是目标应用程序的后台服务器;当目标应用程序启动时,读取并安装目标应用更新数据包。通过在目标应用程序中增加应用更新组件,并在目标应用程序未启动状态下,通过应用更新组件预下载应用更新数据包,以便目标应用程序在启动过程中直接读取安装,从而缩短了应用程序更新时长,进而缩短了应用程序的启动时长。
Description
技术领域
本申请实施例涉及应用程序领域,特别涉及一种应用程序更新方法、装置、终端及存储介质。
背景技术
为了丰富应用程序的功能,并优化使用体验,应用程序开发商会定期对应用程序进行版本更新或资源更新。
相关技术中,应用程序启动过程中,会进行更新检测,当检测到需要进行更新时,即从应用程序服务器处下载更新数据包。更新数据包下载并安装完成后,用户即可使用应用程序。
发明内容
本申请实施例提供了一种应用程序更新方法、装置、终端及存储介质,可以解决相关技术中,应用程序在启动过程中下载更新数据包并进行安装,导致应用程序启动时长过长的问题。所述技术方案如下:
一方面,提供了一种应用程序更新方法,所述方法用于终端,所述终端中安装有目标应用程序和预下载应用程序,所述方法包括:
通过所述预下载应用程序调用所述目标应用程序中的应用更新组件,所述应用更新组件支持独立于所述目标应用程序运行;
通过所述应用更新组件从目标服务器处下载目标应用更新数据包,所述目标服务器是所述目标应用程序的后台服务器;
当所述目标应用程序启动时,读取并安装所述目标应用更新数据包。
另一方面,提供了一种应用程序更新装置,所述装置用于终端,所述终端中安装有目标应用程序和预下载应用程序,所述装置包括:
调用模块,用于通过所述预下载应用程序调用所述目标应用程序中的应用更新组件,所述应用更新组件支持独立于所述目标应用程序运行;
下载模块,用于通过所述应用更新组件从目标服务器处下载目标应用更新数据包,所述目标服务器是所述目标应用程序的后台服务器;
安装模块,用于当所述目标应用程序启动时,读取并安装所述目标应用更新数据包。
另一方面,提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的应用程序更新方法。
另一方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的应用程序更新方法。
本申请实施例中,通过终端中的预下载应用程序调用目标应用程序中的应用更新组件,使应用更新组件独立于目标应用程序运行,从而利用应用更新组件从目标应用程序的后台服务器处下载目标应用更新数据包,进而在目标应用程序启动时,读取并安装该目标应用更新数据包,最终完成目标应用程序启动。相较于相关技术中,由应用程序在启动过程中下载并安装更新数据包,本申请实施例中,通过在目标应用程序中增加应用更新组件,并在目标应用程序未启动状态下,通过应用更新组件预下载应用更新数据包,以便目标应用程序在启动过程中直接读取安装,从而缩短了应用程序更新时长,进而缩短了应用程序的启动时长。
附图说明
图1示出了本申请一个实施例提供的应用程序更新***的***架构图;
图2示出了本申请一个示例性实施例示出的应用程序更新方法的流程图;
图3是图2所示应用程序更新方法的实施示意图;
图4示出了本申请另一个示例性实施例示出的应用程序更新方法的流程图;
图5示出了本申请另一个示例性实施例示出的应用程序更新方法的流程图;
图6示出了本申请另一个示例性实施例示出的应用程序更新方法的流程图;
图7示出了本申请一个实施例提供的应用程序更新装置的结构框图;
图8示出了本申请一个示例性实施例所提供的终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个实施例提供的应用程序更新***的***架构图,该***中包含终端120和目标服务器140。
终端120是安装有应用程序的电子设备,该电子设备可以是智能手机、平板电脑、可穿戴式设备或便携式个人计算机等等。图1中以终端120是智能手机为例进行说明。
本申请实施例中,终端120中安装有目标应用程序以及预下载应用程序。
其中,该目标应用程序是具有更新需求的应用程序,比如游戏类应用程序、视频类应用程序、即时通信应用程序、社交类应用程序、购物类应用程序等等,本申请实施例对目标应用程序的类型不做限定。
预下载应用程序是具有预下载功能的应用程序,可选的,该预下载应用程序由终端厂商开发并安装到终端120中。
本申请实施例中,目标应用程序中包含应用更新组件,该应用更新组件用于下载目标应用程序对应的应用更新数据包。同时,该应用更新组件能够独立于目标应用程序运行,并能够在预下载应用程序的调用下被拉起。
终端120与目标服务器140之间通过有线网络或无线网络相连。
目标服务器140是终端120中目标应用程序的后台服务器,其存储有目标应用程序对应的应用更新数据包。目标服务器140可以是一台服务器,若干台服务器构成的服务器集群或云计算中心。
在一种可能的应用场景下,如图1所示,终端120中的预下载应用程序调用目标应用程序中的应用更新组件,向目标服务器140发送更新请求;目标服务器140根据该更新请求,向终端120反馈应用更新数据包的下载信息,供终端120下载存储。后续目标应用程序启动时,直接读取并安装本地预下载的应用更新数据包,完成应用更新。
下述各个实施例中,以应用程序更新方法用于图1中的终端120为例进行说明。
相关技术中,当终端中安装的应用程序需要更新时,应用程序在启动过程中,从应用程序的后台服务器下载更新数据包,并在下载完成后进行安装。然而,当需要下载的更新数据包较大,且终端未连接无线网络时,通过蜂窝网络下载更新数据包将消耗大量流量;并且,下载更新数据包需要花费较长时间,导致应用程序的整个启动时长过长。
而本申请实施例提供的应用程序更新方法中,通过在应用程序中增加应用更新组件,并利用应用更新组件在应用程序未启动的情况下,预下载应用更新数据包,供应用程序启动时读取安装。由于应用更新数据包已预先下载到本地,因此无需在应用程序启动阶段实时下载,从而节省了流量,并进一步缩短了应用程序的启动时长。下面采用示意性的实施例进行说明。
请参考图2,其示出了本申请一个示例性实施例示出的应用程序更新方法的流程图。本实施例以该方法应用于图1所示的终端120来举例说明。该方法包括:
步骤201,通过预下载应用程序调用目标应用程序中的应用更新组件,应用更新组件支持独立于目标应用程序运行。
本申请实施例中的目标应用程序中额外增设有应用更新组件,且在未被调用情况下,其处于停止运行状态。在一种可能的实施方式中,通过调用应用更新组件提供的接口,预下载应用程序将目标应用程序中的应用更新组件拉起,使得应用更新组件在目标应用程序未启动的情况下独立运行。
示意性的,如图3所示,终端120中的预下载应用程序122调用目标应用程序121中的应用更新组件1211,拉起应用更新组件1211。
可选的,当不同应用程序中设置统一的应用更新组件时(公共调用接口),预下载应用程序中设置一个用于调用应用更新组件的调用组件;当不同应用程序设置不同的应用更新组件时(调用接口不同),预下载应用程序中设置各个应用更新组件各自对应的调用组件。
在一种可能的实施方式中,预下载应用程序由终端厂商开发并安装在终端中时,应用程序厂商将开发的应用更新组件的接口提供给终端厂商,供其添加到预下载应用程序中。
步骤202,通过应用更新组件从目标服务器处下载目标应用更新数据包,目标服务器是目标应用程序的后台服务器。
应用更新组件被调用后,即与目标应用程序的后台服务器建立数据通道,并通过该数据通道从后台服务器处下载适用于目标应用程序的目标应用更新数据包,其中,该目标应用更新数据包用于将当前终端中的目标应用程序更新至最新版本。
可选的,应用更新组件根据目标应用程序的应用程序标识以及本地版本信息,从目标服务器处下载目标应用更新数据包。
可选的,为了目标应用程序启动时读取安装,应用更新组件将下载的目标应用更新数据包存储在预定存储路径下。
可选的,完成目标应用更新数据包下载后,应用更新组件对下载到的目标应用更新数据包进行校验,并在校验通过后进行存储。
示意性的,如图3所示,应用更新组件1211从目标服务器140处下载目标应用更新数据包123,并将其存储在终端120中。
步骤203,当目标应用程序启动时,读取并安装目标应用更新数据包。
可选的,目标应用程序启动时,首先通过应用更新组件检测是否需要进行更新,并在检测到需要更新时,读取预定存储路径,若读取到目标应用更新数据包,则进行安装;若未读取到目标应用更新数据包,则通过应用更新组件从目标服务器处实时下载。
示意性的,如图3所示,目标应用程序121启动时,读取本地预下载的目标应用更新数据包123并安装,从而完成应用更新。
在一种可能的实施方式中,当目标应用更新数据包安装完毕后,终端将目标应用更新数据包删除,从而释放终端的存储空间。
综上所述,本申请实施例中,通过终端中的预下载应用程序调用目标应用程序中的应用更新组件,使应用更新组件独立于目标应用程序运行,从而利用应用更新组件从目标应用程序的后台服务器处下载目标应用更新数据包,进而在目标应用程序启动时,读取并安装该目标应用更新数据包,最终完成目标应用程序启动。相较于相关技术中,由应用程序在启动过程中下载并安装更新数据包,本申请实施例中,通过在目标应用程序中增加应用更新组件,并在目标应用程序未启动状态下,通过应用更新组件预下载应用更新数据包,以便目标应用程序在启动过程中直接读取安装,从而缩短了应用程序更新时长,进而缩短了应用程序的启动时长。
请参考图4,其示出了本申请另一个示例性实施例示出的应用程序更新方法的流程图。本实施例以该方法应用于图1所示的终端120来举例说明。该方法包括:
步骤401,获取当前网络连接状态、当前剩余电量和当前剩余存储空间。
为了保证目标应用程序需要更新时,应用更新数据包的正确下载,终端首先需要获取终端状态,并根据终端状态确定当前是否适合进行预下载。其中,该终端状态包括网络连接状态、电量状态和存储状态中的至少一种。可选的,该终端状态由预下载应用程序获取。
在一种可能的实施方式中,终端获取当前网络连接状态、当前剩余电量和当前剩余存储空间。
示意性的,终端获取到当前网络连接状态为无线网络连接状态,当前剩余电量为70%,且当前剩余存储空间为10GB。
步骤402,若当前网络连接状态为无线网络连接状态,且当前剩余电量大于电量阈值,且当前剩余存储空间大于存储空间阈值,则通过预下载应用程序调用目标应用程序中的应用更新组件。
为了避免应用更新数据包无法完整下载,并避免造成流量消耗,在一种可能的实施方式中,终端检测当前网络连接状态是否为无线网络连接状态,且当前剩余电量是否大于电量阈值,且当前剩余存储空间是否大于存储空间阈值。
可选的,该电量阈值由用户设置,或者为终端预设,比如电量阈值为60%;存储空间阈值为预设值,或者根据目标应用程序所占存储空间确定(由于更新数据包的大小不会超过原始目标应用程序,因此存储空间阈值小于等于目标应用程序所占存储空间),比如,当目标应用程序所占存储空间为300MB时,终端确定存储空间阈值为280MB。
当当前网络连接状态为无线网络连接状态,且当前剩余电量大于电量阈值,且当前剩余存储空间大于存储空间阈值时,终端确定当前适合进行预下载,从而通过预下载应用程序调用目标应用程序中的应用更新组件。其中,通过预下载应用程序调用应用更新组件的过程可以参考上述步骤201,本实施例在此不再赘述。
若当前网络连接状态为移动数据网络连接状态,和/或,当前剩余电量小于电量阈值,和/或,当前剩余存储空间小于存储空间阈值时,终端则不会通过预下载应用程序调用应用更新组件。
在一种可能的应用场景下,终端当前满足预下载条件,但是终端前台运行有其他应用程序,由于下载数据包会占用部分网络带宽,因此,终端获取前台应用程序的程序类型,若前台应用程序为第一带宽需求的应用程序,则不会通过预下载应用程序调用应用更新组件;若前台应用程序为第二带宽需求的应用程序,则通过预下载应用程序调用应用更新组件。其中,第一带宽需求高于第二带宽需求。
步骤403,获取目标应用程序的本地应用信息,本地应用信息包括本地程序版本和本地资源版本中的至少一种。
为了准确下载到将目标应用程序更新至最新版本的应用更新数据,终端在发送更新请求前,获取目标应用程序的本地应用信息。可选的,终端通过应用更新组件获取目标应用程序的本地应用信息。
本地应用信息用于指示本地目标应用程序的程序版本和/或资源版本。其中,本地程序版本为本地应用程序的代码版本,本地资源版本为本地应用程序中资源的版本,该资源可以是图标资源、音频资源、视频资源、贴图资源等等。
比如,终端中安装有游戏应用程序A,视频应用程序B,通过调用游戏应用程序A的应用更新组件,获取到游戏应用程序A的本地应用信息:本地程序版本v1.0.1,本地资源版本v1.1.1。
步骤404,通过应用更新组件向目标服务器发送包含本地应用信息的更新请求。
进一步的,终端将本地应用信息添加到更新请求中,并通过应用更新组件发送至目标服务器。
可选的,该更新请求中还包含目标应用程序的应用标识,该应用标识可以为应用包名。
步骤405,接收目标服务器发送的应用更新数据包的下载信息,下载信息是目标服务器在本地应用信息与最新应用信息不一致时发送的。
为了确定终端中安装的目标应用程序是否需要进行更新,目标服务器获取更新请求中包含的本地应用信息,并检测本地应用信息与服务器端维护的最新应用信息是否一致。若两者一致,表明终端侧的目标应用程序为最新版本,无需更新;若两者不一致,表明终端侧的目标应用程序需要更新,并向终端发送目标应用更新数据包的下载信息。
可选的,目标服务器根据应用标识确定目标应用程序对应的最新版本信息。示意性的,目标服务器中存储的应用程序与最新应用信息的对应关系如表一所示。
表一
应用标识 | 最新应用信息 |
App A | 程序版本:v1.1.1资源版本:v1.2.1 |
App B | 程序版本:v2.0.1资源版本:v2.0.1 |
App C | 程序版本:v4.1.1资源版本:v4.3.2 |
结合表一和上述步骤中的示例,目标服务器根据应用标识“App A”,获取到最新应用信息为“程序版本:v1.1.1,资源版本:v1.2.1”,并检测到本地应用信息与最新应用信息不一致。
可选的,由于不同终端中安装的目标应用程序的程序版本或资源版本可能不同,相应的,不同终端中的目标应用程序更新至最新版本时所需要安装的应用更新数据包也不同,因此,目标服务器需要根据本地应用信息和最新应用信息,确定目标应用程序更新至最新版本是所需安装的目标应用更新数据包。
在一种可能的实施方式中,目标服务器将应用版本信息与应用更新数据包进行关联存储,应用更新数据包与应用版本信息的对应关系如表二所示。
表二
应用版本信息 | 应用更新数据包 |
程序版本:v1.0.1资源版本:v1.1.1 | 数据包A |
程序版本:v1.0.2资源版本:v1.1.1 | 数据包B |
程序版本:v1.0.2资源版本:v1.2.1 | 数据包C |
程序版本:v1.1.1资源版本:v1.2.1 | 数据包D |
其中,数据包B为程序版本由v1.0.1升至v1.0.2所需安装的应用更新数据包,数据包C为资源版本由v1.1.1升至v1.2.1所需安装的应用更新数据包,数据包D为程序版本由v1.0.2升至v1.1.1所需安装的应用更新数据包。
基于应用版本信息与应用更新数据包之间的对应关系,目标服务器获取本地应用信息对应的目标应用更新数据包。其中,该目标应用更新数据包中包含本地应用信息所指示版本之后各个版本对应的应用更新数据包。
比如,当本地应用信息为:本地程序版本v1.0.1,本地资源版本v1.1.1时,目标服务器确定目标应用程序更新至最新版本所需安装的目标更新数据包包括数据包B、C和D。
进一步的,目标服务器将确定出的目标应用更新数据包对应的下载信息发送给终端。可选的,该下载信息中至少包含目标应用更新数据包的下载地址。
步骤406,根据下载信息,通过应用更新组件从目标服务器处下载目标应用更新数据包。
可选的,当下载信息中包含下载地址时,终端即根据下载地址,通过应用更新组件从目标服务器处下载目标应用更新数据包,并进行存储。
可选的,当下载信息中包含目标应用更新数据包的数据量时,本步骤包括如下步骤:
一、获取当前剩余存储空间容量。
为了保证终端能够完整存储目标应用更新数据包,目标服务器反馈的下载信息中包含目标应用更新数据包的数据量,相应的,终端获取当前剩余存储空间容量,并检测当前剩余存储空间容量是否大于目标应用更新数据包的数据量。若小于,则不会下载目标应用更新数据包,并进行存储空间清理;若大于,则执行下述步骤。
二、若当前剩余存储空间容量大于应用更新数据包的数据量,则通过应用更新组件从目标服务器处下载目标应用更新数据包。
当前剩余存储空间容量大于应用更新数据包的数据量时,终端确定能够完成存储目标应用更新数据包,进而进行目标应用更新数据包下载。
在一种可能的实施方式中,预下载应用程序对应用更新组件的行为进行监控,并在监测到应用更新组件完成应用更新数据包下载后,通过调用应用更新组件提供的接口关闭应用更新组件,使应用更新组件的行为可控。
步骤407,当目标应用程序启动时,读取并安装目标应用更新数据包。
本步骤的实施方式可以参考上述步骤203,本实施例在此不再赘述。
本实施例中,终端在当前接入无线网络,剩余电量充足且剩余存储空间充足的情况下调用应用更新组件,确保后续预下载过程正常进行,且不会消耗移动数据网络流量,提高了应用更新数据包预下载的准确性。
另外,本实施例中,终端根据下载信息中的目标应用更新数据包的数据量以及当前剩余存储空间容量,确定是否进行目标应用更新数据包下载,确保下载的目标应用更新数据包能够完整存储。
应用程序厂商对应用程序进行更新时,采用的更新方式包括全量更新和灰度更新。其中,进行全量更新时,所有安装非最新版本应用程序的终端均需要更新,而进行灰度更新时,仅部分安装非最新版本的应用程序需要进行更新。为了在灰度更新场景下实现预下载,在图4的基础上,如图5所示,当下载信息中包含第一灰度策略时,步骤406可以包括如下步骤。
步骤406A,获取终端信息,终端信息包括终端型号、终端位置和终端品牌中的至少一种。
可选的,当下载信息中包含第一灰度策略时,终端确定目标应用更新数据包仅针对目标终端,并获取自身的终端信息,以便后续根据终端信息确定自身是否为目标终端。其中,第一灰度更新策略用于指示向目标终端发送应用更新数据包。
在一种可能的实施方式中,目标应用程序中的应用更新组件通过预下载应用程序获取终端信息。
示意性的,终端获取到的终端信息中包含终端型号“R15”,终端厂商“X牌”以及终端位置“P城”。
步骤406B,若终端信息指示终端符合第一灰度更新策略,则通过应用更新组件从目标服务器处下载目标应用更新数据包,第一灰度更新策略用于指示向目标终端发送应用更新数据包。
在一种可能的实施方式中,终端检测终端信息指示的终端是否属于第一灰度更新策略指示的目标终端,若属于,则通过应用更新组件从目标服务器处下载目标应用更新数据包;若不属于,则不会从目标服务器处下载目标应用更新数据包。
结合上述步骤中的示例,终端获取到本地应用信息为“程序版本:v1.0.2,资源版本:v1.2.1”,终端型号为“R15”,且第一灰度更新策略指示对“R15”中的目标应用程序进行更新,由于当前终端的终端型号与第一灰度更新策略指示的目标终端的终端型号一致,且本地应用信息与最新应用信息不一致,因此,终端通过应用更新组件从目标服务器处下载目标应用更新数据包。
本实施例仅以对指定型号终端进行应用更新为例进行说明,在其他可能的实施方式中,还可以对指定厂商、指定地区的终端进行应用更新,本实施例对此不做限定。
本实施例中,终端基于下载信息中的第一灰度更新策略以及自身的终端信息,确定是否需要从目标服务器处下载目标应用更新数据包,实现了灰度更新场景下的应用更新预下载,保证灰度更新策略下应用更新数据包下载的准确性。
除了对指定终端内安装的应用程序进行灰度更新外,在另一种可能的实施方式中,目标服务器还可以对登陆有指定账号的应用程序进行灰度更新(灰度更新的粒度更新)。在图4的基础上,如图6所示,当下载信息中包含第二灰度策略时,步骤406可以包括如下步骤。
步骤406C,通过应用更新组件获取目标应用程序的账号登陆信息。
由于应用更新组件是目标应用程序的内部组件,因此,其可以获取到目标应用程序的应用内部信息(其他应用程序或***无法获取得到)。
可选的,当下载信息中包含第二灰度策略时,终端确定目标应用更新数据包仅针对登陆目标账号的目标应用程序,并通过应用更新组件获取本地目标应用程序的账号登陆信息,以便后续根据账号登陆信息确定是否登陆有目标账号。其中,第二灰度更新策略用于指示向目标账号发送应用更新数据包。
可选的,对于游戏类应用程序,该账号登陆信息中包含账号所属大区、账号所属服务器、账号注册时长、账号活跃度、账号充值金额等信息。
示意性的,终端获取到的账号登陆信息中包含游戏大区“黑色玫瑰”。
步骤406D,若账号登陆信息指示目标应用程序登陆的账号符合第二灰度更新策略,则通过应用更新组件从目标服务器处下载目标应用更新数据包。
在一种可能的实施方式中,终端检测账号登陆信息指示的当前账号是否属于第二灰度更新策略指示的目标账号,若属于,则通过应用更新组件从目标服务器处下载目标应用更新数据包;若不属于,则不会从目标服务器处下载目标应用更新数据包。
结合上述步骤中的示例,终端获取到账号登陆信息中包含游戏大区“黑色玫瑰”,且第二灰度更新策略指示对游戏大区“黑色玫瑰”以及“守望之海”的进行更新,由于本地目标应用程序登陆账号所属的游戏大区属于第二灰度更新策略指示游戏大区,因此,终端通过应用更新组件从目标服务器处下载目标应用更新数据包。
本实施例中,终端基于下载信息中的第二灰度更新策略以及本地目标应用程序的账号登陆信息,确定是否需要从目标服务器处下载目标应用更新数据包,实现了灰度更新场景下的应用更新预下载,保证灰度更新策略下应用更新数据包下载的准确性。
终端从目标服务器处下载目标应用更新数据包的过程中,可能会因为多种因素导致下载失败。可选的,若在下载目标应用更新数据包的过程中接收到停止下载信号,则停止调用应用更新组件下载目标应用更新数据包,并删除已下载数据,停止下载信号的触发方式包括如下至少一种:电量不足、存储空间不足、网络切换和下载异常。
在一种可能的实施方式中,预下载应用程序在应用更新组件下载目标应用更新数据包的过程中,实时获取当前剩余电量,并根据当前剩余电量和当前下载进度,确定当前剩余电量耗尽前是否能够完成下载,若不能完成下载,则确定电量不足,并触发停止下载信号。
在另一种可能的实施方式中,预下载应用程序在应用更新组件下载目标应用更新数据包的过程中,实时获取当前剩余存储空间,并根据目标应用更新数据包的剩余下载量,确定是否能够存储目标应用更新数据包,若不能,则确定存储空间不足,并触发停止下载信号。
在另一种可能的实施方式中,预下载应用程序在应用更新组件下载目标应用更新数据包的过程中,若检测到有无线网络切换为移动数据网络,则确定发生网络切换,并触发停止下载信号。
此外,不论目标应用更新数据包下载成功还是失败,终端均通过应用更新组件向目标服务器发送反馈信息,供应用程序厂商对应用程序的更新情况进行统计,其中,该反馈信息包括下载成功反馈和下载失败反馈中的至少一种。
在一种可能的实施方式中,完成目标应用更新数据包下载后,终端通过应用更新组件,向目标服务器发送下载成功反馈,其中包含下载开始时间、下载结束时间、更新版本、当前版本、应用包名和终端标识中的至少一种。
在另一种可能的实施方式中,若下载目标应用更新数据包失败,终端则通过应用更新组件,向目标服务器发送下载失败反馈,其中包含下载失败原因标识、更新版本、当前版本、应用包名和终端标识中的至少一种。
请参考图7,其示出了本申请一个实施例提供的应用程序更新装置的结构框图。该应用程序更新装置可以通过软件、硬件或者两者的结合实现成为终端120的全部或一部分。该装置包括:
调用模块701,用于通过所述预下载应用程序调用所述目标应用程序中的应用更新组件,所述应用更新组件支持独立于所述目标应用程序运行;
下载模块702,用于通过所述应用更新组件从目标服务器处下载目标应用更新数据包,所述目标服务器是所述目标应用程序的后台服务器;
安装模块703,用于当所述目标应用程序启动时,读取并安装所述目标应用更新数据包。
可选的,所述装置还包括:
获取模块,用于获取所述目标应用程序的本地应用信息,所述本地应用信息包括本地程序版本和本地资源版本中的至少一种;
发送模块,用于通过所述应用更新组件向所述目标服务器发送包含所述本地应用信息的更新请求;
接收模块,用于接收所述目标服务器发送的所述应用更新数据包的下载信息,所述下载信息是所述目标服务器在所述本地应用信息与最新应用信息不一致时发送的;
所述下载模块702,用于:
根据所述下载信息,通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
可选的,所述下载信息中包含所述目标应用更新数据包的数据量;
所述下载模块702,包括:
第一获取单元,用于获取当前剩余存储空间容量;
第一下载单元,用于若所述当前剩余存储空间容量大于所述应用更新数据包的数据量,则通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
可选的,所述下载信息中还包括第一灰度更新策略,所述第一灰度更新策略用于指示向目标终端发送应用更新数据包;
所述下载模块702,包括:
第二获取单元,用于获取终端信息,所述终端信息包括终端型号、终端位置和终端品牌中的至少一种;
第二下载单元,用于若所述终端信息指示所述终端符合所述第一灰度更新策略,则通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
可选的,所述下载信息中还包括第二灰度更新策略,所述第二灰度更新策略用于指示向目标账号发送应用更新数据包;
所述下载模块702,包括:
第三获取单元,用于通过所述应用更新组件获取所述目标应用程序的账号登陆信息;
第三下载单元,用于若所述账号登陆信息指示所述目标应用程序登陆的账号符合所述第二灰度更新策略,则通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
可选的,所述调用模块,包括:
第四获取单元,用于获取当前网络连接状态、当前剩余电量和当前剩余存储空间;
调用单元,用于若所述当前网络连接状态为无线网络连接状态,且所述当前剩余电量大于电量阈值,且所述当前剩余存储空间大于存储空间阈值,则通过所述预下载应用程序调用所述目标应用程序中的所述应用更新组件。
可选的,所述安装模块,用于:
当所述目标应用程序启动时,从预定存储路径下读取所述目标应用更新数据包并安装。
可选的,所述装置还包括:
停止模块,用于若在下载所述目标应用更新数据包的过程中接收到停止下载信号,则停止调用所述应用更新组件下载所述目标应用更新数据包,并删除已下载数据,所述停止下载信号的触发方式包括如下至少一种:电量不足、存储空间不足、网络切换和下载异常。
可选的,所述装置还包括:
反馈模块,用于通过所述应用更新组件向所述目标服务器发送反馈信息,所述反馈信息包括下载成功反馈和下载失败反馈中的至少一种。
综上所述,本申请实施例中,通过终端中的预下载应用程序调用目标应用程序中的应用更新组件,使应用更新组件独立于目标应用程序运行,从而利用应用更新组件从目标应用程序的后台服务器处下载目标应用更新数据包,进而在目标应用程序启动时,读取并安装该目标应用更新数据包,最终完成目标应用程序启动。相较于相关技术中,由应用程序在启动过程中下载并安装更新数据包,本申请实施例中,通过在目标应用程序中增加应用更新组件,并在目标应用程序未启动状态下,通过应用更新组件预下载应用更新数据包,以便目标应用程序在启动过程中直接读取安装,从而缩短了应用程序更新时长,进而缩短了应用程序的启动时长。
图8示出了本申请一个示例性实施例所提供的终端的结构示意图。该终端可以实现成为图1中的终端120。
可选的,该终端800中包括:处理器820和存储器840。
处理器820可以包括一个或者多个处理核心。处理器820利用各种接口和线路连接整个终端800内的各个部分,通过运行或执行存储在存储器840内的指令、程序、代码集或指令集,以及调用存储在存储器840内的数据,执行终端800的各种功能和处理数据。可选的,处理器820可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器820可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器820中,单独通过一块芯片进行实现。
存储器840可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器840包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器840可用于存储指令、程序、代码、代码集或指令集。存储器840可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。
当然,除了包含处理器和存储器外,终端800还包括显示组件、定位组件、蓝牙组件、传感器、射频(Radio Frequency,RF)组件、WiFi组件、显示屏等其他必要组件,本申请实施例并不对终端800包含的具体组件进行限定。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用程序更新方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用程序更新方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种应用程序更新方法,其特征在于,所述方法用于终端,所述终端中安装有目标应用程序和预下载应用程序,所述方法包括:
通过所述预下载应用程序调用所述目标应用程序中的应用更新组件,所述应用更新组件支持独立于所述目标应用程序运行;
通过所述应用更新组件从目标服务器处下载目标应用更新数据包,所述目标服务器是所述目标应用程序的后台服务器;
当所述目标应用程序启动时,读取并安装所述目标应用更新数据包。
2.根据权利要求1所述的方法,其特征在于,所述通过所述应用更新组件从目标服务器处下载目标应用更新数据包之前,所述方法还包括:
获取所述目标应用程序的本地应用信息,所述本地应用信息包括本地程序版本和本地资源版本中的至少一种;
通过所述应用更新组件向所述目标服务器发送包含所述本地应用信息的更新请求;
接收所述目标服务器发送的所述应用更新数据包的下载信息,所述下载信息是所述目标服务器在所述本地应用信息与最新应用信息不一致时发送的;
所述通过所述应用更新组件从目标服务器处下载目标应用更新数据包,包括:
根据所述下载信息,通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
3.根据权利要求2所述的方法,其特征在于,所述下载信息中包含所述目标应用更新数据包的数据量;
所述根据所述下载信息,通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包,包括:
获取当前剩余存储空间容量;
若所述当前剩余存储空间容量大于所述应用更新数据包的数据量,则通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
4.根据权利要求2所述的方法,其特征在于,所述下载信息中还包括第一灰度更新策略,所述第一灰度更新策略用于指示向目标终端发送应用更新数据包;
所述根据所述下载信息,通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包,包括:
获取终端信息,所述终端信息包括终端型号、终端位置和终端品牌中的至少一种;
若所述终端信息指示所述终端符合所述第一灰度更新策略,则通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
5.根据权利要求2所述的方法,其特征在于,所述下载信息中还包括第二灰度更新策略,所述第二灰度更新策略用于指示向目标账号发送应用更新数据包;
所述根据所述下载信息,通过所述应用更新组件从所述目标服务器处下载所述应用更新数据包,包括:
通过所述应用更新组件获取所述目标应用程序的账号登陆信息;
若所述账号登陆信息指示所述目标应用程序登陆的账号符合所述第二灰度更新策略,则通过所述应用更新组件从所述目标服务器处下载所述目标应用更新数据包。
6.根据权利要求1至5任一所述的方法,其特征在于,所述通过所述预下载应用程序调用所述目标应用程序中的应用更新组件,包括:
获取当前网络连接状态、当前剩余电量和当前剩余存储空间;
若所述当前网络连接状态为无线网络连接状态,且所述当前剩余电量大于电量阈值,且所述当前剩余存储空间大于存储空间阈值,则通过所述预下载应用程序调用所述目标应用程序中的所述应用更新组件。
7.根据权利要求1至5任一所述的方法,其特征在于,所述当所述目标应用程序启动时,读取并安装所述目标应用更新数据包,包括:
当所述目标应用程序启动时,从预定存储路径下读取所述目标应用更新数据包并安装。
8.根据权利要求1至5任一所述的方法,其特征在于,所述通过所述应用更新组件从目标服务器处下载目标应用更新数据包之后,所述方法还包括:
若在下载所述目标应用更新数据包的过程中接收到停止下载信号,则停止调用所述应用更新组件下载所述目标应用更新数据包,并删除已下载数据,所述停止下载信号的触发方式包括如下至少一种:电量不足、存储空间不足、网络切换和下载异常。
9.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
通过所述应用更新组件向所述目标服务器发送反馈信息,所述反馈信息包括下载成功反馈和下载失败反馈中的至少一种。
10.一种应用程序更新装置,其特征在于,所述装置用于终端,所述终端中安装有目标应用程序和预下载应用程序,所述装置包括:
调用模块,用于通过所述预下载应用程序调用所述目标应用程序中的应用更新组件,所述应用更新组件支持独立于所述目标应用程序运行;
下载模块,用于通过所述应用更新组件从目标服务器处下载目标应用更新数据包,所述目标服务器是所述目标应用程序的后台服务器;
安装模块,用于当所述目标应用程序启动时,读取并安装所述目标应用更新数据包。
11.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至9任一所述的应用程序更新方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至9任一所述的应用程序更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811290592.XA CN109002315A (zh) | 2018-10-31 | 2018-10-31 | 应用程序更新方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811290592.XA CN109002315A (zh) | 2018-10-31 | 2018-10-31 | 应用程序更新方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109002315A true CN109002315A (zh) | 2018-12-14 |
Family
ID=64590109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811290592.XA Pending CN109002315A (zh) | 2018-10-31 | 2018-10-31 | 应用程序更新方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002315A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656611A (zh) * | 2018-12-24 | 2019-04-19 | 成都四方伟业软件股份有限公司 | 三维可视化应用热更新方法、装置和终端 |
CN111782229A (zh) * | 2020-06-30 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 一种小程序启动方法、装置及电子设备 |
CN112379933A (zh) * | 2019-07-29 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 应用程序启动方法、装置、介质及电子设备 |
CN112685058A (zh) * | 2020-12-22 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 应用程序更新包的预下载方法、相关设备及存储介质 |
CN113055451A (zh) * | 2021-03-08 | 2021-06-29 | Oppo广东移动通信有限公司 | 资源下载方法、装置、电子设备及存储介质 |
CN114222261A (zh) * | 2022-02-16 | 2022-03-22 | 深圳市森歌数据技术有限公司 | 应用更新控制方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541599A (zh) * | 2011-12-27 | 2012-07-04 | 深圳创维-Rgb电子有限公司 | 一种电子设备在线升级的方法、***及电视机 |
CN103067484A (zh) * | 2012-12-25 | 2013-04-24 | 深圳市天维尔通讯技术有限公司 | 一种自动升级应用程序的方法和*** |
CN104375854A (zh) * | 2014-07-25 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种应用更新下载方法及用户终端 |
US20150074658A1 (en) * | 2012-09-30 | 2015-03-12 | Google Inc. | Updating control software on a network-connected hvac controller |
-
2018
- 2018-10-31 CN CN201811290592.XA patent/CN109002315A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541599A (zh) * | 2011-12-27 | 2012-07-04 | 深圳创维-Rgb电子有限公司 | 一种电子设备在线升级的方法、***及电视机 |
US20150074658A1 (en) * | 2012-09-30 | 2015-03-12 | Google Inc. | Updating control software on a network-connected hvac controller |
CN103067484A (zh) * | 2012-12-25 | 2013-04-24 | 深圳市天维尔通讯技术有限公司 | 一种自动升级应用程序的方法和*** |
CN104375854A (zh) * | 2014-07-25 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种应用更新下载方法及用户终端 |
Non-Patent Citations (1)
Title |
---|
樊纯金等: "应用软件敏捷定制", 《电脑编程技巧与维护》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656611A (zh) * | 2018-12-24 | 2019-04-19 | 成都四方伟业软件股份有限公司 | 三维可视化应用热更新方法、装置和终端 |
CN112379933A (zh) * | 2019-07-29 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 应用程序启动方法、装置、介质及电子设备 |
CN111782229A (zh) * | 2020-06-30 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 一种小程序启动方法、装置及电子设备 |
CN111782229B (zh) * | 2020-06-30 | 2024-04-23 | 百度在线网络技术(北京)有限公司 | 一种小程序启动方法、装置及电子设备 |
CN112685058A (zh) * | 2020-12-22 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 应用程序更新包的预下载方法、相关设备及存储介质 |
CN112685058B (zh) * | 2020-12-22 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 应用程序更新包的预下载方法、相关设备及存储介质 |
CN113055451A (zh) * | 2021-03-08 | 2021-06-29 | Oppo广东移动通信有限公司 | 资源下载方法、装置、电子设备及存储介质 |
CN113055451B (zh) * | 2021-03-08 | 2023-01-06 | Oppo广东移动通信有限公司 | 资源下载方法、装置、电子设备及存储介质 |
CN114222261A (zh) * | 2022-02-16 | 2022-03-22 | 深圳市森歌数据技术有限公司 | 应用更新控制方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109002315A (zh) | 应用程序更新方法、装置、终端及存储介质 | |
CN109413186A (zh) | 应用程序更新方法、终端、服务器及*** | |
US9357378B1 (en) | Subscriber identity module (SIM) card initiation of custom application launcher installation on a mobile communication device | |
US10455071B2 (en) | Self-identification of brand and branded firmware installation in a generic electronic device | |
CN107273160A (zh) | 一种版本升级的方法及装置 | |
CN110333947B (zh) | 一种游戏应用的分包资源加载方法、装置、设备及介质 | |
EP2381361A1 (en) | Apparatus and method for firmware update in a portable terminal | |
US20110191764A1 (en) | Systems, methods, and apparatuses for facilitating distribution of firmware updates | |
CN109408132A (zh) | 一种配置文件处理方法及服务器、用户终端、存储介质 | |
CN108228230A (zh) | Ufs固件的升级方法、终端及计算机可读存储介质 | |
CN109375937A (zh) | ***升级方法、装置、终端设备及存储介质 | |
CN110968508B (zh) | 一种小程序的加载时间确定方法、装置、终端及存储介质 | |
CN110888658B (zh) | 应用程序中功能模块的动态化方法、装置及存储介质 | |
CN113168332B (zh) | 数据处理方法、装置以及移动终端 | |
CN107220074A (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
CN108984339B (zh) | 数据恢复方法及相关产品 | |
CN104765624B (zh) | 虚拟机应用程序的更新处理方法和装置 | |
CN109800030A (zh) | 一种应用程序运行方法、装置及终端 | |
CN103607431A (zh) | 移动终端资源处理方法、装置和设备 | |
CN106933636A (zh) | 启动插件服务的方法、装置和终端设备 | |
CN102377793B (zh) | 基于移动通讯设备终端的Flash交互方法及装置 | |
CN107463395B (zh) | 组件调用方法及装置 | |
CN111984293A (zh) | 一种信息处理方法、装置和存储介质 | |
CN112044061A (zh) | 游戏画面处理方法、装置、电子设备以及存储介质 | |
CN108182122B (zh) | 应用更新提醒方法、装置、存储介质和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181214 |