应用程序的升级方法、升级装置和终端与流程

文档序号:12270986阅读:223来源:国知局
应用程序的升级方法、升级装置和终端与流程

本发明涉及终端技术领域,具体而言,涉及一种应用程序的升级方法、一种应用程序的升级装置和一种终端。



背景技术:

目前,可以在终端上同时安装有双开应用程序,例如,在终端上安装有微信和分身微信。具体地,通过开辟两个独立的系统空间,在两个系统空间中有相同的应用程序,这样就被当作是两个应用程序来运行,例如,在每个系统空间中都有微信,这样就相当于在终端中安装有多个微信。但是,在对应用程序进行升级时,各个系统空间中的应用程序需要经过下载、校验和安装的过程,相当于同样的动作重复执行了一次。这样不仅消耗了不必要的系统资源(例如流量和电量),浪费了功耗,还有可能会提示用户多次是否升级应用程序,造成不好的用户体验。

因此,如何对两个相互独立的系统空间中的应用程序进行升级,以避免消耗不必要的系统资源成为亟待解决的技术问题。



技术实现要素:

本发明正是基于上述问题,提出了一种新的技术方案,在对两个相互独立的系统空间中的应用程序进行升级时,可以避免消耗不必要的系统资源。

有鉴于此,本发明的第一方面提出了一种应用程序的升级方法,在相互独立的两个系统空间中安装有相同的两个应用程序,所述两个系统空间与所述两个应用程序一一对应,所述应用程序的升级方法包括:在为所述两个应用程序中的任一应用程序下载升级数据包进行升级时,获取所述升级数据包的版本和所述两个应用程序中的其他应用程序的当前版本;若所述升级数据包的版本比所述其他应用程序的当前版本新,则将所述升级数据包发送到所述其他应用程序所在的系统空间中,以使用所述升级数据包对所述其他应用程序进行升级。

在该技术方案中,通过将相同的两个应用程序分别安装在相互独立的系统空间中,以实现在同一个终端上安装双开或多开应用程序。当该两个应用程序中的任一应用程序下载升级数据包进行升级时,若其他应用程序未升级,则可以直接使用任一应用程序下载的升级数据包进行升级,不仅及时地对未升级的应用程序进行了升级,还避免了未升级的应用程序重新下载升级数据包,从而避免了浪费不必要的系统资源。特别是在终端使用流量下载升级数据包进行升级时,最大程度上避免消耗不必要的流量。另外,也避免了多次提示用户对应用程序进行升级,从而提升用户的使用体验。

在上述技术方案中,优选地,还包括:在接收到设置信号时,设置所述其他应用程序的自动升级权限。

在该技术方案中,通过设置其他应用程序的自动升级权限,从而保证其他应用程序能够顺利进行升级。

在上述任一技术方案中,优选地,所述在接收到设置信号时,设置所述其他应用程序的自动升级权限的步骤,具体包括:若所述设置信号为在获取所述其他应用程序的当前版本时触发的信号,则设置所述其他应用程序不具有自动升级的权限;或者若所述设置信号为所述其他应用程序使用所述升级数据包升级完成时触发的信号、或者所述其他应用程序的当前版本比所述升级数据包的版本新时触发的信号,或者所述其他应用程序的当前版本与所述升级数据包的版本相同时触发的信号,则设置所述其他应用程序具有自动升级的权限。

在该技术方案中,在获取其他应用程序的当前版本时触发的信号时,设置其他应用程序不具有自动升级的权限,可以防止其他应用程序重复升级。另外,若升级数据包的版本没有其他应用程序的版本新,则设置其他应用程序具有自动升级的权限,以在发布新版本时保证其他应用程序能够自动升级。

在上述任一技术方案中,优选地,通过修改所述其他应用程序的自动升级标识,来设置所述其他应用程序的自动升级权限。

在该技术方案中,通过修改其他应用程序的自动升级标识,来实现其他应用程序的自动升级权限的设置,从而保证了其他应用程序的运行可靠性。

在上述任一技术方案中,优选地,所述两个系统空间中的任两个系统空间之间通过socket套接字进行通信。

在该技术方案中,相互独立的两个系统空间之间通过socket进行通信,即通过socket将升级数据包从一个系统空间发送给另一个与之独立的系统空间,从而保证了相互独立的两个系统空间之间通信的可靠性。

