CN108762772A - 应用的加载方法及装置 - Google Patents
应用的加载方法及装置 Download PDFInfo
- Publication number
- CN108762772A CN108762772A CN201810427064.8A CN201810427064A CN108762772A CN 108762772 A CN108762772 A CN 108762772A CN 201810427064 A CN201810427064 A CN 201810427064A CN 108762772 A CN108762772 A CN 108762772A
- Authority
- CN
- China
- Prior art keywords
- installation kit
- newly
- android installation
- routing information
- itself
- 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/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)
- Stored Programmes (AREA)
Abstract
本发明提出一种应用的加载方法及装置,其中,应用的加载方法包括:第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送至后台应用管理进程中,所述包名用于唯一标识一个应用;所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息;所述第二进程将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。该应用的加载方法及装置,能够实现对具备多个安卓安装包APK文件的应用的动态加载。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用的加载方法及装置。
背景技术
InstantApp技术是2016年Google推出的一种免安装应用技术,用户可以通过网址启动InstantApp,无需安装该应用。InstantApp与传统的应用(Application,简称App)的一个不同之处在于:传统的App只具备一个安卓安装包(Android package,简称APK)文件;而InstantApp将整个App拆分成多个APK文件。每个InstantApp具备一个Base APK文件和多个Feature APK文件,其中所有Feature APK文件都依赖于Base APK文件,但不同的FeatureAPK文件之间相互独立。
现有技术中,各产品只支持具备单个APK文件的普通应用的动态加载,无法实现对具备多个APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种应用的加载方法,以实现对具备多个APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
本发明的第二个目的在于提出一种应用的加载装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
本发明的第五个目的在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种应用的加载方法,包括:
第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送至后台应用管理进程中,所述包名用于唯一标识一个应用;
所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息;
所述第二进程将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
本发明实施例的应用的加载方法,第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中,使得第二进程能够从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并更新至类加载器的类加载路径中,进而使得类加载器能够根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载,从而实现对具备多个安卓安装包APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
为达上述目的,本发明第二方面实施例提出了一种应用的加载装置,包括:
安装模块,用于通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理模块中,所述包名用于唯一标识一个应用;
所述后台应用管理模块,用于通过后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
加载模块,用于通过第二进程从所述后台应用管理模块中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
本发明实施例的应用的加载装置,安装模块通过第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理模块中,使得加载模块能够从后台应用管理模块中获取与自身应用对应的新增安卓安装包的路径信息,并更新至类加载器的类加载路径中,进而使得类加载器能够根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载,从而实现对具备多个安卓安装包APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以用于:
通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理进程中,所述包名用于唯一标识一个应用;
通过所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
通过第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
为达上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于:
通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理进程中,所述包名用于唯一标识一个应用;
通过所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
通过第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
为达上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,用于:
通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理进程中,所述包名用于唯一标识一个应用;
通过所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
通过第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种应用的加载方法的流程示意图;
图2为本发明实施例所提供的另一种应用的加载方法的流程示意图;
图3为图2所示的应用的加载方法的信令交互示意图;
图4为本发明实施例所提供的一种应用的加载装置的结构示意图;以及
图5为本发明实施例所提供的计算机设备的结构框图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的应用的加载方法及装置。
图1为本发明实施例所提供的一种应用的加载方法的流程示意图。如图1所示,该应用的加载方法包括以下步骤:
S101,第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中,包名用于唯一标识一个应用。
具体的,第一进程即用于新增安卓安装包的安装的进程,在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中。其中,新增安卓安装包的包名用于唯一标识一个应用,即用于标识该新增安卓安装包与哪个应用对应。
S102,后台应用管理进程存储新增安卓安装包的包名和路径信息。
具体的,后台应用管理进程接收第一进程发送的新增安卓安装包的包名和路径信息,并存储该新增安卓安装包的包名和路径信息。后台应用管理进程之前已存储过包名与该新增安卓安装包的包名相同的其他安卓安装包,即已存储过与该新增安卓安装包属同一应用的其他安卓安装包。
S103,第二进程从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息。
具体的,第二进程即运行应用的进程,向后台应用管理进程查询与自身应用对应的包名,并从后台应用管理进程中获取与该包名对应的新增安卓安装包的路径信息。
S104,第二进程将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
具体的,第二进程将获取到的与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中。类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载,保证了新增安卓安装包在下载安装完成后,能够通知对应的应用,支持新增安卓安装包安装之后即可使用的特性,实现了对具备多个安卓安装包的应用的动态加载。其中,类加载器需要支持动态的更新类加载路径,可通过安卓安装包的路径信息来加载类。类加载器可持有一个DexClassLoader类型的成员变量,用于完成多个安卓安装包的加载工作。
此处需要说明的是,在实际应用中,第二进程可以向后台应用管理进程查询与自身应用对应的包名,并从后台应用管理进程中获取与该包名对应的包括新增安卓安装包在内的所有安卓安装包的路径信息,并将获取到的与自身应用对应的包括新增安卓安装包在内的所有安卓安装包的路径信息,更新至类加载器的类加载路径中。类加载器根据更新的类加载路径完成与自身应用对应的包括新增安卓安装包在内的所有安卓安装包的类加载。这种方式,避免了需要维护两份类加载路径数据(一份是不包括新增安卓安装包在内的所有安卓安装包的路径信息,一份包括新增安卓安装包在内的所有安卓安装包的路径信息),带来的资源浪费等问题。
此处需要说明的是,第一进程和第二进程一般不是同一个进程,需要与后台应用管理进程之间进行跨进程通信。具体的,后台应用管理进程与第一进程和第二进程之间,可采用以下任意一种跨进程通信方式进行进程间通信:安卓接口定义语言(AndroidInterface Definition Language,简称AIDL)、广播Broadcast、Activity、内容提供Content Provider和匿名共享内存Ashmem等。不同的跨进程通信方式,第二进程从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息的方式不同。
本实施例中,第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中,使得第二进程能够从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并更新至类加载器的类加载路径中,进而使得类加载器能够根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载,从而实现对具备多个安卓安装包APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
为了清楚说明上一实施例,本实施例提供了另一种应用的加载方法,图2为本发明实施例所提供的另一种应用的加载方法的流程示意图。如图2所示,该应用的加载方法包括以下步骤:
S201,第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中,包名用于唯一标识一个应用。
S202,后台应用管理进程存储新增安卓安装包的包名和路径信息。
具体的,步骤S201-S202与上一实施例中的步骤S101-S102相同,此处不再赘述。
后台应用管理进程与第二进程之间采用安卓接口定义语言AIDL方式进行进程间通信时,上一实施例中的步骤S103具体包括以下步骤S203-S204。
S203,第二进程向后台应用管理进程查询与自身应用对应的安卓安装包是否有更新。
具体的,第二进程向后台应用管理进程查询与自身应用对应的包名,并获取与该包名对应的安卓安装包是否有更新。
S204,若是,则第二进程从后台应用管理进程主动获取与自身应用对应的新增安卓安装包的路径信息。
具体的,若与第二进程的自身应用对应的安卓安装包有更新,则第二进程从后台应用管理进程主动获取与自身应用对应的新增安卓安装包的路径信息。若与第二进程的自身应用对应的安卓安装包没有更新,则结束流程。
S205,第二进程将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
具体的,步骤S205与上一实施例中的步骤S104相同,此处不再赘述。
为清楚说明本发明实施例的应用的加载方法,下面结合图3所示的信令交互图对本发明实施例的应用的加载方法进行详细描述。如图3所示,包括如下步骤:
S301,第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中。
S302,后台应用管理进程存储新增安卓安装包的包名和路径信息。
S303,第二进程向后台应用管理进程发送查询请求,以查询与自身应用对应的安卓安装包是否有更新。
S304,后台应用管理进程向第二进程返回查询结果。
S305,若查询结果为与第二进程的自身应用对应的安卓安装包有更新,则第二进程向后台应用管理进程发送获取请求,以获取与自身应用对应的新增安卓安装包的路径信息。
S306,后台应用管理进程向第二进程返回与第二进程的自身应用对应的新增安卓安装包的路径信息。
S307,第二进程将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
本实施例中,第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理进程中,使得第二进程能够从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并更新至类加载器的类加载路径中,进而使得类加载器能够根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载,从而实现对具备多个安卓安装包APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
为了实现上述实施例,本发明还提出一种应用的加载装置。图4为本发明实施例所提供的一种应用的加载装置的结构示意图。如图4所示,该应用的加载装置包括:安装模块51、后台应用管理模块52和加载模块53。
安装模块51,用于通过第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送到后台应用管理模块52中,包名用于唯一标识一个应用;
后台应用管理模块52,用于通过后台应用管理进程存储新增安卓安装包的包名和路径信息;
加载模块53,用于通过第二进程从后台应用管理模块52中获取与自身应用对应的新增安卓安装包的路径信息,并将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
进一步地,在本发明实施例的一种可能的实现方式中,后台应用管理模块52与安装模块51和加载模块53之间,可采用以下任意一种跨进程通信方式进行进程间通信:安卓接口定义语言AIDL、广播Broadcast、Activity、内容提供Content Provider和匿名共享内存Ashmem等。
进一步地,在本发明实施例的一种可能的实现方式中,后台应用管理模块与加载模块之间采用安卓接口定义语言AIDL方式进行进程间通信;加载模块53具体用于:通过第二进程向后台应用管理模块查询与自身应用对应的安卓安装包是否有更新;若是,则通过第二进程从后台应用管理模块主动获取与自身应用对应的新增安卓安装包的路径信息。
需要说明的是,前述对应用的加载方法实施例的解释说明也适用于该实施例的应用的加载装置,此处不再赘述。
本实施例中,安装模块通过第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送至后台应用管理模块中,使得加载模块能够从后台应用管理模块中获取与自身应用对应的新增安卓安装包的路径信息,并更新至类加载器的类加载路径中,进而使得类加载器能够根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载,从而实现对具备多个安卓安装包APK文件的应用(例如Google推出的免安装应用InstantAPP)的动态加载。
为了实现上述实施例,本发明还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序,以用于:
通过第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送到后台应用管理进程中,包名用于唯一标识一个应用;
通过后台应用管理进程存储新增安卓安装包的包名和路径信息;
通过第二进程从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于:
通过第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送到后台应用管理进程中,包名用于唯一标识一个应用;
通过后台应用管理进程存储新增安卓安装包的包名和路径信息;
通过第二进程从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
为了实现上述实施例,本发明还提出一种计算机程序产品,当计算机程序产品中的指令由处理器执行时,用于:
通过第一进程在完成新增安卓安装包的安装过程后,将新增安卓安装包的包名和路径信息发送到后台应用管理进程中,包名用于唯一标识一个应用;
通过后台应用管理进程存储新增安卓安装包的包名和路径信息;
通过第二进程从后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使类加载器根据更新的类加载路径完成与自身应用对应的新增安卓安装包的类加载。
图5示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图5显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (9)
1.一种应用的加载方法,其特征在于,包括以下步骤:
第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送至后台应用管理进程中,所述包名用于唯一标识一个应用;
所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息;
所述第二进程将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
2.根据权利要求1所述的加载方法,其特征在于,所述后台应用管理进程与所述第一进程和所述第二进程之间,采用以下任意一种跨进程通信方式进行进程间通信:安卓接口定义语言、广播、Activity、内容提供和匿名共享内存。
3.根据权利要求1所述的加载方法,其特征在于,所述后台应用管理进程与所述第二进程之间采用安卓接口定义语言AIDL方式进行进程间通信;
所述第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息包括:
所述第二进程向所述后台应用管理进程查询与自身应用对应的安卓安装包是否有更新;
若是,则所述第二进程从所述后台应用管理进程主动获取所述与自身应用对应的新增安卓安装包的路径信息。
4.一种应用的加载装置,其特征在于,包括:
安装模块,用于通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理模块中,所述包名用于唯一标识一个应用;
所述后台应用管理模块,用于通过后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
加载模块,用于通过第二进程从所述后台应用管理模块中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
5.根据权利要求4所述的加载装置,其特征在于,所述后台应用管理模块与所述安装模块和所述加载模块之间,采用以下任意一种跨进程通信方式进行进程间通信:安卓接口定义语言、广播、Activity、内容提供和匿名共享内存。
6.根据权利要求4所述的加载装置,其特征在于,所述后台应用管理模块与所述加载模块之间采用安卓接口定义语言AIDL方式进行进程间通信;
所述加载模块具体用于:
通过所述第二进程向所述后台应用管理模块查询与自身应用对应的安卓安装包是否有更新;
若是,则通过所述第二进程从所述后台应用管理模块主动获取所述与自身应用对应的新增安卓安装包的路径信息。
7.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以用于:
通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理进程中,所述包名用于唯一标识一个应用;
通过所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
通过第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
8.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于:
通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理进程中,所述包名用于唯一标识一个应用;
通过所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
通过第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
9.一种计算机程序产品,其特征在于,当所述计算机程序产品中的指令由处理器执行时,用于:
通过第一进程在完成新增安卓安装包的安装过程后,将所述新增安卓安装包的包名和路径信息发送到后台应用管理进程中,所述包名用于唯一标识一个应用;
通过所述后台应用管理进程存储所述新增安卓安装包的包名和路径信息;
通过第二进程从所述后台应用管理进程中获取与自身应用对应的新增安卓安装包的路径信息,并将所述与自身应用对应的新增安卓安装包的路径信息,更新至类加载器的类加载路径中,以使所述类加载器根据更新的所述类加载路径完成所述与自身应用对应的新增安卓安装包的类加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810427064.8A CN108762772A (zh) | 2018-05-07 | 2018-05-07 | 应用的加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810427064.8A CN108762772A (zh) | 2018-05-07 | 2018-05-07 | 应用的加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108762772A true CN108762772A (zh) | 2018-11-06 |
Family
ID=64010073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810427064.8A Pending CN108762772A (zh) | 2018-05-07 | 2018-05-07 | 应用的加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762772A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707977A (zh) * | 2012-05-17 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种基于Android应用软件的增量升级方法 |
CN104123152A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 移动终端中应用程序的更新方法、装置和移动终端 |
CN104636154A (zh) * | 2013-11-07 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 应用程序安装方法及装置 |
CN106569844A (zh) * | 2016-09-23 | 2017-04-19 | 北京五八信息技术有限公司 | 程序代码更新的处理方法、装置和设备 |
US9762385B1 (en) * | 2015-07-20 | 2017-09-12 | Trend Micro Incorporated | Protection of program code of apps of mobile computing devices |
CN107506221A (zh) * | 2017-09-28 | 2017-12-22 | 阿里巴巴集团控股有限公司 | 应用程序升级方法、装置及设备 |
-
2018
- 2018-05-07 CN CN201810427064.8A patent/CN108762772A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707977A (zh) * | 2012-05-17 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种基于Android应用软件的增量升级方法 |
CN104123152A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 移动终端中应用程序的更新方法、装置和移动终端 |
CN104636154A (zh) * | 2013-11-07 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 应用程序安装方法及装置 |
US9762385B1 (en) * | 2015-07-20 | 2017-09-12 | Trend Micro Incorporated | Protection of program code of apps of mobile computing devices |
CN106569844A (zh) * | 2016-09-23 | 2017-04-19 | 北京五八信息技术有限公司 | 程序代码更新的处理方法、装置和设备 |
CN107506221A (zh) * | 2017-09-28 | 2017-12-22 | 阿里巴巴集团控股有限公司 | 应用程序升级方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9219740B2 (en) | Access control system and method | |
US7784060B2 (en) | Efficient virtual machine communication via virtual machine queues | |
CN109450805A (zh) | 消息推送方法、装置以及系统 | |
US9176713B2 (en) | Method, apparatus and program storage device that provides a user mode device interface | |
US20130067466A1 (en) | Virtual Switch Extensibility | |
CN103853535B (zh) | 修改中间件的方法和装置 | |
US5826090A (en) | Loadable hardware support | |
WO2021169129A1 (zh) | 虚拟机在线迁移方法、装置、设备及计算机可读存储介质 | |
AU2017245437B2 (en) | Thin client for mapping system | |
US9396014B2 (en) | Data swap in virtual machine environment | |
CN107689987A (zh) | 虚拟网络服务暴露方法及装置 | |
CN104636186A (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
JP2020503597A (ja) | シブリング・コール処理のためのコンピュータ・プログラム製品、コンピュータ・システムおよびコンピュータによって実施される方法 | |
US7272712B1 (en) | Data structure and method for managing modules associated with a kernel | |
JP2015180991A (ja) | 画像形成装置、画像形成装置の制御方法およびプログラム | |
US20090307680A1 (en) | Side-by-side driver installation | |
CN107341005A (zh) | 图表生成方法及其装置 | |
US8966506B2 (en) | Method and apparatus for managing related drivers associated with a virtual bus driver | |
US20080216093A1 (en) | Method, system and computer program for monitoring components in a service framework | |
JP7083446B2 (ja) | 複数のプロセッサによる共有キャッシュ・ラインの同時変更 | |
JP5070286B2 (ja) | ネットワーク環境におけるスペースのカスタマイズ | |
CN108762772A (zh) | 应用的加载方法及装置 | |
JP2010500671A5 (zh) | ||
US20090133010A1 (en) | Virtualized blade flash with management module | |
CN111813384A (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: 20181106 |