一种加载应用和升级应用的方法及终端设备与流程

文档序号:28802277发布日期:2022-02-09 00:15阅读:78来源:国知局
一种加载应用和升级应用的方法及终端设备与流程
一种加载应用和升级应用的方法及终端设备
1.本技术要求于2017年10月09日提交中国专利局、申请号为201710931606.0、申请名称为“一种加载应用和升级应用的方法及终端设备”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及终端技术领域,尤其涉及一种加载应用和升级应用的方法及终端设备。


背景技术:

3.随着终端技术的不断发展,具有操作系统的终端设备越来越多。通常,终端设备厂商和应用(application,app)厂商可以基于终端设备的操作系统开发一些多个应用(包括系统应用和第三方应用)可以通用的功能模块,这些通用的功能模块称为公共特性功能。
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.图1为本技术实施例提供的手机的硬件示意图;
35.图2为本技术实施例提供的加载应用的方法示意图一;
36.图3为本技术实施例提供的加载应用的方法示意图二;
37.图4为本技术实施例提供的各种类加载器之间的关系示意图;
38.图5为本技术实施例提供的生成资源和标识的映射关系(以下均称为idmap)的示意图;
39.图6为本技术实施例提供的升级应用的方法示意图;
40.图7为本技术实施例提供的终端设备的结构示意图一;
41.图8为本技术实施例提供的终端设备的结构示意图二;
42.图9为本技术实施例提供的终端设备的结构示意图三;
43.图10为本技术实施例提供的终端设备的结构示意图四;
44.图11为本技术实施例提供的终端设备的硬件示意图。
具体实施方式
45.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本文中符号“/”表示关联对象是或者的关系,例如a/b表示a或者b。
46.本技术的说明书和权利要求书中的术语“第一”、“第二”和“第三”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一应用、第二应用和第三应用等是用于区别不同的应用,而不是用于描述应用的特定顺序。
47.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或者说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或者更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
48.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上。例如,多个应用是指两个或者两个以上的应用;多个类是指两个或者两个以上的类。
49.下面首先对本技术实施例中涉及到的一些名词或者术语进行解释。
50.公共特性功能:是指终端设备厂商和应用厂商基于终端设备的操作系统开发的一些多个应用(包括系统应用和第三方应用)可以通用的功能模块。
51.系统应用:是指终端设备的操作系统自带的应用。系统应用通常不能卸载或者删除。
52.第三方应用:是指由应用厂商、一些组织或者个人开发的应用。第三方应用通常可以安装、卸载或者删除。
53.类加载器:是指java虚拟机运行应用的类之前,将应用的类加载到java虚拟机中的工具。类加载器包括根类加载器(boot class loader)、系统类加载器(system class loader)和路径类加载器(path class loader)。其中,默认情况下,路径类加载器和系统类加载器的父类加载器均为根类加载器。在软件开发过程中,开发人员可以根据实际使用需求修改路径类加载器的父类加载器,例如本技术实施例中,可以将路径类加载器的父类加载器设置为系统类加载器。
54.系统升级补丁包:是指将基于特定版本开发的应用安装包集合打包后的压缩包。
55.升级补丁包:是指将应用中更新(包括修复和新增)后的某个/某些类中的成员(每个类包括多个成员)生成的压缩包。升级补丁包占用的空间比系统升级补丁包占用的空间小,或者升级补丁包占用的资源比系统升级补丁包占用的资源少。
56.目前,由于应用厂商通常会把公共特性功能打包到应用中,因此如果终端设备中有多个应用使用同一个公共特性功能,那么在启动这些应用的过程中,这个公共特性功能可能会被终端设备的操作系统重复加载多次,这样,使得终端设备的内存占用率比较高,从而影响终端设备的操作系统性能。
57.另外,目前在对应用升级时,由于是将修复问题的应用安装包和新增功能的应用安装包集合打包成一个系统升级补丁包对终端设备的操作系统升级,即该系统升级补丁包中可能包含多个应用安装包,并且每个应用安装包均是在类粒度升级应用的,因此使得系统升级补丁包占用的资源比较大,并且系统升级补丁包的发布周期较长,以及需要重启终端设备的操作系统才能升级,从而导致应用无法快速修复。
58.为了解决上述问题,一方面,本技术实施例提供一种加载应用的方法,在终端设备开机启动后,如果终端设备确定某个应用(例如本技术实施例中的第一应用)为实现公共特性功能的应用(该确定过程可以在终端设备开机启动后扫描该应用之前执行,也可以在终端设备开机启动后扫描该应用之后执行),那么终端设备可以采用系统类加载器将该应用加载到终端设备的内存。由于系统类加载器加载的应用为操作系统级别的应用,因此该操作系统中的其他应用可以共享已被加载到内存中的该应用,从而以使得共享该应用的其他应用启动后可以直接调用内存中的该应用,而在启动共享该应用的其他应用时无需再加载该应用,如此可以避免在启动共享该应用的其他应用时该应用被重复加载多次,能够降低终端设备的内存占用率,提升终端设备的操作系统性能。
59.另一方面,本技术实施例提供一种升级应用的方法,在终端设备确定应用可以升级的情况下,终端设备通过向服务器发送升级补丁请求消息以向服务器请求升级补丁包,在终端设备接收到服务器发送的升级补丁包之后,终端设备采用该升级补丁包,在成员粒度直接升级该应用。一方面,由于终端设备向服务器请求的该升级补丁包是用于在成员粒度升级该应用的,因此,与现有技术中在类粒度(一个类包括多个成员)升级应用相比,本技术实施例中的升级补丁包更小,如此,可以降低升级补丁包占用的资源,并且可以缩短升级补丁包的发布周期,从而使得应用可以快速修复。另一方面,由于本技术实施例中是直接升级应用的,因此与现有技术中通过升级终端设备的操作系统升级应用相比,本技术实施例中升级应用后无需重启终端设备的操作系统,从而使得应用可以更快速地修复。
60.本技术实施例提供的加载应用的方法和升级应用的方法可以应用于终端设备,也可以应用于终端设备中能够实现加载应用和升级应用的功能模块或者功能实体,本技术实施例不作具体限定。
61.下面首先对本技术实施例提供的终端设备的硬件结构进行示例性的描述。
62.具体的,以本技术实施例提供的终端设备是手机为例,结合图1对手机的各个构成部件做具体介绍。
63.示例性的,如图1所示,本技术实施例提供的手机可以包括:处理器10、射频(radio frequency,rf)电路11、电源12、存储器13、输入模块14、显示模块15以及音频电路16等部件。本领域技术人员可以理解,图1中示出的手机的结构并不构成对手机的限定,其可以包
括比如图1所示的部件更多或更少的部件,或者可以组合如图1所示的部件中的某些部件,或者可以与如图1所示的部件布置不同。
64.处理器10是手机的控制中心,利用各种接口和线路连接整个手机的各个部分。通过运行或执行存储在存储器13内的软件程序和/或模块,以及调用存储在存储器13内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器10可包括一个或多个处理模块,例如,处理器10可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调处理器主要处理无线通信等。可以理解的是,上述调制解调处理器也可以为与处理器10单独存在的处理器。
65.rf电路11可用于在收发信息或通话过程中,接收和发送信号。例如,将基站的下行信息接收后,给处理器10处理;另外,将上行的数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,lna)以及双工器等。此外,手机还可以通过rf电路11与网络中的其他设备实现无线通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,gsm)、通用分组无线服务(general packet radio service,gprs)、码分多址(code division multiple access,cdma)、宽带码分多址(wideband code division multiple access,wcdma)、长期演进(long term evolution,lte)、电子邮件以及短消息服务(short messaging service,sms)等。
66.电源12可用于给手机的各个部件供电,电源12可以为电池。可选的,电源可以通过电源管理系统与处理器10逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
67.存储器13可用于存储软件程序和/或模块,处理器10通过运行存储在存储器13的软件程序和/或模块,从而执行手机的各种功能应用以及数据处理。存储器13可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、图像数据、电话本等)等。此外,存储器13可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件或其他易失性固态存储器件。
68.输入模块14可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入模块14可包括触摸屏141以及其他输入设备142。触摸屏141,也称为触摸面板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触摸屏141上或在触摸屏141附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触摸屏141可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器10,并能接收处理器10发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏141。其他输入设备142可以包括但不限于物理键盘、功能键(比如音量控制按键、电源开关按键等)、轨迹球、鼠标以及操作杆等中的一种或多种。
69.显示模块15可用于显示由用户输入的信息或提供给用户的信息以及手机的各种
菜单。显示模块15可包括显示面板151。可选的,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板151。进一步的,触摸屏141可覆盖显示面板151,当触摸屏141检测到在其上或附近的触摸操作后,传送给处理器10以确定触摸事件的类型,随后处理器10根据触摸事件的类型在显示面板151上提供相应的视觉输出。虽然在图1中,触摸屏141与显示面板151是作为两个独立的部件来实现手机的输入和输出功能,但是在某些实施例中,可以将触摸屏141与显示面板151集成而实现手机的输入和输出功能。
70.音频电路16、扬声器161和麦克风162,用于提供用户与手机之间的音频接口。一方面,音频电路16可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路16接收后转换为音频数据,再将音频数据通过处理器10输出至rf电路11以发送给比如另一手机,或者将音频数据通过处理器10输出至存储器13以便进一步处理。
71.可选的,如图1所示的手机还可以包括各种传感器。例如陀螺仪传感器、湿度计传感器、红外线传感器、磁力计传感器等,在此不再赘述。
72.可选的,如图1所示的手机还可以包括wi-fi模块、蓝牙模块等,在此不再赘述。
73.下面再以本技术实施例提供的加载应用和升级应用的方法应用于终端设备为例,介绍本技术实施例提供的加载应用和升级应用的方法。
74.如图2所示,本技术实施例提供一种加载应用的方法,该方法可以包括下述的s101-s107。
75.s101、终端设备开机启动。
76.首先,终端设备开机启动。
77.s102、终端设备扫描第一应用。
78.终端设备开机启动后,依次扫描终端设备中的各个应用。该各个应用包括系统应用和第三方应用,通常,终端设备先扫描各个系统应用,然后再扫描各个第三方应用。
79.其中,本技术实施例中的第一应用可以为终端设备中的系统应用之一,也可以为终端设备中的第三方应用之一。具体的,可以根据实际使用需求确定,本技术实施例不作限定。
80.s103、终端设备确定第一应用为实现公共特性功能的应用。
81.需要说明的是,本技术实施例可以不限定s102和s103的执行顺序。即本技术实施例可以先执行s102,后执行s103;也可以先执行s103,后执行s102;还可以同时执行s102和s103。具体的执行顺序将在下述实施例中对s103的描述中进行详细的地明。其中,图2是以s103在s102之后执行示意的。
82.可选的,本技术实施例中,终端设备可以将公共特性功能设计为通过系统应用或者第三方应用实现,并将该系统应用或者第三方应用预置到终端设备的操作系统的目录下,这样,在终端设备开机启动后,终端设备通过扫描各个系统应用或者第三方应用就可以扫描到该公共特性功能。
83.可选的,本技术实施例中,公共特性功能可以为美颜功能、动画特效功能、定位功能、搜索功能、人脸识别功能、指纹识别功能、计时功能、翻译功能、播放功能以及语音功能等被多个应用共享的功能。
84.可以理解,上述公共特性功能的列举是示例性的列举,具体可以根据实际使用情况确定,本技术实施例不作限定。
85.可选的,本技术实施例中,上述s103中,终端设备确定第一应用为实现公共特性功能的应用的方法可以为下述的一种:
86.(1)终端设备根据预定义的公共特性功能列表中包括的第一应用的标识,确定第一应用为实现公共特性功能的应用。
87.可以理解,在(1)中,本技术实施例可以先执行s103,后执行s102。具体的,在执行s102时,如果终端设备确定当前扫描的应用为第一应用,即终端设备当前扫描第一应用,那么终端设备可以继续执行下述的s104。
88.(2)终端设备查询预定义的公共特性功能列表中是否包括第一应用的标识;在该公共特性功能列表中包括第一应用的标识的情况下,终端设备确定第一应用为实现公共特性功能的应用;在该公共特性功能列表中不包括第一应用的标识的情况下,终端设备确定第一应用不是实现公共特性功能的应用。
89.可以理解,在(2)中,本技术实施例可以先执行s102,后执行s103。具体的,在执行s102时,如果终端设备确定当前扫描的第一应用的标识在预定义的公共特性功能列表中,那么终端设备可以确定第一应用为实现公共特性功能的应用,此时终端设备可以继续执行下述的s104。
90.本技术实施例中,可以预定义一个公共特性功能列表,并将实现各个公共特性功能的应用的标识,例如第一应用的标识添加到该公共特性功能列表中。该公共特性功能列表可以预置到终端设备的操作系统的目录下。这样,在上述(1)中,终端设备可以通过读取公共特性功能列表中包括的各个应用(包括第一应用)的标识,确定第一应用为实现公共特性功能的应用;在上述(2)中,终端设备可以通过查询公共特性功能列表中是否包括当前扫描的应用(例如第一应用)的标识,确定第一应用是否为实现公共特性功能的应用。
91.可以理解,上述公共特性功能列表只是示例性的说明,实际实现时,还可以通过配置文件等方式实现。具体的,可以根据实际使用需求确定,本技术实施例不作限定。
92.下面以上述列举的几种公共特性功能为例,结合表1对本技术实施例提供的公共特性功能进行描述。
93.表1
94.应用的标识公共特性功能app1美颜功能app2动画特效功能app3定位功能app4搜索功能app5人脸识别功能app6指纹识别功能app7计时功能app8翻译功能app9播放功能app10语音功能
95.如表1所示的公共特性功能列表中,实际实现时,表1可以只包括应用的标识,即表1中的公共特性功能一栏是对系统应用实现的公共特性功能的解释。实际实现时,可以预先定义好各个应用具体用于实现哪一个公共特性功能。这样,终端设备可以通过读取预定义的公共特性功能列表中的某个应用的标识确定该应用为实现公共特性功能的应用;或者在终端设备扫描某个应用时,如果终端设备在预定义的公共特性功能列表中查找到该应用的标识,那么终端设备可以确定该应用为实现公共特性功能的应用。
96.示例性的,结合表1,以s103在s102之后执行为例,假设公共特性功能是app3实现的定位功能,在终端设备扫描app3时,如果终端设备在表1中查找到app3的标识(例如为app3),那么终端设备可以确定app3为实现公共特性功能的应用。具体的,终端设备在扫描app3的过程中,通过解析app3的各个资源和各个属性,可以确定app3具体为实现定位功能的应用。
97.可以理解,本技术实施例中,对于上述表1中的其他公共特性功能,其确定方法可以与上述列举的app3的确定方法类似,此处不再一一列举。
98.可选的,本技术实施例中,上述第一应用的标识能够唯一标识第一应用。该第一应用的标识可以为第一应用的名称,也可以为第一应用安装的地址,还可以为其他能够唯一标识第一应用的数字、汉字、字母、字符、字符串以及序列号等中的一个或者多个的组合。具体的,可以根据实际使用需求设定,本技术实施例不作限定。
99.(3)终端设备读取第一应用的第一属性,第一属性用于指示第一应用是否为实现公共特性功能的应用;在第一属性指示第一应用为实现公共特性功能的应用的情况下,终端设备确定第一应用为实现公共特性功能的应用;在第一属性指示第一应用不是实现公共特性功能的应用的情况下,终端设备确定第一应用不是实现公共特性功能的应用。
100.可以理解,由于第一应用的属性是在扫描第一应用的过程中解析出来的,因此在(3)中,本技术实施例可以先执行s102,后执行s103。
101.本技术实施例中,每个应用都有很多属性,其中,多个属性中的第一属性可以用于指示该应用是否为实现公共特性功能的应用。这样,终端设备可以通过读取每个应用的第一属性,确定所读取的应用是否为实现公共特性功能的应用。
102.可选的,以本技术实施例中的第一应用为例,上述第一属性可以为第一应用的资源库(library)属性,由于资源库属性通常可以被各个应用共享,因此本技术实施例可以通过设置第一应用的资源库属性来指示第一应用是否为实现公共特性功能的应用。
103.具体的,该资源库属性中包括名称(name)字段,本技术实施例可以通过将资源库属性中的名称字段设置为应用的名称,以使得该应用可以被其他各个应用共享,即使得该应用实现的功能为一个公共特性功能。即仍以本技术实施例中的第一应用为例,可以通过将第一应用的资源库属性中的名称字段设置为第一应用的名称,以使得第一应用可以被其他各个应用共享,即使得第一应用实现的功能为一个公共特性功能。
104.示例性的,以上述列举的公共特性功能中的美颜功能为例,本技术实施例中,可以通过将实现美颜功能的应用的资源库属性中的名称字段设置为该应用的名称,从而以使得该应用可以被其他各个应用共享,即使得该应用实现的美颜功能为一个公共特性功能。
105.需要说明的是,本技术实施例中,上述应用的名称也可以为上述列举的能够唯一标识该应用的其他标识。对于应用的标识的描述具体可以参见上述(1)中对应用的标识的
相关描述,此处不再赘述。
106.本技术实施例中,如果终端设备确定第一应用为实现公共特性功能的应用,那么终端设备可以继续执行下述的s104和s105。
107.本技术实施例中,由于终端设备扫描某个应用后,通常默认采用路径类加载器加载该应用,因此如果终端设备确定第一应用不是实现公共特性功能的应用,也就是说第一应用是普通应用,其无需全局加载,那么终端设备可以默认采用路径类加载器将该第一应用加载到终端设备的内存。
108.需要说明的是,本技术实施例中,每个应用都包括多个类,以第一应用为例,第一应用也包括多个类,上述终端设备采用路径类加载器将第一应用加载到终端设备的内存是指终端设备将第一应用的多个类的类名加载到终端设备的内存(这个过程也称为预加载),在具体使用第一应用的时候,终端设备才将多个类的内容加载到内存。
109.s104、终端设备采用系统类加载器将第一应用加载到终端设备的内存。
110.本技术实施例中,由于系统类加载器加载的内容通常为操作系统级别,即系统类加载器加载的内容可以被操作系统下的所有应用共享,因此,本技术实施例采用系统类加载器加载公共特性功能,可以使得已被加载的该公共特性功能被终端设备中的所有应用共享,从而实现该公共特性功能被全局加载的目的。
111.可以理解,在s104中,终端设备也是将第一应用的多个类的类名加载到终端设备的内存(这个过程也称为预加载),并在具体使用第一应用的时候,终端设备才将多个类的内容加载到内存。
112.可以理解,本技术实施例中,上述s102-s104是以终端设备扫描和确定实现一个公共特性功能的一个应用(即上述的第一应用)为例说明的,对于终端设备中实现其他公共特性功能的其他应用,终端设备扫描和确定的方法均与终端设备扫描和确定上述第一应用的方法类似,本技术实施例不作具体限定。
113.s105、终端设备依次扫描其他各个应用。
114.其中,s105中的各个应用可以包括系统应用和第三方应用。
115.可以理解,如果s101-s104中的第一应用为系统应用,那么本技术实施例可以先执行s101-s104,后执行s105;并且在执行s105时,可以先扫描除第一应用之外的其他系统应用,然后再扫描所有的第三方应用。如果s101-s104中的第一应用为第三方应用,那么本技术实施例可以先执行s105扫描所有的系统应用,再执行s101-s104,然后再执行s105扫描除第一应用之外的其他第三方应用。其中,图2是以s105在s101-s104之后执行为例示意的。
116.本技术实施例提供的加载应用的方法,在终端设备开机启动后,如果终端设备确定某个应用(例如本技术实施例中的第一应用)为实现公共特性功能的应用(该确定过程可以在终端设备开机启动后扫描该应用之前执行,也可以在终端设备开机启动后扫描该应用之后执行),那么终端设备可以采用系统类加载器将该第一应用加载到终端设备的内存。由于系统类加载器加载的第一应用为操作系统级别的应用,因此该操作系统中的其他应用可以共享已被加载到内存中的该第一应用,从而以使得共享该第一应用的其他应用启动后可以直接调用内存中的该第一应用,而在启动共享该第一应用的其他应用时无需再加载该第一应用,如此可以避免在启动共享该第一应用的其他应用时该第一应用被重复加载多次,能够降低终端设备的内存占用率,提升终端设备的操作系统性能。
117.可选的,结合图2,如图3所示,在上述s105之后,本技术实施例提供的加载应用的方法还可以包括下述的s106-s111。
118.s106、终端设备启动第二应用。
119.其中,第二应用可以为终端设备中调用第一应用的应用(即第二应用为终端设备中使用第一应用实现的公共特性功能的应用),也可以为终端设备中没有调用第一应用的应用(即第二应用为终端设备中没有使用第一应用实现的公共特性功能的应用)。
120.s107、终端设备创建第二应用的路径类加载器。
121.由于通常情况下,终端设备是默认采用路径类加载器加载应用的,因此在终端设备启动第二应用时,终端设备首先创建第二应用的路径类加载器。
122.s108、终端设备确定第二应用是否为终端设备中调用第一应用的应用。
123.本技术实施例中,如果终端设备确定第二应用为终端设备中没有调用第一应用的应用,那么终端设备可以继续执行下述的s109;如果终端设备确定第二应用为终端设备中调用第一应用的应用,那么终端设备可以继续执行下述的s110和s111。
124.s109、终端设备采用路径类加载器将第二应用加载到终端设备的内存。
125.下面实施例以第二应用为终端设备中调用第一应用的应用为例,对第一应用和第二应用进行示例性的说明。
126.可以理解,本技术实施例中,如果第二应用为终端设备中调用第一应用的应用,那么可以在第二应用中预置第一应用的标识(例如第一应用的名称),这样,终端设备可以通过预置在第二应用中的标识调用第一应用,从而为用户提供第一应用实现的公共特性功能。并且,由于第二应用中预置的是第一应用的标识,并不是第一应用的实现代码,因此终端设备在加载第二应用时无需再加载第一应用。
127.示例性的,以上述s103中列举的公共特性功能为例,假设第一应用实现的公共特性功能为美颜功能,那么第二应用可以为使用美颜功能的任意应用,例如第二应用可以为相机类应用、健康类应用或者运动类应用等。
128.又假设第一应用实现的公共特性功能为动画特效功能,那么第二应用可以为使用动画特效功能的任意应用,例如第二应用可以为相机类应用、地图类应用、天气类应用、购物类应用、运动类应用、媒体类应用、浏览器类应用或者健康类应用等。
129.又假设第一应用实现的公共特性功能为定位功能,那么第二应用可以为使用定位功能的任意应用,例如第二应用可以为地图类应用、天气类应用、购物类应用或者运动类应用等。
130.又假设第一应用实现的公共特性功能为搜索功能,那么第二应用可以为使用搜索功能的任意应用,例如第二应用可以为媒体类应用、阅读类应用或者浏览器类应用等。
131.又假设第一应用实现的公共特性功能为人脸识别功能,那么第二应用可以为使用人脸识别功能的任意应用,例如第二应用可以为相机类应用、支付类应用、健康类应用、运动类应用或者银行类应用等。
132.又假设第一应用实现的公共特性功能为指纹识别功能,那么第二应用可以为使用指纹识别功能的任意应用,例如第二应用可以为锁屏类应用、支付类应用或者安全隐私工具类应用等。
133.又假设第一应用实现的公共特性功能为计时功能,那么第二应用可以为使用计时
功能的任意应用,例如第二应用可以为时钟类应用、出行类应用、健康类应用、运动类应用或者邮箱类应用等。
134.又假设第一应用实现的公共特性功能为翻译功能,那么第二应用可以为使用翻译功能的任意应用,例如第二应用可以为阅读类应用或者学习类应用等。
135.又假设第一应用实现的公共特性功能为播放功能,那么第二应用可以为使用播放功能的任意应用,例如第二应用可以为购物类应用、媒体类应用或者浏览器类应用等。
136.又假设第一应用实现的公共特性功能为语音功能,那么第二应用可以为使用语音功能的任意应用,例如第二应用可以为地图类应用、媒体类应用、浏览器类应用或者社交类应用等。
137.可以理解,本技术实施例中,上述例子中列举的某些第二应用可以为系统应用,也可以为第三方应用。例如,上述相机类应用可以为系统相机类应用或者第三方相机类应用;上述地图类应用可以为系统地图类应用或者第三方地图类应用;上述天气类应用可以为系统天气类应用或者第三方天气类应用等,具体的可以根据实际情况确定,本技术实施例不作限定。
138.s110、终端设备设置第二应用的路径类加载器的父类加载器为系统类加载器。
139.本技术实施例中,根据类加载的双亲委派机制,终端设备在加载类时首先采用系统类加载器查找要加载的类,如果系统类加载器没有查找到要加载的类,那么才由应用的路径类加载器查找和加载。依据这个原理,由于上述s104中,终端设备在预加载第一应用时是采用系统类加载器加载的,因此为了使得第二应用启动后,终端设备可以基于第二应用查找到第一应用,即使得第二应用能够通过调用第一应用正常为用户提供第一应用实现的公共特性功能,那么本技术实施例中,终端设备在创建第二应用的路径类加载器之后,终端设备可以将路径类加载器的父类加载器设置为系统类加载器,以使得终端设备可以根据类加载的双亲委派机制,直接采用系统类加载器将第二应用加载到终端设备的内存。即如下述s111所述,终端设备采用系统类加载器将第二应用加载到终端设备的内存。
140.s111、终端设备采用系统类加载器将第二应用加载到终端设备的内存。
141.本技术实施例中,终端设备采用系统类加载器将第二应用加载到终端设备的内存,能够使得第二应用启动后,终端设备可以基于第二应用查找到第一应用(第一应用也是通过系统类加载器加载到终端设备的内存的),即使得第二应用能够通过调用第一应用正常为用户提供第一应用实现的公共特性功能。
142.示例性的,仍以第一应用实现上述美颜功能,第二应用是相机类应用为例,终端设备采用系统类加载器加载实现美颜功能的第一应用和调用第一应用的相机类应用之后,终端设备可以基于相机类应用查找到实现美颜功能的第一应用,从而保证相机类应用能够通过调用第一应用正常为用户提供第一应用实现的美颜功能。
143.下面以图4为例介绍一下本技术实施例中的各种类加载器。如图4所示,为本技术实施例提供的终端设备中的各种类加载器之间的关系示意图。在图4中,路径类加载器的父类加载器(图4中表示为父)为系统类加载器或者根类加载器(默认情况下,路径类加载器的父类加载器为根类加载器),系统类加载器的父类加载器为根类加载器。路径类加载器用于加载普通应用(例如如图4中的music.apk和bluetooth.apk,music.apk表示安卓操作系统中的音乐安装包,bluetooth.apk表示安卓操作系统中的蓝牙安装包)和系统服务(例如如
图4中的services.jar,services.jar表示安卓操作系统中的一个服务)等。系统类加载器用于加载实现公共特性功能的应用,如本技术实施例中的第一应用(例如如图4中的feature.apk,feature.apk表示安卓操作系统中的公共特性功能)。根类加载器用于加载安卓操作系统的系统框架,如安卓操作系统中的核心库层(例如如图4中的libcore.jar)和框架层(例如如图4中的framework.jar)等。
144.可选的,结合图2,在上述s105之后,本技术实施例提供的加载应用的方法还可以包括下述的s112-s117。
145.s112、终端设备向服务器发送升级补丁请求消息。
146.s113、服务器接收终端设备发送的升级补丁请求消息。
147.本技术实施例中,一种可能的实现方式是,当终端设备确定终端设备中运行的应用,例如本技术实施例中的第三应用出现异常时,终端设备确定升级该第三应用,此时终端设备可以触发执行s112-s117。
148.另一种可能的实现方式是,终端设备可以以预定义的第一时间为周期,定时检查服务器上是否有应用,例如本技术实施例中的第三应用的升级补丁包,当终端设备确定服务器上有该第三应用的升级补丁包时,终端设备确定升级该第三应用,此时终端设备可以触发执行s112-s117。
149.可选的,上述另一种可能的实现方式中,预定义的第一时间可以为预定义的任意时间,例如一天、一周或者一个月等,具体的可以根据实际使用需求定义,本技术实施例不作限定。
150.其中,该升级补丁请求消息用于向服务器请求升级补丁包。该升级补丁包用于在成员粒度直接升级第三应用,第三应用为终端设备中的系统应用。
151.由于第三方应用通常可以从应用商店(app store)下载,因此本技术实施例中的第三应用主要是指系统应用。
152.本技术实施例中,每个应用包括多个类,每个类包括多个成员。上述升级补丁包中可以包括至少一个成员,其中,当成员数量为多个时,多个成员可以是不同类中的成员。本技术实施例中,在采用上述升级补丁包升级第三应用的时候,可以在成员粒度升级第三应用,即可以只对需要升级的成员进行升级即可,无需再对这些成员所在的整个类进行升级。例如,可以用升级补丁包中的一个成员替换第三应用中需要修复的成员,和/或在第三应用中新增升级补丁包中的一个成员。与现有技术中在类粒度升级应用相比,本技术实施例中的升级补丁包更小,如此,可以降低升级补丁包占用的资源,并且可以缩短升级补丁包的发布周期,进而使得第三应用可以快速修复。
153.另外,由于本技术实施例中是直接升级第三应用的,因此与现有技术通过升级终端设备的操作系统升级应用相比,本技术实施例中升级第三应用后无需重启终端设备的操作系统,从而使得第三应用可以更快速地修复。
154.可选的,本技术实施例中,该升级补丁请求消息中可以包括第三应用的当前版本信息。该第三应用的当前版本信息能够唯一标识该第三应用的当前版本。该第三应用的当前版本信息可以为数字、汉字、字母、字符串以及序列号等中的一个或者多个的组合。具体的,可以根据实际使用需求确定,本技术实施例不作限定。
155.可选的,本技术实施例中,上述升级补丁包中可以包括至少一个资源和至少一个
标识。其中,每个标识用于唯一标识一个资源。(第一资源也可以称为第三应用的修复资源),第二资源为第三应用的新增资源(即第二资源为在第三应用的原有资源的基础上新增的资源)。
156.需要说明的是,本技术实施例中,上述升级补丁包中用于标识一个资源的标识可以认为是一个成员,即该升级补丁包中包括至少一个成员。
157.可选的,本技术实施例中,上述资源可以为数字、文字(包括字符和字母等)、图片和文件(包括各种格式的文件)中的一个或者多个的组合。具体的,可以根据实际使用需求确定,本技术实施例不作限定。
158.上述用于唯一标识资源的标识可以为资源的名称,也可以为资源的存放地址,还可以为其他能够唯一标识资源的数字、汉字、字母、字符、字符串以及序列号等中的一个或者多个的组合。具体的,可以根据实际使用需求确定,本技术实施例不作限定。
159.示例性的,仍以第三应用为例,如图5所示,为本技术实施例提供的生成idmap的示意图(由于资源的特殊性,图5仅示出了用于唯一标识资源的标识,而未示出资源)。在图5中,a部分表示第三应用中用于标识原有资源的标识的代码;b部分表示升级补丁包中用于标识第三应用的修复资源和第三应用的新增资源的标识的代码,具体的,b1表示第三应用的修复资源的标识的代码,b2表示第三应用的新增资源的标识的代码。采用本技术实施例提供的升级应用的方法,当采用升级补丁包,在成员粒度对第三应用升级时,通过生成并扩展idmap,并且执行该idmap中的代码,可以实现用第三应用的修复资源替换第三应用的原有资源,并且将第三应用的新增资源添加到第三应用中其他资源的后面,例如,如图5中的c部分所示,为生成并扩展的idmap的示意图,在该idmap中,通过执行c1和c3可以实现在a部分中用b1替换a1,通过执行c2和c3可以实现在a部分中新增b2。一方面,由于终端设备向服务器请求的升级补丁包是用于在成员(例如如图5所示的b1和b2)粒度升级第三应用的,因此,与现有技术中在类粒度(一个类包括多个成员)升级应用相比,本技术实施例中的升级补丁包更小,如此,可以降低升级补丁包占用的资源,并且可以缩短升级补丁包的发布周期,从而使得第三应用可以快速修复。另一方面,由于本技术实施例中是直接升级第三应用的,因此与现有技术中通过升级终端设备的操作系统升级应用相比,本技术实施例中升级第三应用后无需重启终端设备的操作系统,从而使得第三应用可以更快速地修复。
160.可以理解,上述图5中,如果认为a是一个类,那么a1、b1和b2可以认为是三个成员。
161.s114、服务器根据升级补丁请求消息中的第三应用的当前版本信息,查找与该当前版本信息对应的升级补丁包。
162.本技术实施例中,服务器上可以存储多个应用的版本信息和多个升级补丁包之间的映射关系。该多个应用的版本信息和多个升级补丁包之间的映射关系可以包括上述第三应用的当前版本信息和上述升级补丁包之间的映射关系。这样,当服务器接收到终端设备发送的升级补丁请求消息之后,服务器可以根据该升级补丁请求消息中的第三应用的当前版本信息,在服务器上查找与该当前版本信息对应的升级补丁包。
163.示例性的,以第三应用的当前版本信息是上述s113中列举的数字和字母的组合为例,结合表2,对第三应用的当前版本信息和升级补丁包之间的映射关系进行说明。
164.表2
165.第三应用的当前版本信息升级补丁包
v1升级补丁包1v2升级补丁包2v3升级补丁包3v4升级补丁包4
166.如表2所示,假设服务器接收到的升级补丁请求消息中携带的第三应用的当前版本信息为v2,那么服务器可以在表2中查找与v2对应的升级补丁包,例如服务器在表2中查找到与v2对应的升级补丁包2,然后服务器再将升级补丁包2发送给终端设备,以使得终端设备采用升级补丁包2升级第三应用。如此,可以避免对第三应用升级时由于版本不对应而出现错误的现象。
167.s115、在服务器查找到与该当前版本信息对应的该升级补丁包的情况下,服务器向终端设备发送该升级补丁包。
168.可以理解,本技术实施例中,在服务器没有查找到与第三应用的当前版本信息对应的升级补丁包的情况下,服务器可以丢弃终端设备发送的升级补丁请求消息。并且,服务器还可以向终端设备发送升级补丁响应消息,以通知终端设备没有查找到与第三应用的当前版本信息对应的升级补丁包;或者终端设备也可以不向终端设备发送任何消息,这样,当终端设备发送升级补丁请求消息之后,如果超过一定时间既没有接收到服务器发送的与第三应用的当前版本信息对应的升级补丁包,也没有接收到服务器发送的升级补丁响应消息,那么终端设备可以认为服务器上没有与第三应用的当前版本信息对应的升级补丁包。
169.s116、终端设备接收服务器发送的该升级补丁包。
170.s117、终端设备采用该升级补丁包,在成员粒度直接升级第三应用。
171.终端设备接收到服务器发送的升级补丁包之后,终端设备可以采用该升级补丁包,在成员粒度直接升级第三应用,以修复第三应用的原有资源,和/或为第三应用增加第三应用的新增资源。
172.可以理解,本技术实施例中,第三应用和第二应用可以为相同的应用,也可以为不同的应用。具体的,当第二应用为系统应用时,第三应用和第二应用可以为相同的应用。
173.需要说明的是,本技术实施例是以s112-s117在s105之后执行为例说明的,实际实现中,s112-s117也可以在s111之后执行,本技术实施例不作具体限定。
174.本技术实施例提供的升级应用的方法,在终端设备确定第三应用可以升级的情况下,终端设备通过向服务器发送升级补丁请求消息以向服务器请求升级补丁包,在终端设备接收到服务器发送的升级补丁包之后,终端设备采用该升级补丁包,在成员粒度直接升级该第三应用。一方面,由于终端设备向服务器请求的该升级补丁包是用于在成员粒度升级该第三应用的,因此,与现有技术中在类粒度(一个类包括多个成员)升级应用相比,本技术实施例中的升级补丁包更小,如此,可以降低该升级补丁包占用的资源,并且可以缩短升级补丁包的发布周期,从而使得第三应用可以快速修复。另一方面,由于本技术实施例中是直接升级第三应用的,因此与现有技术通过升级终端设备的操作系统升级应用相比,本技术实施例中升级第三应用后无需重启终端设备的操作系统,从而使得第三应用可以更快速地修复。
175.可选的,本技术实施例提供的加载应用的方法还可以包括下述的s118-s119。
176.s118、服务器根据第三应用的当前版本信息,查找已过期的升级补丁包。
177.s119、在服务器查找到已过期的升级补丁包的情况下,服务器删除已过期的升级补丁包。
178.可选的,本技术实施例中,服务器可以在终端设备发送的升级补丁请求消息的触发下(例如上述s113的触发下)执行s118-s119;也可以以预定义的第二时间为周期,定期执行s118-s119。具体的,可以根据实际使用需求确定,本技术实施例不作限定。
179.上述预定义的第二时间可以为预定义的任意时间,例如一天、一周或者一个月等,具体的可以根据实际使用需求定义,本技术实施例不作限定。
180.本技术实施例中,上述已过期的升级补丁包是指与第三应用的当前版本信息不对应的升级补丁包,例如可以是与第三应用的当前版本信息之前的某个/某些版本信息对应的升级补丁包。示例性的,假设第三应用的当前版本信息为v2,v2之前的版本信息为v1,与v1对应的升级补丁包即为已过期的升级补丁包。
181.本技术实施例中,服务器通过删除服务器上已过期的升级补丁包,可以节省服务器的存储空间。
182.如图6所示,本技术实施例还提供一种升级应用的方法,该方法可以包括下述的s201-s206。
183.s201、终端设备向服务器发送升级补丁请求消息。
184.s202、服务器接收终端设备发送的升级补丁请求消息。
185.s203、服务器根据升级补丁请求消息中的第三应用的当前版本信息,查找与该当前版本信息对应的升级补丁包。
186.s204、在服务器查找到与该当前版本信息对应的该升级补丁包的情况下,服务器向终端设备发送该升级补丁包。
187.s205、终端设备接收服务器发送的该升级补丁包。
188.s206、终端设备采用该升级补丁包,在成员粒度直接升级第三应用。
189.对于s201-s206的描述具体可以参见上述实施例中对s112-s117的相关描述,此处不再赘述。
190.可选的,本技术实施例提供的升级应用的方法还可以包括下述的s207-s208。
191.s207、服务器根据第三应用的当前版本信息,查找已过期的升级补丁包。
192.s208、在服务器查找到已过期的升级补丁包的情况下,服务器删除已过期的升级补丁包。
193.对于s207-s208的描述具体可以参见上述实施例中对s118-s119的相关描述,此处不再赘述。
194.上述实施例主要从终端设备的角度对本技术实施例提供的方案进行了介绍。可以理解的是,本技术实施例提供的终端设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员可以很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法实现所描述的功能,但是这种实现不应认为超出本技术的范围。
195.本技术实施例可以根据上述方法示例性的对终端设备等进行功能模块的划分。例
如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
196.在采用对应各个功能划分各个功能模块的情况下,图7示出了本技术实施例提供的终端设备的一种可能的结构示意图。如图7所示,该终端设备可以包括:启动模块20、扫描模块21、确定模块22和加载模块23。启动模块20可以用于支持该终端设备执行上述方法实施例中终端设备执行的s101和s106;扫描模块21可以用于支持该终端设备执行上述方法实施例中终端设备执行的s102和s105;确定模块22可以用于支持该终端设备执行上述方法实施例中终端设备执行的s103和s108;加载模块23可以用于支持该终端设备执行上述方法实施例中终端设备执行的s104、s109和s111。可选的,结合图7,如图8所示,本技术实施例提供的终端设备还可以包括创建模块24和设置模块25。创建模块24可以用于支持该终端设备执行上述方法实施例中终端设备执行的s107;设置模块25可以用于支持该终端设备执行上述方法实施例中终端设备执行的s110。
197.可选的,结合图7,本技术实施例提供的终端设备还可以包括发送模块、接收模块和升级模块。发送模块可以用于支持该终端设备执行上述方法实施例中终端设备执行的s112;接收模块可以用于支持该终端设备执行上述方法实施例中终端设备执行的s116;升级模块可以用于支持该终端设备执行上述方法实施例中终端设备执行的s117。可以理解,上述各个功能模块还可以执行本技术实施例描述的技术的其他过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
198.可选的,如图9所示,本技术实施例提供的终端设备可以包括发送模块30、接收模块31和升级模块32。发送模块30可以用于支持该终端设备执行上述方法实施例中终端设备执行的s201;接收模块31可以用于支持该终端设备执行上述方法实施例中终端设备执行的s205;升级模块32可以用于支持该终端设备执行上述方法实施例中终端设备执行的s206。可以理解,上述各个功能模块还可以执行本文描述的技术的其它过程。
199.在采用集成的功能模块的情况下,图10示出了本技术实施例提供的终端设备的一种可能的结构示意图。如图10所示,该终端设备可以包括:处理模块40和存储模块41。处理模块40可以用于对该终端设备的动作进行控制管理,例如,处理模块40可以用于支持该终端设备执行上述方法实施例中终端设备执行的s101、s102、s103、s104、s105、s106、s107、s108、s109、s110、s111和s117,和/或本文所描述的技术的其它过程。存储模块41用于存储该终端设备的程序代码和数据。可选的,如图10所示,该终端设备还可以包括通信模块42,通信模块42可以用于支持该终端设备与其他设备的通信,例如通信模块42可以用于支持该终端设备与其他终端设备的交互。本技术实施例中,该通信模块42可以用于支持该终端设备执行上述方法实施例中终端设备执行的s112和s116,和/或本文所描述的技术的其它过程。
200.可选的,如图10所示,处理模块40可以用于支持该终端设备执行上述方法实施例中终端设备执行的s206,和/或本文所描述的技术的其它过程。通信模块42可以用于支持该终端设备执行上述方法实施例中终端设备执行的s201和s205,和/或本文所描述的技术的其它过程。
201.其中,处理模块40可以是处理器或控制器,例如可以是中央处理器(central processing unit,cpu),通用处理器,数字信号处理器(digital signal processor,dsp),专用集成电路(application-specific integrated circuit,asic),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。存储模块41可以是存储器,该存储器可以包括普通存储器和内存,普通存储器用于存储终端设备的软件程序和/或模块,内存用于处理器加载和运行终端设备的软件程序。通信模块42可以是收发器、收发电路或通信接口等。
202.示例性的,该处理模块40可以是上述如图1所示的处理器10。存储模块41可以是上述如图1所示的存储器13。通信模块42可以是上述如图1所示的rf电路11和/或输入模块14等。
203.当处理模块40是处理器、存储模块41是存储器,通信模块42是收发器时,如图11所示,为本技术实施例提供的一种终端设备的硬件示意图。如图11所示,该终端设备包括处理器50、存储器51和收发器52。处理器50、存储器51和收发器52可以通过总线53相互连接。总线53可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线53可以分为地址总线、数据总线、控制总线等。
204.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state drives,ssd))等。
205.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
206.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元
或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
207.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
208.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
209.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
210.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1