本发明的第二方面提出了一种应用程序的升级装置,在相互独立的两个系统空间中安装有相同的两个应用程序,所述两个系统空间与所述两个应用程序一一对应,所述应用程序的升级装置包括:获取单元,用于在为所述两个应用程序中的任一应用程序下载升级数据包进行升级时,获取所述升级数据包的版本和所述两个应用程序中的其他应用程序的当前版本;升级单元,用于若所述升级数据包的版本比所述其他应用程序的当前版本新,则将所述升级数据包发送到所述其他应用程序所在的系统空间中,以使用所述升级数据包对所述其他应用程序进行升级。

在该技术方案中,通过将相同的两个应用程序分别安装在相互独立的系统空间中,以实现在同一个终端上安装双开或多开应用程序。当该两个应用程序中的任一应用程序下载升级数据包进行升级时,若其他应用程序未升级,则可以直接使用任一应用程序下载的升级数据包进行升级,不仅及时地对未升级的应用程序进行了升级,还避免了未升级的应用程序重新下载升级数据包,从而避免了浪费不必要的系统资源。特别是在终端使用流量下载升级数据包进行升级时,最大程度上避免消耗不必要的流量。另外,也避免了多次提示用户对应用程序进行升级,从而提升用户的使用体验。

在上述技术方案中,优选地,还包括:设置单元,用于在接收到设置信号时,设置所述其他应用程序的自动升级权限。

在该技术方案中,通过设置其他应用程序的自动升级权限,从而保证其他应用程序能够顺利进行升级。

在上述任一技术方案中,优选地,所述设置单元具体用于,若所述设置信号为在获取所述其他应用程序的当前版本时触发的信号,则设置所述其他应用程序不具有自动升级的权限,或者若所述设置信号为所述其他应用程序使用所述升级数据包升级完成时触发的信号、或者所述其他应用程序的当前版本比所述升级数据包的版本新时触发的信号,或者所述其他应用程序的当前版本与所述升级数据包的版本相同时触发的信号,则设置所述其他应用程序具有自动升级的权限。

在该技术方案中,在获取其他应用程序的当前版本时触发的信号时,设置其他应用程序不具有自动升级的权限,可以防止其他应用程序重复升级。另外,若升级数据包的版本没有其他应用程序的版本新,则设置其他应用程序具有自动升级的权限,以在发布新版本时保证其他应用程序能够自动升级。

在上述任一技术方案中,优选地,所述设置单元具体用于,通过修改所述其他应用程序的自动升级标识,来设置所述其他应用程序的自动升级权限。

在该技术方案中,通过修改其他应用程序的自动升级标识,来实现其他应用程序的自动升级权限的设置,从而保证了其他应用程序的运行可靠性。

在上述任一技术方案中,优选地,所述两个系统空间之间通过socket套接字进行通信。

在该技术方案中,相互独立的两个系统空间之间通过socket进行通信,即通过socket将升级数据包从一个系统空间发送给另一个与之独立的系统空间,从而保证了相互独立的两个系统空间之间通信的可靠性。

本发明的第三方面提出了一种终端,包括上述技术方案中任一项所述的应用程序的升级装置,因此,该终端具有和上述技术方案中任一项所述的应用程序的升级装置相同的技术效果,在此不再赘述。

通过本发明的技术方案,在对两个相互独立的系统空间中的应用程序进行升级时,可以避免消耗不必要的系统资源。

附图说明

图1示出了根据本发明的一个实施例的应用程序的升级方法的流程示意图;

图2示出了根据本发明的另一个实施例的应用程序的升级方法的流程示意图;

图3示出了根据本发明的一个实施例的应用程序的升级装置的结构示意图;

图4示出了根据本发明的一个实施例的终端的结构示意图;

图5示出了根据本发明的另一个实施例的终端的结构示意图;

图6示出了根据本发明的又一个实施例的终端的结构示意图。

具体实施方式

为了可以更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

图1示出了根据本发明的一个实施例的应用程序的升级方法的流程示意图。

如图1所示,根据本发明的一个实施例的应用程序的升级方法,在相互独立的两个系统空间中安装有相同的两个应用程序,所述两个系统空间与所述两个应用程序一一对应,所述应用程序的升级方法包括:

步骤102,在为所述两个应用程序中的任一应用程序下载升级数据包进行升级时,获取所述升级数据包的版本和所述两个应用程序中的其他应用程序的当前版本。

步骤104,若所述升级数据包的版本比所述其他应用程序的当前版本新,则将所述升级数据包发送到所述其他应用程序所在的系统空间中,以使用所述升级数据包对所述其他应用程序进行升级。

