CN112579113A - 应用程序的升级方法、装置、存储介质及终端 - Google Patents
应用程序的升级方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN112579113A CN112579113A CN201910924311.XA CN201910924311A CN112579113A CN 112579113 A CN112579113 A CN 112579113A CN 201910924311 A CN201910924311 A CN 201910924311A CN 112579113 A CN112579113 A CN 112579113A
- Authority
- CN
- China
- Prior art keywords
- application program
- upgrading
- user data
- terminal
- upgrade
- 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
Images
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种应用程序的升级方法、装置、存储介质及终端,属于计算机技术领域。所述方法包括:获取应用程序的升级文件,所述升级文件用于升级所述应用程序;将所述升级文件添加到终端预先创建的沙箱中,所述沙箱提供的第一运行环境与所述终端提供的第二运行环境相同,且所述第一运行环境和所述第二运行环境相互隔离;根据所述升级文件在所述第一运行环境中预升级所述应用程序;根据所述应用程序在所述第一运行环境中的预升级情况对应在所述第二运行环境中执行相应的升级操作。本申请实施例可以避免出现升级异常的问题。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种应用程序的升级方法、装置、存储介质及终端。
背景技术
终端中可以安装各式各样的应用程序供用户使用。这些应用程序通常都支持升级功能,这样,既可以通过升级来增加新功能以满足用户需求,也可以通过升级来解决用户在使用过程中遇到的问题,从而提升用户的使用体验。
相关技术中,终端可以先获取应用程序的升级文件;再加载该升级文件来对应用程序进行升级;最后对升级后的应用程序加载用户数据。其中,用户数据是指用户在使用升级前的应用程序的过程中产生的数据。
虽然开发者会对升级后的应用程序进行一系列的功能测试和兼容性测试,在测试通过后再发布升级文件,但是,不同用户所使用的终端各不相同,所以,升级后的应用程序可能和终端提供的运行环境不兼容,从而导致升级异常。
发明内容
本申请实施例提供了一种应用程序的升级方法、装置、存储介质及终端,用于解决升级后的应用程序与终端提供的运行环境不兼容,导致升级异常的问题。所述技术方案如下:
一方面,提供了一种应用程序的升级方法,所述方法包括:获取应用程序的升级文件,所述升级文件用于升级所述应用程序;将所述升级文件添加到终端预先创建的沙箱中,所述沙箱提供的第一运行环境与所述终端提供的第二运行环境相同,且所述第一运行环境和所述第二运行环境相互隔离;根据所述升级文件在所述第一运行环境中预升级所述应用程序;根据所述应用程序在所述第一运行环境中的预升级情况对应在所述第二运行环境中执行相应的升级操作。
一方面,提供了一种应用程序的升级装置,所述装置包括:获取模块,用于获取应用程序的升级文件,所述升级文件用于升级所述应用程序;添加模块,用于将所述获取模块得到的所述升级文件添加到终端预先创建的沙箱中,所述沙箱提供的第一运行环境与所述终端提供的第二运行环境相同,且所述第一运行环境和所述第二运行环境相互隔离;预升级模块,用于根据所述升级文件在所述第一运行环境中预升级所述应用程序;升级模块,用于根据所述应用程序在所述第一运行环境中的预升级情况对应在所述第二运行环境中执行相应的升级操作。
一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的应用程序的升级方法。
一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的应用程序的升级方法。
本申请实施例提供的技术方案的有益效果至少包括:
通过将升级文件添加到终端中的沙箱中,并根据该升级文件在沙箱提供的第一运行环境中预升级应用程序,由于第一运行环境与终端提供的第二运行环境相同,所以,应用程序在第一运行环境中的预升级情况与在第二运行环境中的升级情况相同。即,若该应用程序在第一运行环境中预升级时发生异常,则该应用程序在第二运行环境中升级时必然也会发生异常;若该应用程序在第一运行环境中预升级时未发生异常,则该应用程序在第二运行环境中升级时必然也不会发生异常,所以,可以根据应用程序在第一运行环境中的预升级情况来确定是否在第二运行环境中升级该应用程序,从而避免出现升级异常的问题。另外,由于第一运行环境与第二运行环境相互隔离,所以,即使升级后的应用程序在第一运行环境中预升级时发生异常,也不会影响终端。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据部分示例性实施例示出的一种应用程序的升级***的结构示意图;
图2是本申请一个实施例提供的应用程序的升级方法的方法流程图;
图3是本申请另一实施例提供的应用程序的升级方法的方法流程图;
图4是本申请另一实施例提供的应用程序的升级方法的流程示意图;
图5是本申请再一实施例提供的应用程序的升级装置的结构框图;
图6是本申请再一实施例提供的应用程序的升级装置的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请实施例提供的一种应用程序的升级***的结构示意图。该应用程序的升级***可以包括终端110和应用服务器120。终端110与应用服务器120可以通过有线网络或无线网络等任意适用的连接方式建立连接。
终端110是安装有应用程序的设备,比如智能手机等任意适用的终端设备。其中,终端110中可以安装多个应用程序,且用户在使用每个应用程序时会产生用户数据。请参考图1,终端110中可以包括应用程序1和应用程序1的用户数据1、应用程序2和应用程序2的用户数据2等等。另外,终端110中还创建有沙箱,其中,沙箱是一个虚拟***程序,沙箱所提供的第一运行环境相对于每个运行的应用程序都是独立的,且不会对操作***的***资源产生影响,即沙箱可以限制应用程序对***资源的访问权限。
本实施例中,可以应用沙箱的上述特性,在沙箱中预升级应用程序,比如,当在沙箱中预升级应用程序1时,沙箱中可以包括新应用程序1和应用程序1的用户数据1。其中,预升级是指在沙箱所提供的第一运行环境中升级应用程序,并不是在终端提供的第二运行环境中真正升级应用程序,且由于沙箱具有隔离作用,所以,升级后的应用程序不会对操作***的***资源产生影响。
应用服务器120是应用程序的后台服务器,可以是一台服务器或多台服务器组成的服务器集群或云计算中心。
需要说明的是,应用服务器120可以与多个终端110相连,图1中以应用服务器120与一个终端110相连为例进行说明。
应说明的是,图1所示的结构仅为示意,其并不对上述终端110的结构造成限定。例如,终端110还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
请参考图2,其示出了本申请一个实施例提供的应用程序的升级方法的方法流程图,该应用程序的升级方法可以应用于终端110中。该应用程序的升级方法,可以包括:
步骤201,获取应用程序的升级文件,该升级文件用于升级应用程序。
当开发者想要对应用程序进行升级时,可以制作升级后的应用程序的安装包,将该升级后的应用程序的安装包作为升级文件进行发布,则从应用服务器中获取到的是升级后的应用程序的安装包;或者,可以制作升级后的应用程序相对于升级前的应用程序的增量包,将该增量包作为升级文件进行发布,则从应用服务器中获取到的是增量包。其中,增量包是指升级后的应用程序的安装包相对于升级前的应用程序的安装包所更新的文件。简单来说,增量包包含的是升级前的应用程序的安装包中所没有的文件,且升级前的应用程序的安装包和增量包合并后即为升级后的应用程序的安装包。
步骤202,将升级文件添加到终端预先创建的沙箱中,沙箱提供的第一运行环境与终端提供的第二运行环境相同,且第一运行环境和第二运行环境相互隔离。
沙箱是终端创建的,且用于预升级应用程序。在一实施方式中,终端可以进行资源调度来创建沙箱,以使沙箱能够为应用程序提供第一运行环境。
步骤203,根据升级文件在第一运行环境中预升级应用程序。
本实施例中,若升级文件为升级后的应用程序的安装包,则运行该安装包,即可预升级应用程序;若升级文件为增量包,则还需要对增量包进行处理得到升级后的应用程序的安装包,再运行该安装包来预升级应用程序。
步骤204,根据应用程序在第一运行环境中的预升级情况对应在第二运行环境中执行相应的升级操作。
在预升级应用程序时,可以通过异常检测、内存检测等来检测该应用程序在预升级时是否发生异常,得到该应用程序的预升级情况。由于第一运行环境与终端提供的第二运行环境相同,所以,应用程序在第一运行环境中的预升级情况与在第二运行环境中的升级情况相同。即,若该应用程序在第一运行环境中预升级时发生异常,则该应用程序在第二运行环境中升级时必然也会发生异常;若该应用程序在第一运行环境中预升级时未发生异常,则该应用程序在第二运行环境中升级时必然也不会发生异常,所以,可以根据应用程序在第一运行环境中的预升级情况来确定是否在第二运行环境中升级该应用程序,从而避免出现升级异常的问题。
综上所述,本申请实施例提供的应用程序的升级方法,通过将升级文件添加到终端中的沙箱中,并根据该升级文件在沙箱提供的第一运行环境中预升级应用程序,由于第一运行环境与终端提供的第二运行环境相同,所以,应用程序在第一运行环境中的预升级情况与在第二运行环境中的升级情况相同。即,若该应用程序在第一运行环境中预升级时发生异常,则该应用程序在第二运行环境中升级时必然也会发生异常;若该应用程序在第一运行环境中预升级时未发生异常,则该应用程序在第二运行环境中升级时必然也不会发生异常,所以,可以根据应用程序在第一运行环境中的预升级情况来确定是否在第二运行环境中升级该应用程序,从而避免出现升级异常的问题。另外,由于第一运行环境与第二运行环境相互隔离,所以,即使升级后的应用程序在第一运行环境中预升级时发生异常,也不会影响终端。
请参考图3,其示出了本申请另一实施例提供的应用程序的升级方法的方法流程图,该应用程序的升级方法可以应用于终端110中。该应用程序的升级方法,可以包括:
步骤301,获取应用程序的升级文件,该升级文件用于升级应用程序。
步骤302,将升级文件添加到终端预先创建的沙箱中,沙箱提供的第一运行环境与终端提供的第二运行环境相同,且第一运行环境和第二运行环境相互隔离。
其中,步骤301-302的实现流程详见步骤201-202中的描述,此处不作赘述。
步骤303,根据升级文件在第一运行环境中预升级应用程序。
本实施例中,根据升级文件在第一运行环境中预升级应用程序,可以包括以下两种实现方式:
在第一种实现方式中,当升级文件为升级后的应用程序的安装包时,根据安装包在第一运行环境中预升级应用程序。
本实施例中,可以在沙箱中的预定升级位置创建应用程序的子目录,并将升级文件添加到该子目录中。当升级文件是升级后的应用程序的安装包时,可以将该升级后的应用程序的安装包添加到该子目录中。之后,可以从子目录中读取存储的升级后的应用程序的安装包,并运行该安装包,即可预升级应用程序。
在第二种实现方式中,当升级文件为升级后的应用程序相对于升级前的应用程序的增量包时,将升级前的应用程序的安装包添加到沙箱中,并根据增量包和升级前的应用程序的安装包在第一运行环境中预升级应用程序。
当升级文件是增量包时,除了将该增量包添加到该子目录中,还需要将升级前的应用程序的安装包添加到该子目录中,并对增量包和该升级前的应用程序的安装包进行合并差分处理,得到升级后的应用程序的安装包。之后,可以从子目录中读取存储的升级后的应用程序的安装包,并运行该安装包,即可预升级应用程序。
需要说明的是,当升级后的应用程序的安装包不符合沙箱的运行格式时,还需要将升级后的应用程序的安装包转换为该运行格式。
在预升级应用程序时,可以通过异常检测、内存检测等来检测该应用程序在预升级时是否发生异常。当该应用程序在预升级时发生异常时,执行步骤304,结束流程;或者,当该应用程序在预升级时未发生异常时,执行步骤305-308。
步骤304,当应用程序在第一运行环境中预升级时发生异常时,禁止在第二运行环境中执行该升级文件以升级该应用程序。
若应用程序在预升级时发生异常,则说明应用程序无法在第一运行环境中预升级,也就无法在第二运行环境中升级,也即应用程序与***环境不兼容。由于第一运行环境与第二运行环境相互隔离,所以,即使升级后的应用程序在第一运行环境中预升级时发生异常,也不会影响终端。而若根据升级文件在第二运行环境中升级该应用程序(即在第二运行环境中升级),则可能会出现应用程序闪退、反复报错、甚至反复开关机等问题,从而影响了终端,所以,需要禁止在第二运行环境中执行该升级文件以升级该应用程序。
在一实施方式中,还可以删除沙箱中子目录中存储的升级后的应用程序的安装包。
步骤305,当应用程序在第一运行环境中预升级时未发生异常时,获取终端中存储的应用程序的用户数据,用户数据是用户在使用应用程序的过程中产生的。
当应用程序在第一运行环境中预升级时未发生异常时,说明该应用程序在终端中升级时也不会发生异常,则可以通知终端,并使终端在第二运行环境中执行该升级文件以升级应用程序,流程结束。其中,终端可以将升级后的应用程序替换第二运行环境中的应用程序,从而实现应用程序的升级。
在一实施方式中,在应用程序预升级完成后,还需要读写应用程序的用户数据,而读写用户数据时也有可能发生异常,所以,还可以检测升级后的应用程序读写用户数据时是否发生异常;若读写用户数据时发生异常,则禁止在第二运行环境中执行该升级文件以升级该应用程序;若读写用户数据时未发生异常,则可以在第二运行环境中执行升级文件以升级该应用程序。
通常,终端会在用户使用应用程序时存储产生的用户数据,所以,可以直接读取终端中存储的用户数据。
步骤306,将用户数据同步到沙箱中。
本实施例中,可以将读取的用户数据添加到沙箱中。在一实施方式中,可以在沙箱中的待加载数据位置创建用户数据的子目录,并将该应用程序的用户数据添加到该子目录中。
当用户数据的数据量较大时,将该用户数据添加到沙箱中会占用较多的存储空间,所以,将用户数据同步到沙箱中,可以包括如下几个子步骤:
步骤1、获取用户数据的数据量。
本实施例中,在获取到用户数据的数据量之后,可以读取预先设置预定阈值,并将该数据量与该预定阈值进行比较;当该数据量小于或等于该预定阈值时,执行步骤2;或者,当该数据量大于该预定阈值时,执行步骤3。其中,预定阈值可以是经验值,也可以是根据预定公式计算得到的,本实施例不作限定。
步骤2、当数据量小于或等于预定阈值时,将用户数据复制到沙箱中。
步骤3、当数据量大于预定阈值时,生成用于指示用户数据在终端中的存储路径的软链接,并将软链接添加到沙箱中。
需要说明的是,当将用户数据复制到沙箱中时,升级后的应用程序操作的是备份的用户数据,那么,即使升级后的应用程序修改了沙箱中的用户数据,也不会影响终端中存储的原始的用户数据,从而保证数据的安全性。当将软链接添加到沙箱中时,升级后的应用程序操作的是终端中存储的原始的用户数据,为了保证数据的安全性,需要在生成软链接时设置升级后的应用程序对该用户数据的操作权限。其中,操作权限用于指示升级后的应用程序对用户数据的操作方式。比如,操作权限可以包括读权限和写权限中的至少一种。
在一种可能的实现方式中,生成用于指示用户数据在终端中的存储路径的软链接,可以包括:
当用户数据存储在终端中的数据库中时,在终端中备份用户数据,生成用于指示备份的用户数据在终端中的存储路径的软链接,并设置用户数据的操作权限为读权限和写权限。
当原始的用户数据存储在数据库中时,终端需要先从数据库中备份该用户数据,再生成用于指示备份的用户数据在终端中的存储路径的软链接。由于此时升级后的应用程序根据该软链接操作的是备份的用户数据,所以,即使升级后的应用程序修改了备份的用户数据,也不会影响数据库中原始的用户数据。所以,可以为升级后的应用程序设置较高的操作权限,比如,操作权限包括读权限和写权限,从而提升数据操作的全面性。
当用户数据未存储在终端中的数据库中时,生成用于指示用户数据在终端中的存储路径的软链接,并设置用户数据的操作权限为读权限。
当原始的用户数据未存储在数据库中时,终端生成的是用于指示原始的用户数据在终端中的存储路径的软链接。由于此时升级后的应用程序根据该软链接操作的是原始的用户数据,所以,假设升级后的应用程序修改了备份的用户数据,那么会影响数据库中原始的用户数据。所以,可以为升级后的应用程序设置较低的操作权限,比如,操作权限包括读权限,从而保证数据的安全性。
步骤307,利用升级后的应用程序在第一运行环境中操作用户数据。
当沙箱中存储的是用户数据时,升级后的应用程序可以读写该用户数据;当沙箱中存储的是软链接时,升级后的应用程序可以根据操作权限来操作该用户数据。比如,当操作权限为读操作时,升级后的应用程序可以读该用户数据;当操作权限为写权限时,升级后的应用程序可以向该用户数据中写入数据;当操作权限为读写权限时,升级后的应用程序可以读写该用户数据。
步骤308,当升级后的应用程序在操作用户数据时未发生异常时,在第二运行环境中执行该升级文件以升级该应用程序。
在升级后的应用程序操作用户数据时,可以通过异常检测、内存检测等来检测是否发生异常。当未发生异常时,说明该升级后的应用程序在终端中操作用户数据时也不会发生异常,则可以通知终端,并使终端在第二运行环境中执行该升级文件以升级该应用程序,流程结束。其中,终端可以将升级后的应用程序替换第二运行环境中的应用程序,从而实现应用的升级。
当发生异常时,说明应用程序无法在第一运行环境中操作用户数据,也就无法在第二运行环境中操作用户数据,也即应用程序与用户数据不兼容。由于第一运行环境与第二运行环境相互隔离,所以,即使升级后的应用程序在第一运行环境中发生异常,也不会影响终端。而当该升级后的应用程序在第二运行环境中操作用户数据时,可能会出现应用程序闪退、反复报错、甚至反复开关机等问题,从而影响了终端,所以,需要禁止在第二运行环境中执行该升级文件以升级该应用程序。
在一实施方式中,还可以删除沙箱中子目录中存储的升级后的应用程序的安装包和用户数据(或软链接)。
本实施例中,为了使用户了解沙箱中应用程序的升级进度,该方法还可以包括:显示升级进度条,升级进度条用于指示应用程序在第一运行环境中的预升级进度;在应用程序预升级完毕后,显示通知消息,通知消息用于指示是否根据升级文件在第二运行环境中升级应用程序。
综上所述,本申请实施例提供的应用程序的升级方法,通过将升级文件添加到终端中的沙箱中,并根据该升级文件在沙箱提供的第一运行环境中预升级应用程序,由于第一运行环境与终端提供的第二运行环境相同,所以,应用程序在第一运行环境中的预升级情况与在第二运行环境中的升级情况相同。即,若该应用程序在第一运行环境中预升级时发生异常,则该应用程序在第二运行环境中升级时必然也会发生异常;若该应用程序在第一运行环境中预升级时未发生异常,则该应用程序在第二运行环境中升级时必然也不会发生异常,所以,可以根据应用程序在第一运行环境中的预升级情况来确定是否在第二运行环境中升级该应用程序,从而避免出现升级异常的问题。另外,由于第一运行环境与第二运行环境相互隔离,所以,即使升级后的应用程序在第一运行环境中预升级时发生异常,也不会影响终端。
在应用程序预升级完成后,还需要读写应用程序的用户数据,而读写用户数据时也有可能发生异常,所以,还可以检测升级后的应用程序读写用户数据时是否发生异常;当读写用户数据时发生异常时,则禁止在第二运行环境中执行该升级文件以升级该应用程序;当读写用户数据时未发生异常时,可以在第二运行环境中执行该升级文件以升级该应用程序。
当用户数据的数据量大于预定阈值时,可以生成用户数据的软链接,并将该软链接添加到沙箱中,从而避免将用户数据复制到沙箱中,占用大量存储空间的问题,可以节省沙箱中的存储资源。
当沙箱中存储有软链接且升级后的应用程序根据软链接操作的是终端中原始的用户数据时,可以设置用户数据的操作权限,从而保证数据的安全性。
请参考图4,其示出了一种应用程序的升级方法的流程示意图:
步骤401,下载新应用的安装包或者应用升级包(即增量包);
步骤402,将新应用存储到预升级分区(即预定升级位置中应用程序的子目录);
步骤403,比较用户数据的数据量与预定阈值;当小于或等于阈值时,执行步骤404;当大于预定阈值时,执行步骤405;
步骤404,将用户数据复制到预升级区(即待加载数据位置中用户数据的子目录),执行步骤406;
步骤405,创建用户数据的软链接,并设置操作权限;
步骤406,运行新应用并加载用户数据;
步骤407,检测运行和加载是否发生异常;当发生异常时,执行步骤408;当未发生异常时,执行步骤409;
步骤408,通知终端预升级失败,禁止在终端中升级应用程序,结束流程;
步骤409,通知终端预升级成功;
步骤410,在用户确认升级时升级应用程序,结束流程。
请参考图5,其示出了本申请一个实施例提供的应用程序的升级装置的结构框图,该应用程序的升级装置可以应用于终端110中。该应用程序的升级装置,可以包括:
获取模块510,用于获取应用程序的升级文件,升级文件用于升级应用程序;
添加模块520,用于将获取模块510得到的升级文件添加到终端预先创建的沙箱中,沙箱提供的第一运行环境与终端提供的第二运行环境相同,且第一运行环境和第二运行环境相互隔离;
预升级模块530,用于根据升级文件在第一运行环境中预升级应用程序;
升级模块540,用于根据应用程序在第一运行环境中的预升级情况对应在第二运行环境中执行相应的升级操作。
在一实施方式中,升级模块540,还用于:
当应用程序在第一运行环境中预升级时发生异常时,禁止在第二运行环境中执行升级文件以升级应用程序;或
当应用程序在第一运行环境中预升级时未发生异常时,根据升级文件在第二运行环境中执行升级文件以升级应用程序。
在一实施方式中,获取模块510,还用于在在第二运行环境中执行升级文件以升级应用程序序之前,获取终端中存储的应用程序的用户数据,用户数据是用户在使用应用程序的过程中产生的;
请参考图6,该装置还可以包括:
同步模块550,用于将用户数据同步到沙箱中;
操作模块560,用于利用升级后的应用程序在第一运行环境中操作用户数据;
触发模块570,用于当升级后的应用程序在操作用户数据时未发生异常时,触发执行根据升级文件在第二运行环境中升级应用程序的步骤。
在一实施方式中,同步模块550,还用于:
获取用户数据的数据量;
当数据量小于或等于预定阈值时,将用户数据复制到沙箱中;或
当数据量大于预定阈值时,生成用于指示用户数据在终端中的存储路径的软链接,并将软链接添加到沙箱中。
在一实施方式中,同步模块550,还用于:
当用户数据存储在终端中的数据库中时,在终端中备份用户数据,生成用于指示备份的用户数据在终端中的存储路径的软链接,并设置用户数据的操作权限为读权限和写权限;或
当用户数据未存储在终端中的数据库中时,生成用于指示用户数据在终端中的存储路径的软链接,并设置用户数据的操作权限为读权限;
其中,操作权限用于指示升级后的应用程序对用户数据的操作方式。
在一实施方式中,预升级模块530,还用于:
当升级文件为升级后的应用程序的安装包时,根据安装包在第一运行环境中预升级应用程序;
当升级文件为升级后的应用程序相对于升级前的应用程序的增量包时,将升级前的应用程序的安装包添加到沙箱中,并根据增量包和升级前的应用程序的安装包在第一运行环境中预升级应用程序。
在一实施方式中,该装置还包括:
显示模块580,用于显示升级进度条,升级进度条用于指示应用程序在第一运行环境中的预升级进度;
显示模块580,还用于在应用程序预升级完毕后,显示通知消息,通知消息用于指示是否根据升级文件在第二运行环境中升级应用程序。
在一实施方式中,该装置还包括:
删除模块590,用于在禁止在终端中执行升级文件以升级应用程序之后,删除所述沙箱中的升级文件和用户数据。
综上所述,本申请实施例提供的应用程序的升级装置,通过将升级文件添加到终端中的沙箱中,并根据该升级文件在沙箱提供的第一运行环境中预升级应用程序,由于第一运行环境与终端提供的第二运行环境相同,所以,应用程序在第一运行环境中的预升级情况与在第二运行环境中的升级情况相同。即,若该应用程序在第一运行环境中预升级时发生异常,则该应用程序在第二运行环境中升级时必然也会发生异常;若该应用程序在第一运行环境中预升级时未发生异常,则该应用程序在第二运行环境中升级时必然也不会发生异常,所以,可以根据应用程序在第一运行环境中的预升级情况来确定是否在第二运行环境中升级该应用程序,从而避免出现升级异常的问题。另外,由于第一运行环境与第二运行环境相互隔离,所以,即使升级后的应用程序在第一运行环境中预升级时发生异常,也不会影响终端。
在应用程序预升级完成后,还需要读写应用程序的用户数据,而读写用户数据时也有可能发生异常,所以,还可以检测升级后的应用程序读写用户数据时是否发生异常;当读写用户数据时发生异常时,禁止在终端中执行该升级文件以升级该应用程序;当读写用户数据时未发生异常时,可以在终端中执行该升级文件以升级该应用程序。
当用户数据的数据量大于预定阈值时,可以生成用户数据的软链接,并将该软链接添加到沙箱中,从而避免将用户数据复制到沙箱中,占用大量存储空间的问题,可以节省沙箱中的存储资源。
当沙箱中存储有软链接且升级后的应用程序根据软链接操作的是终端中原始的用户数据时,可以设置用户数据的操作权限,从而保证数据的安全性。
本申请一个实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的应用程序的升级方法。
本申请一个实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的应用程序的升级方法。
需要说明的是:上述实施例提供的应用程序的升级装置在进行应用程序的升级时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将应用程序的升级装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的升级装置与应用程序的升级方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (10)
1.一种应用程序的升级方法,其特征在于,所述方法包括:
获取应用程序的升级文件,所述升级文件用于升级所述应用程序;
将所述升级文件添加到终端预先创建的沙箱中,所述沙箱提供的第一运行环境与所述终端提供的第二运行环境相同,且所述第一运行环境和所述第二运行环境相互隔离;
根据所述升级文件在所述第一运行环境中预升级所述应用程序;
根据所述应用程序在所述第一运行环境中的预升级情况对应在所述第二运行环境中执行相应的升级操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述应用程序在所述第一运行环境中的预升级情况对应在所述第二运行环境中执行相应的升级操作,包括:
当所述应用程序在所述第一运行环境中预升级时发生异常时,禁止在所述第二运行环境中执行所述升级文件以升级所述应用程序;或
当所述应用程序在所述第一运行环境中预升级时未发生异常时,在所述第二运行环境中执行所述升级文件以升级所述应用程序。
3.根据权利要求2所述的方法,其特征在于,在所述在所述第二运行环境中执行所述升级文件以升级所述应用程序序之前,所述方法还包括:
获取所述终端中存储的所述应用程序的用户数据,所述用户数据是用户在使用所述应用程序的过程中产生的;
将所述用户数据同步到所述沙箱中;
利用升级后的应用程序在所述第一运行环境中操作所述用户数据;
当所述升级后的应用程序在操作所述用户数据时未发生异常时,触发执行所述在所述第二运行环境中执行所述升级文件以升级所述应用程序的步骤。
4.根据权利要求3所述的方法,其特征在于,所述将所述用户数据同步到所述沙箱中,包括:
获取所述用户数据的数据量;
当所述数据量小于或等于预定阈值时,将所述用户数据复制到所述沙箱中;或
当若所述数据量大于预定阈值时,生成用于指示所述用户数据在所述终端中的存储路径的软链接,并将所述软链接添加到所述沙箱中。
5.根据权利要求4所述的方法,其特征在于,所述生成用于指示所述用户数据在所述终端中的存储路径的软链接,包括:
当所述用户数据存储在所述终端中的数据库中时,在终端中备份所述用户数据,生成用于指示备份的用户数据在所述终端中的存储路径的软链接,并设置所述用户数据的操作权限为读权限和写权限;或
当所述用户数据未存储在所述终端中的数据库中时,生成用于指示所述用户数据在所述终端中的存储路径的软链接,并设置所述用户数据的操作权限为读权限;
其中,所述操作权限用于指示所述升级后的应用程序对所述用户数据的操作方式。
6.根据权利要求1所述的方法,其特征在于,所述根据所述升级文件在所述第一运行环境中预升级所述应用程序,包括:
当所述升级文件为升级后的应用程序的安装包时,根据所述安装包在所述第一运行环境中预升级所述应用程序;
当所述升级文件为升级后的应用程序相对于升级前的应用程序的增量包时,将所述升级前的应用程序的安装包添加到所述沙箱中,并根据所述增量包和所述升级前的应用程序的安装包在所述第一运行环境中预升级所述应用程序。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
显示升级进度条,所述升级进度条用于指示所述应用程序在所述第一运行环境中的预升级进度;
在所述应用程序预升级完毕后,显示通知消息,所述通知消息用于指示是否根据所述升级文件在所述第二运行环境中升级所述应用程序。
8.一种应用程序的升级装置,其特征在于,所述装置包括:
获取模块,用于获取应用程序的升级文件,所述升级文件用于升级所述应用程序;
添加模块,用于将所述获取模块得到的所述升级文件添加到终端预先创建的沙箱中,所述沙箱提供的第一运行环境与所述终端提供的第二运行环境相同,且所述第一运行环境和所述第二运行环境相互隔离;
预升级模块,用于根据所述升级文件在所述第一运行环境中预升级所述应用程序;
升级模块,用于根据所述应用程序在所述第一运行环境中的预升级情况对应在所述第二运行环境中执行相应的升级操作。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的应用程序的升级方法。
10.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至7任一所述的应用程序的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910924311.XA CN112579113A (zh) | 2019-09-27 | 2019-09-27 | 应用程序的升级方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910924311.XA CN112579113A (zh) | 2019-09-27 | 2019-09-27 | 应用程序的升级方法、装置、存储介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112579113A true CN112579113A (zh) | 2021-03-30 |
Family
ID=75109852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910924311.XA Pending CN112579113A (zh) | 2019-09-27 | 2019-09-27 | 应用程序的升级方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579113A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185615A (zh) * | 2021-12-08 | 2022-03-15 | 北京天融信网络安全技术有限公司 | 一种基于审计***的功能扩展方法及装置 |
-
2019
- 2019-09-27 CN CN201910924311.XA patent/CN112579113A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185615A (zh) * | 2021-12-08 | 2022-03-15 | 北京天融信网络安全技术有限公司 | 一种基于审计***的功能扩展方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7908521B2 (en) | Process reflection | |
WO2022111097A1 (zh) | 一种文件更新方法及装置、设备、存储介质 | |
KR20050061378A (ko) | 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법 | |
CN102736978A (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN111475227B (zh) | 业务插件加载实现方法、装置和终端设备 | |
CN106033362A (zh) | 一种闪存分区的处理方法和装置 | |
CN104346206A (zh) | 一种已卸载软件恢复安装的方法和*** | |
CN112130926B (zh) | 应用程序运行的方法、装置、终端设备及存储介质 | |
CN110908734A (zh) | 基于插件化的应用组合方法、装置、终端设备及存储介质 | |
CN113032032A (zh) | 一种***管理方法、装置、计算设备及可读存储介质 | |
US20120036496A1 (en) | Plug-in based high availability application management framework (amf) | |
CN114721809A (zh) | 一种kubernetes集群的应用部署方法及装置 | |
CN112306552A (zh) | 一种***软件版本管理方法、装置及存储介质 | |
CN110737558A (zh) | 自动布署efi shell***执行测试的方法、装置、计算机设备及存储介质 | |
WO2024148863A1 (zh) | 镜像的编译方法、装置、非易失性可读存储介质及电子设备 | |
CN112579113A (zh) | 应用程序的升级方法、装置、存储介质及终端 | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
CN113032183A (zh) | ***管理方法、装置、计算机设备和存储介质 | |
CN112199099A (zh) | 应用更新方法、装置、服务器及存储介质 | |
CN106933604A (zh) | 一种***升级方法及装置 | |
CN113504997B (zh) | 应用程序安装包文件的处理方法、装置、设备及介质 | |
CN112685063B (zh) | 特征库更新方法、装置、网络设备及可读存储介质 | |
CN115617488A (zh) | 操作***迁移方法、装置、计算设备及存储介质 | |
CN113703823A (zh) | 一种bmc固件升级方法、装置、电子设备及存储介质 | |
KR20070060448A (ko) | 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법 |
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 |