可以通过升级数据包的版本号和其他应用程序的当前版本号,确定升级数据包的版本是否比其他应用程序的当前版本新。

在该技术方案中,通过将相同的两个应用程序分别安装在相互独立的系统空间中,以实现在同一个终端上安装双开或多开应用程序。当该两个应用程序中的任一应用程序下载升级数据包进行升级时,若其他应用程序未升级,则可以直接使用任一应用程序下载的升级数据包进行升级,不仅及时地对未升级的应用程序进行了升级,还避免了未升级的应用程序重新下载升级数据包,从而避免了浪费不必要的系统资源。特别是在终端使用流量下载升级数据包进行升级时,最大程度上避免消耗不必要的流量。另外,也避免了多次提示用户对应用程序进行升级,从而提升用户的使用体验。

以上方案是对两个相互独立的系统空间中的应用程序进行升级,若存在三个或三个以上的相互独立的系统空间,则对三个或三个以上的系统空间中的应用程序升级的方案与以上方案相同,在此不再重复赘述。

在上述技术方案中,优选地,还包括:在接收到设置信号时,设置所述其他应用程序的自动升级权限。

在该技术方案中,通过设置其他应用程序的自动升级权限,从而保证其他应用程序能够顺利进行升级。

在上述任一技术方案中,优选地,所述在接收到设置信号时,设置所述其他应用程序的自动升级权限的步骤,具体包括:若所述设置信号为在获取所述其他应用程序的当前版本时触发的信号,则设置所述其他应用程序不具有自动升级的权限;或者若所述设置信号为所述其他应用程序使用所述升级数据包升级完成时触发的信号、或者所述其他应用程序的当前版本比所述升级数据包的版本新时触发的信号,或者所述其他应用程序的当前版本与所述升级数据包的版本相同时触发的信号,则设置所述其他应用程序具有自动升级的权限。

在该技术方案中,在获取其他应用程序的当前版本时触发的信号时,设置其他应用程序不具有自动升级的权限,可以防止其他应用程序重复升级。另外,若升级数据包的版本没有其他应用程序的版本新,则设置其他应用程序具有自动升级的权限,以在发布新版本时保证其他应用程序能够自动升级。

自动升级指的是,应用程序下载升级数据包,该应用程序根据其自身下载的升级数据包进行升级,并不是使用其分身应用程序或其主应用程序下载的升级数据进行升级。

在上述任一技术方案中,优选地,通过修改所述其他应用程序的自动升级标识,来设置所述其他应用程序的自动升级权限。

在该技术方案中,通过修改其他应用程序的自动升级标识,来实现其他应用程序的自动升级权限的设置,从而保证了其他应用程序的运行可靠性。

在上述任一技术方案中,优选地,所述两个系统空间之间通过socket套接字进行通信。

在该技术方案中,相互独立的两个系统空间之间通过socket进行通信,即通过socket将升级数据包从一个系统空间发送给另一个与之独立的系统空间,从而保证了相互独立的两个系统空间之间通信的可靠性。

下面对socket进行解释:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,socket用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个socket,并绑定到一个端口上,不同的端口对应于不同的服务。

图2示出了根据本发明的另一个实施例的应用程序的升级方法的流程示意图。

如图2所示,根据本发明的另一个实施例的应用程序的升级方法,包括:

步骤202,检测到对主应用程序进行升级。

步骤204,下载升级数据包,并对主应用程序进行升级。

步骤206,主应用程序是否有分身应用程序,若主应用程序有分身应用程序,则执行步骤208,若主应用程序没有分身应用程序,则结束本次流程。

步骤208,发送GET_VER数据给分身应用程序,以使分身应用程序获取自身的版本响应给主应用程序,并且分身应用程序将其auto_update标志设置为0,即设置分身应用程序不具有自动升级的权限。

步骤210,判断分身应用程序的版本是否较低,具体判断分身应用程序的版本是否比升级数据包的版本低,在判定分身应用程序的版本较低时,执行步骤212,在判定分身应用程序的版本不低时,结束本次流程。

步骤212,发送UPDATE数据包给分身应用程序所在的系统空间,以使分身应用程序去除UPDATE数据包中的DATA中的数据进行升级。

步骤214,分身应用程序升级完成后将其auto_update标志设置为1,即设置分身应用程序具有自动升级的权限。

图3示出了根据本发明的一个实施例的应用程序的升级装置的结构示意图。

如图3所示,根据本发明的一个实施例的应用程序的升级装置300,在相互独立的两个系统空间中安装有相同的两个应用程序,所述两个系统空间与所述两个应用程序一一对应,所述应用程序的升级装置300包括:获取单元302和升级单元304。

获取单元302,用于在为所述两个应用程序中的任一应用程序下载升级数据包进行升级时,获取所述升级数据包的版本和所述两个应用程序中的其他应用程序的当前版本;升级单元304,用于若所述升级数据包的版本比所述其他应用程序的当前版本新,则将所述升级数据包发送到所述其他应用程序所在的系统空间中,以使用所述升级数据包对所述其他应用程序进行升级。

在该技术方案中,通过将相同的两个应用程序分别安装在相互独立的系统空间中,以实现在同一个终端上安装双开或多开应用程序。当该两个应用程序中的任一应用程序下载升级数据包进行升级时,若其他应用程序未升级,则可以直接使用任一应用程序下载的升级数据包进行升级,不仅及时地对未升级的应用程序进行了升级,还避免了未升级的应用程序重新下载升级数据包,从而避免了浪费不必要的系统资源。特别是在终端使用流量下载升级数据包进行升级时,最大程度上避免消耗不必要的流量。另外,也避免了多次提示用户对应用程序进行升级,从而提升用户的使用体验。

在上述技术方案中,优选地,还包括:设置单元306,用于在接收到设置信号时,设置所述其他应用程序的自动升级权限。

在该技术方案中,通过设置其他应用程序的自动升级权限,从而保证其他应用程序能够顺利进行升级。

在上述任一技术方案中,优选地,所述设置单元306具体用于,若所述设置信号为在获取所述其他应用程序的当前版本时触发的信号,则设置所述其他应用程序不具有自动升级的权限,或者若所述设置信号为所述其他应用程序使用所述升级数据包升级完成时触发的信号、或者所述其他应用程序的当前版本比所述升级数据包的版本新时触发的信号,或者所述其他应用程序的当前版本与所述升级数据包的版本相同时触发的信号,则设置所述其他应用程序具有自动升级的权限。

在该技术方案中,在获取其他应用程序的当前版本时触发的信号时,设置其他应用程序不具有自动升级的权限,可以防止其他应用程序重复升级。另外,若升级数据包的版本没有其他应用程序的版本新,则设置其他应用程序具有自动升级的权限,以在发布新版本时保证其他应用程序能够自动升级。

在上述任一技术方案中,优选地,所述设置单元306具体用于,通过修改所述其他应用程序的自动升级标识,来设置所述其他应用程序的自动升级权限。

在该技术方案中,通过修改其他应用程序的自动升级标识,来实现其他应用程序的自动升级权限的设置,从而保证了其他应用程序的运行可靠性。

在上述任一技术方案中,优选地,所述两个系统空间之间通过socket套接字进行通信。

在该技术方案中,相互独立的两个系统空间之间通过socket进行通信,即通过socket将升级数据包从一个系统空间发送给另一个与之独立的系统空间,从而保证了相互独立的两个系统空间之间通信的可靠性。

图4示出了根据本发明的一个实施例的终端的结构示意图。

如图4所示,根据本发明的一个实施例的终端400,包括上述技术方案中任一项所述的应用程序的升级装置300,因此,该终端400具有和上述技术方案中任一项所述的应用程序的升级装置300相同的技术效果,在此不再赘述。

图5示出了根据本发明的另一个实施例的终端的结构示意图。

如图5所示,根据本发明的另一个实施例的终端500,在该终端500上设有两个相互独立的系统空间,其中一个系统空间中安装有主应用程序,另一个系统空间中安装有主应用程序的分身应用程序。这样系统底层就会将主应用程序和分身应用程序视为两个不同的应用程序,实现应用分身的目的。在实现双开应用程序时,会有一个标识符来标识是否被分身过,例如使用变量mDuplicate标识,当对某个应用程序进行分身时,将此标识符设置为1。两个相互独立的系统空间通过socket套接字连接,用来在两个系统空间中传输数据。采用请求/响应的模式来传输数据。数据的形式可定义为{command,data}的形式,command字段表示命令,即表示需要执行的操作,data字段表示数据,即执行操作时携带的数据。例如当command为GET_VER时,执行的操作为获取版本号。则被请求方在接收到这个请求后,根据command字段要求获取到自身的版本号,通过响应的方式将自己的版本号响应给请求方,这样就完成了两个系统空间的交互。当command字段为UPDATA时,表示要进行升级操作,data中携带的数据即为应用升级数据,被请求方在收到UPDATE命令后,就会将data字段中的数据放入程序数据区中的对应的目录,完成升级。其中,升级的具体步骤如下。

主应用程序和其分身应用程序中的其一应用程序的升级检测模块检测到其下载升级数据包进行升级时,这个应用程序首先检查mDuplicate标识符是否为1,如果为1表示此应用程序具有分身应用程序或其本身为分身应用程序,需要进行后续的升级判断和升级操作。如果此标识符为0,则表示此应用程序未被分身,只升级本身应用程序,不进行后期的分身应用程序升级相关的操作。

当某个应用程序例如主应用程序的升级检测模块检测到进行升级且分身标识符mDuplicate为1时,则发送一个{GET_VER,null}的数据给分身应用程序,分身应用程序在接收到此数据后,判断command为GET_VER,即主应用程序响应获取自己的当前版本号,做升级前准备,此时分身应用程序需要做以下两个步骤:

一、获取自己当前的版本号,例如V1,通过{GET_VER,V1}的响应形式回复给主应用程序。

二、将自己的自动升级标志(auto_update)设置为不自动升级,即将auto_update设置为0,以防止分身应用程序重复升级。

主应用程序需要做以下三个步骤:

一、升级自身应用程序,将升级数据包中的文件放到程序数据区中的相对应的目录。

二、在收到分身应用程序发送的{GET_VER,V1}的响应后,将分身应用程序的当前版本号和升级数据包的版本号进行对比,如果升级数据包的版本号比分身应用程序的当前版本号新,则进行步骤三中的升级操作,否则主应用程序以{UPDATE,NULL}的形式将数据发送给分身应用程序,分身应用程序收到此数据时,判断command为UPDATE,data为NULL,根据data为NULL确定其不需要进行升级,分身应用程序将其自动更新标识符(auto_update)重新置为可自动升级,即将auto_update设置为1,不影响分身应用程序后期的自动更新。

三、根据步骤二中的判断,当升级数据包的版本号比分身应用程序的当前版本号新时,将升级数据包以{UPDATE,DATA}的形式发送给分身应用程序,分身应用程序收到这个数据包时,检测到command为UPDATE,且data不为空,表示自己需要升级,将DATA数据存放到其程序数据区中的对应目录中完成升级操作。在完成升级操作后,同样将分身应用程序的自动升级标志(auto_update)置为可自动升级,即将auto_update设置为1,不影响后期分身应用程序的升级。

上述操作的好处还在于不局限于主应用程序去升级分身应用程序,当分身应用程序先检测到使用升级数据包进行升级时,同样可以去升级主应用程序,做到了双向升级,灵活度高。

本提案中涉及到两个标识符,分别为mDuplicate和auto_update,这两个标识的相关信息如表1所示:

表1

本方案中涉及到的数据结构如下:

图6示出了根据本发明的又一个实施例的终端的结构示意图。

如图6所示,根据本发明的又一个实施例的终端600,包括:处理器602、存储器604和通信总线606。通信总线606用于实现处理器602和存储器604之间的连接通信。存储器604可以是高速RAM(Random Access Memory,随机存储器),也可以是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器602包括CPU(Central Processing Unit,中央处理器)。其中,通过调用存储器604中存储的指令,来使处理器602执行如下步骤:在为两个应用程序中的任一应用程序下载升级数据包进行升级时,获取所述升级数据包的版本和所述两个应用程序中的其他应用程序的当前版本;若所述升级数据包的版本比所述其他应用程序的当前版本新,则将所述升级数据包发送到所述其他应用程序所在的系统空间中,以使用所述升级数据包对所述其他应用程序进行升级。

优选地,处理器602还用于,在接收到设置信号时,设置所述其他应用程序的自动升级权限。

优选地,处理器602具体用于,若所述设置信号为在获取所述其他应用程序的当前版本时触发的信号,则设置所述其他应用程序不具有自动升级的权限;或者若所述设置信号为所述其他应用程序使用所述升级数据包升级完成时触发的信号、或者所述其他应用程序的当前版本比所述升级数据包的版本新时触发的信号,或者所述其他应用程序的当前版本与所述升级数据包的版本号相同时触发的信号,则设置所述其他应用程序具有自动升级的权限。

优选地,处理器602具体用于,通过修改所述其他应用程序的自动升级标识,来设置所述其他应用程序的自动升级权限。

优选地,所述两个系统空间之间通过socket套接字进行通信。

以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,在对两个相互独立的系统空间中的应用程序进行升级时,可以避免消耗不必要的系统资源。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1