CN114706633B - 预加载方法、电子设备及存储介质 - Google Patents

预加载方法、电子设备及存储介质 Download PDF

Info

Publication number
CN114706633B
CN114706633B CN202210619919.3A CN202210619919A CN114706633B CN 114706633 B CN114706633 B CN 114706633B CN 202210619919 A CN202210619919 A CN 202210619919A CN 114706633 B CN114706633 B CN 114706633B
Authority
CN
China
Prior art keywords
class
file
preloading
system service
resource
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.)
Active
Application number
CN202210619919.3A
Other languages
English (en)
Other versions
CN114706633A (zh
Inventor
张弛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210619919.3A priority Critical patent/CN114706633B/zh
Publication of CN114706633A publication Critical patent/CN114706633A/zh
Application granted granted Critical
Publication of CN114706633B publication Critical patent/CN114706633B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Abstract

本申请提供一种预加载方法、电子设备及存储介质。预加载方法包括:在Zygote进程启动的情况下,预加载第一类,第一类为电子设备运行过程中被系统服务进程加载的类;根据第一类创建系统服务进程;创建系统服务进程后,预加载第二类,第二类为电子设备运行过程中被Zygote进程的子进程中除系统服务进程外的预设子进程加载的类;根据第二类创建预设子进程。通过本申请提供的方案,可以减少创建系统服务进程之前的等待时间,进而可以提高开机进度。

Description

预加载方法、电子设备及存储介质
技术领域
本申请涉及终端领域,尤其涉及一种预加载方法、电子设备及存储介质。
背景技术
现有的安卓设备的开机过程中,在Zygote进程启动后,会先执行预加载类和资源的操作,再创建子进程,从而使得创建的子进程可以共享预加载的类和资源,而不用再次执行加载操作。但是,预加载类需要占用较长的时间,各子进程需要等待加载操作完成后才可以被创建,因此影响开机进度。
发明内容
本申请提供一种预加载方法、电子设备及存储介质,解决了现有技术中电子设备开机速度较慢的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种预加载方法,包括:
在Zygote进程启动的情况下,预加载第一类,所述第一类为电子设备运行过程中被系统服务进程加载的类;根据所述第一类创建所述系统服务进程;创建所述系统服务进程后,预加载第二类,所述第二类为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的类;根据所述第二类创建所述预设子进程。
上述实施例中,在Zygote进程启动的情况下,先预加载被系统服务进程加载的第一类,从而可以根据第一类创建系统服务进程,在创建系统服务进程后,再预加载被Zygote进程的预设子进程加载的第二类,从而在预加载一部分类后,即可创建系统服务进程,减少了创建系统服务进程之前的等待时间,进而可以提高开机进度。
在一种可能的实现方式中,所述预加载第一类,包括:读取第一文件,所述第一文件中存储有所述第一类的标识;根据所述第一文件的读取结果预加载所述第一类。通过读取第一文件得到第一类的标识,可以提高读取效率,进而提高预加载效率。
在一种可能的实现方式中,所述预加载第一类,包括:检测是否存在所述第一文件;若存在所述第一文件,说明存在对待Zygote进程预加载的类进行分组的文件,即待Zygote进程预加载的类已经进行了分类,则读取所述第一文件,根据所述第一文件的读取结果预加载所述第一类。
在一种可能的实现方式中,在所述检测是否存在所述第一文件之后,所述方法还包括:若不存在所述第一文件,读取未对所述第一类和所述第二类进行分组的文件;根据未对所述第一类和所述第二类进行分组的文件执行预加载操作。即在第一类和第二类未进行分组的情况下,根据未对第一类和第二类进行分组的文件进行预加载,以保证电子设备正常的开机流程。
在一种可能的实现方式中,所述读取第一文件,包括:若所述电子设备中存储有第三文件,则删除所述第三文件,或者设置所述第三文件的状态为不可读取状态,所述第三文件为未对所述第一类和所述第二类进行分组的文件;在确定所述第三文件被删除后或者所述第三文件的状态为不可读取状态,读取所述第一文件,从而可以屏蔽根据第三文件进行预加载的方案,避免发生预加载过程出错的情况。
在一种可能的实现方式中,所述预加载第二类,包括:读取第二文件,所述第二文件中存储有所述第二类的标识;根据所述第二文件的读取结果预加载所述第二类。通过读取第二文件得到第二类的标识,可以提高读取效率,进而提高预加载效率。
在一种可能的实现方式中,所述第一类为所述电子设备运行过程中被系统服务进程加载,且加载次数大于第一预设值的类,在对第一类进行预加载后创建系统服务进程,可以在保证预加载必要类的同时,提高预加载速度,进而提高开机速度。
在一种可能的实现方式中,所述第二类为所述电子设备运行过程中被所述预设子进程加载,且加载次数大于第二预设值的类,在对第二类进行预加载后创建对应的子进程,可以在保证预加载必要类的同时,提高预加载速度,进而提高开机速度。
在一种可能的实现方式中,所述根据所述第一类创建所述系统服务进程,包括:
预加载第一资源,所述第一资源为所述电子设备运行过程中被所述系统服务进程加载的资源,根据所述第一类和所述第一资源创建所述系统服务进程,从而可以在加载部分资源后就创建系统服务进程,进一步节省了创建系统服务进程前的等待时间,提高了开机速度。
在一种可能的实现方式中,所述根据所述第二类创建所述Zygote进程的预设子进程,包括:预加载第二资源,所述第二资源为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的资源;根据所述第二类和所述第二资源创建所述Zygote进程的预设子进程。
在一种可能的实现方式中,在所述根据所述第一类创建所述系统服务进程之前,所述方法还包括:预加载所述第一类后,预加载第三资源,所述第三资源为所述电子设备运行过程中被所述系统服务进程和所述预设子进程加载的资源。
在一种可能的实现方式中,在所述Zygote进程启动之前,所述方法还包括:获取所述电子设备运行过程中的类加载信息,所述类加载信息包括加载类的进程;根据所述类加载信息将所述电子设备运行过程中被所述系统服务进程加载的类确定为第一类,将所述电子设备运行过程中被所述Zygote进程的预设子进程加载的类确定为第二类。通过将待Zygote进程预加载的类分为第一类和第二类,可以在后续开机流程中先预加载第一类,在预加载第一类之后即可创建系统服务进程。
第二方面,提供一种预加载装置,包括:
第一预加载模块,用于在Zygote进程启动的情况下,预加载第一类,所述第一类为电子设备运行过程中被系统服务进程加载的类;
第一创建模块,用于根据所述第一类创建所述系统服务进程;
第二预加载模块,用于创建所述系统服务进程后,预加载第二类,所述第二类为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的类;
第二创建模块,用于根据所述第二类创建预设子进程。
在一种可能的实现方式中,第一预加载模块具体用于:
读取第一文件,所述第一文件中存储有所述第一类的标识;
根据所述第一文件的读取结果预加载所述第一类。
在一种可能的实现方式中,第一预加载模块具体用于:
检测是否存在所述第一文件;
若存在所述第一文件,读取所述第一文件,根据所述第一文件的读取结果预加载所述第一类。
在一种可能的实现方式中,第一预加载模块具体还用于:
若不存在所述第一文件,读取未对所述第一类和所述第二类进行分组的文件;
根据未对所述第一类和所述第二类进行分组的文件执行预加载操作。
在一种可能的实现方式中,第一预加载模块具体用于:
若所述电子设备中存储有第三文件,则删除所述第三文件,或者设置所述第三文件的状态为不可读取状态,所述第三文件为未对所述第一类和所述第二类进行分组的文件;
在确定所述第三文件被删除后或者所述第三文件的状态为不可读取状态,读取所述第一文件。
在一种可能的实现方式中,第二预加载模块具体用于:
读取第二文件,所述第二文件中存储有所述第二类的标识;
根据所述第二文件的读取结果预加载所述第二类。
在一种可能的实现方式中,所述第一类为所述电子设备运行过程中被系统服务进程加载,且加载次数大于第一预设值的类。
在一种可能的实现方式中,所述第二类为所述电子设备运行过程中被所述预设子进程加载,且加载次数大于第二预设值的类。
在一种可能的实现方式中,第一创建模块具体用于:
预加载第一资源,所述第一资源为所述电子设备运行过程中被所述系统服务进程加载的资源;
根据所述第一类和所述第一资源创建所述系统服务进程。
在一种可能的实现方式中,第二创建模块具体用于:
预加载第二资源,所述第二资源为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的资源;
根据所述第二类和所述第二资源创建所述Zygote进程的预设子进程。
在一种可能的实现方式中,第一创建模块还用于:
预加载所述第一类后,预加载第三资源,所述第三资源为所述电子设备运行过程中被所述系统服务进程和所述预设子进程加载的资源。
在一种可能的实现方式中,预加载装置还包括分组模块,用于:
获取所述电子设备运行过程中的类加载信息,所述类加载信息包括加载类的进程;
根据所述类加载信息将所述电子设备运行过程中被所述系统服务进程加载的类确定为第一类,将所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的类确定为第二类。
第三方面,提供一种电子设备,包括处理器,所述处理器用于执行存储在存储器中的计算机程序,以实现如上述第一方面所述的预加载方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的预加载方法。
第五方面,提供一种芯片,所述芯片包括处理器,所述处理器和存储器耦合,所述处理器执行所述存储器中存储的计算机程序或指令,以实现如上述第一方面所述的预加载方法。
第六方面,提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面所述的预加载方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种预加载方法的流程示意图;
图2为本申请实施例提供的Zygote进程预加载和创建子进程的流程图;
图3为本申请实施例提供的一种电子设备的软件架构图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以预设方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以预设方式另外特别强调。
为更好地理解本申请实施例,以下对实施例中可能涉及的术语或概念进行介绍。
1.Zygote进程
Zygote进程是由安卓系统中的Init进程创建的进程,是安卓系统运行的第一个安卓运行时(AndroidRuntime,ART)进程。Zygote进程用于通过fork函数创建系统服务进程以及其他应用程序的进程。Zygote进程在创建后,会创建一个虚拟机实例,之后将所需要的类和资源预加载到内存中,后续通过fork函数创建的进程可以直接使用预加载的类和资源,而不用重复加载。
2.系统服务进程(system server)
系统服务进程是Zygote进程创建的第一个子进程,负责启动核心系统服务,例如活动管理服务(ActivityManagerService,AMS)、窗口管理器、包管理服务(PackageManagerService,PKMS)等。
3. fork函数
分叉函数,一个现有进程可以调用fork函数创建一个新进程,由fork函数创建的进程即为现有进程的子进程。子进程是父进程的副本,子进程获得父进程的数据空间、堆、栈等资源的副本。
现有的安卓设备的开机过程中,在Zygote进程启动后,会先执行预加载(暂时下载)类和资源的操作,在预加载完成后再创建(fork)各子进程。由于fork 函数的写时拷贝机制,Zygote进程及其创建的子进程共享预加载过的类和资源,因此在预加载完成后,创建的子进程不必再执行加载操作。Zygote进程创建的第一个子进程一般是系统服务进程,而预加载的类中有很多是系统服务进程不需要加载的类,但是系统服务进程必须等待Zygote进程完成所有预加载才能被创建,因此现有的预加载方法影响系统服务进程的创建进度,进而影响开机速度。
为此,本申请提供一种预加载方法,在Zygote进程启动的情况下,Zygote进程先预加载被系统服务进程加载的第一类,从而可以根据第一类创建系统服务进程。在创建系统服务进程后,再预加载被Zygote进程的子进程中除系统服务进程外的预设子进程加载的第二类,再根据第二类创建预设子进程,从而在预加载一部分类后,即可创建系统服务进程,减少了创建系统服务进程前的等待时间。由于在创建系统服务进程后电子设备便可以通过系统服务进程执行后续的开机流程,因此提高了开机进度。
为了实现上述方案,首先可以对待Zygote进程预加载的类进行分组,即将被Zygote进程预加载的类分为第一类和第二类。第一类是电子设备运行过程中被系统服务进程加载的类。第二类是电子设备运行过程中被Zygote进程的子进程中除系统服务进程外的预设子进程加载的类。预设子进程可以是Zygote进程的子进程中除了系统服务进程之外的所有子进程,也可以是Zygote进程的子进程中除了系统服务进程之外的部分子进程。
在一实施例中,上述分组过程可以在电子设备的测试阶段进行。
示例性地,在电子设备的测试阶段,Zygote进程创建ART虚拟机,电子设备在接收到预设指令时,启动记录类加载信息的功能。在记录类加载信息的功能启动的情况下,ART虚拟机将电子设备运行过程中预设文件中的类加载的信息记录至profile文件。其中,预设指令可以由其他终端(例如电脑)发送给电子设备,也可以预先存储至电子设备中。类加载信息包括加载类的进程,预设文件可以是dex格式的jar包,用于存储类以及类的标识,类的标识可以是类的名称或者索引等信息。profile文件中记录各进程加载过的类的标识。例如,profile中记录如下内容:
framework.jar: com.baidu.input_hihonor…
hot methods:…
startup methods:…
post Startup methods:…
classes:8,9,10…
okhttp.jar:android…
hot methods:…
startup methods:…
post Startup methods:…
classes:3,6,12…
表示framework.jar文件中索引(classes)为8、9、10的类被com.baidu.input_hihonor进程加载过,com.baidu.input_hihonor是一个输入法进程。okhttp.jar文件中索引为3、6、12的类被android进程加载过,android进程是系统服务进程。也即系统服务进程加载过okhttp.jar文件中索引为3、6、12的类。
在预设场景下运行电子设备,虚拟机会抓取预设场景下的所有profile文件并输出。其中,预设场景可以是开机过程、应用程序的启动过程或者应用程序的使用过程。示例性地,预设场景为常用20个应用程序的启动过程,设定用户关键操作(critical userjourneys,CUJ)为常用的20个应用程序的启动过程,在接收到CUJ的执行指令时,场景开始,电子设备记录每个应用程序对应的profile文件。在场景结束后,虚拟机抓取每个应用程序对应的profile文件并输出。
电子设备解析虚拟机输出的profile文件,提取出profile文件中记录的各进程加载过的类的标识,根据各进程加载过的类的标识,将被系统服务进程加载过的类标记为第一类,将被Zygote进程的子进程中除系统服务进程外的预设子进程加载过的类标记为第二类,即可实现对第一类和第二类的分组。
在一实施例中,类加载信息还包括每个进程加载类的次数,根据每个进程加载类的次数可以统计出每个类对应的加载次数,将被系统服务进程加载过,且加载次数大于第一预设值的类标记为第一类,将被Zygote进程的子进程中除系统服务进程外的预设子进程加载过,且加载次数大于第二预设值的类标记为第二类。
在一实施例中,也可以根据类加载的信息统计出每个类对应的加载次数,筛选出被加载次数大于预设次数的类,再从其中筛选出被系统服务加载过的类,将被系统服务加载过的类标记为第一类,将筛选后剩余的类标记为第二类。即第一类为被系统服务加载过,且加载次数大于预设次数的类,第二类为被Zygote进程的预设子进程加载过,且加载次数大于预设次数的类。
在对第一类和第二类分组后,可以将第一类的标识存储至第一文件,第二类的标识存储至第二文件,也可以将第一类的标识和第二类的标识存储至同一个文件,并对第一类的标识和第二类的标识设定不同的标记(例如字母、数字或其他字符),以便于电子设备下次运行时先根据第一类的标识以及对应的类的路径预加载第一类,在创建系统服务进程后再根据第二类的标识以及对应的类的路径预加载第二类。
在一实施例中,profile文件中记录进程加载的类的索引,根据profile文件对第一类和第二类分组也即确定出第一类的索引和第二类的索引。之后,根据预设文件的路径从预设文件中找出每个索引对应的类的名称,将第一类的名称写入第一文件,将第二类的名称写入第二文件。例如,将第一类的名称写入文件名为systemserver-preloaded-classe的文件。将第二类的名称写入文件名为preloaded-classe的文件。
在其他可能的实现方式中,也可以从第三方服务器直接下载profile文件,根据profile文件对第一类和第二类分组。
在对第一类和第二类分组后,开发人员将分组后的文件(例如第一文件和第二文件)上传至服务器,用户即可通过电子设备从服务器下载分组后的文件,再根据分组后的文件以及类所在的文件,依次调用第一类和第二类进行预加载,完成开机流程。
在另一实施例中,上述分组过程可以在电子设备的使用阶段进行。
具体地,在电子设备运行过程中,若检测到电子设备满足预设场景,在预设路径的文件中记录类加载信息。在预设场景的时长满足预设时长,或者电子设备满足预设场景的次数达到预设次数时,获取类加载信息。示例性地,电子设备在检测到用户启动预设应用程序的操作时,开始检测电子设备的场景,在检测到电子设备满足预设场景时,在预设路径的文件中记录类加载信息,在检测到用户关闭预设应用程序的操作时,场景结束,获取类加载信息。
在其他可行的实现方式中,电子设备也可以根据用户的操作指令从服务器下载类加载信息。
在得到类加载信息后,根据类加载信息对预设文件中的类进行分组。在一实施例中,根据类加载信息将电子设备运行过程中被系统服务进程加载的类标记为第一类,将电子设备运行过程中被Zygote进程的预设子进程加载的类标记为第二类。
在一实施例中,根据类加载信息将电子设备运行过程中被系统服务进程加载,且加载次数大于第一预设值的类标记为第一类,将电子设备运行过程中被Zygote进程的预设子进程加载,且加载次数大于第二预设值的类标记为第二类,第一预设值和第二预设值可以相等,也可以不相等。
在确定第一类和第二类后,将第一类的标识(例如名称)存储至第一文件,将第二类的标识存储至第二文件,或者将第一类的标识和第二类的标识存储至同一个文件,并对第一类的标识和第二类的标识设定不同的标记。
在将第一类的标识和第二类的标识分类存储后,在下次开机时,电子设备即可读取对应的文件,得到第一类的标识和第二类的标识,进而完成预加载。例如,先读取第一文件,得到第一类的标识,根据第一类的标识以及第一类的存储路径预加载第一类。在创建系统服务进程后,再读取第二文件,得到第二类的标识,根据第二类的标识以及第二类的存储路径预加载第二类。
下面对本申请实施例提供的预加载方法进行详细说明。
如图1所示,本申请一实施例提供的预加载方法包括:
S101:在Zygote进程启动的情况下,预加载第一类,所述第一类为电子设备运行过程中被系统服务进程加载的类。
具体地,电子设备在检测到开机操作的情况下,启动引导程序,以初始化硬件参数,之后再启动操作系统。启动操作系统的同时,电子设备初始化内核,将内核加载到内存中。之后,电子设备启动init进程,通过init进程创建Zygote进程。在Zygote进程启动的情况下,电子设备根据第一类的标识的存储路径读取第一类的标识。
若第一类的标识和第二类的标识不在同一个文件,第一类的标识存储于第一文件,则根据第一文件的存储路径读取第一文件,得到第一类的标识。例如,读取文件名为systemserver-preloaded-classe的文件,得到第一类的名称。
若第一类和第二类在同一个文件,则根据第一类对应的标记读取第一类的标识。
在读取第一类的标识后,根据第一类的标识从第一类所在的文件调用对应的第一类进行预加载。其中,第一类所在的文件可以是dex格式的jar包。
在一实施例中,第一类和第二类的分组过程在电子设备的使用阶段进行,则在分组完成后,分组后的文件存储于电子设备。电子设备在下次开机时,即可读取第一类的标识所在的文件,得到第一类的标识。
在另一实施例中,第一类和第二类的分组过程在电子设备的测试阶段进行,在电子设备出厂时,已经导入第一类和第二类所在的文件,电子设备在开机时,即可读取第一类所在的文件,得到第一类的标识。
在又一实施例中,第一类和第二类的分组过程在电子设备的测试阶段进行,第一类和第二类的分组文件由开发人员上传至服务器。电子设备从服务器下载升级文件,升级文件中包括分组后的文件。电子设备通过读取第一类的标识所在的文件,得到第一类的标识。
在一实施例中,第一类的标识存储于第一文件,电子设备在进行预加载之前,先检测电子设备中是否存在第一文件,若存在第一文件,则读取第一文件,根据第一文件的读取结果得到第一类的标识,根据第一类的标识预加载第一类。若不存在第一文件,则说明电子设备上不存在对第一类和第二类进行分组的文件,则读取未对第一类和第二类进行分组的文件,得到待Zygote进程预加载的所有类的标识,根据待Zygote进程预加载的所有类的标识进行预加载,在预加载完成后创建系统服务进程。例如,电子设备在下载升级文件进行升级后,检测是否存在第一文件,若存在第一文件,说明升级成功,先预加载第一类,在预加载第一类后创建系统服务进程。若不存在第一文件,说明升级失败,采用升级前的预加载方案,即在预加载第一类和第二类后,再创建系统服务进程。
在一实施例中,电子设备在进行预加载之前,先检测电子设备中是否存在未对第一类和第二类分组的第三文件。若存在第三文件,则删除第三文件,或者设置第三文件的状态为不可读取状态,在确定第三文件被删除后或者第三文件的状态为不可读取状态时,读取第一文件,得的第一类的标识,从而可以使Zygote进程无法读取未对第一类和第二类分组的文件,即屏蔽未对第一类和第二类分组的方案,而采用对第一类和第二类进行分组的方案,进而避免加载过程中出错。其中,删除未对第三文件可以是指从存储器中删除第三文件,也可以是删除第三文件中的内容。例如,电子设备下载升级文件,升级文件中包括第一文件、第二文件以及删除未对第一类和第二类分组的第三文件的指令。电子设备运行升级文件,根据删除第三文件的指令删除第三文件,在确定第三文件被删除后,Zygote进程读取第一文件,执行预加载第一类的操作。
S102:根据所述第一类创建所述系统服务进程。
具体地,Zygote进程根据第一类以及系统服务进程需要加载的资源,创建系统服务进程。
在一实施例中,预加载第一类后,预加载待Zygote进程预加载的资源,之后创建系统服务进程。其中,资源可以是图像或者文字等信息。
在一实施例中,在电子设备的测试阶段,除了将待Zygote进程预加载的类分为第一类和第二类之外,还可以将待Zygote进程预加载的资源也分为第一资源和第二资源。
具体地,对资源进行分组的过程可以在电子设备的测试阶段进行,也可以在电子设备的使用阶段进行。以在电子设备的测试阶段对资源进行分组为例,在满足预设场景时,电子设备记录资源加载的信息,资源加载的信息包括加载资源的进程。根据加载资源的进程,可以确定出被系统服务进程加载的资源以及被Zygote进程的其他预设子进程加载的资源。将被系统服务进程加载的资源作为第一资源,将被Zygote进程的子进程中除系统服务进程外的预设子进程加载的资源作为第二资源。
在其他可行的实现方式中,资源加载信息还包括每个进程加载资源的次数,可以将将被系统服务进程加载,且加载次数超过第三预设值的资源作为第一资源,将被Zygote进程的子进程中除系统服务进程外的预设子进程加载,且加载次数超过第四预设值的资源作为第二资源。第三预设值和第四预设值可以相等,也可以不相等。
在一实施例中,在电子设备的测试阶段,无法完整记录资源被进程加载的信息,部分资源可以明确判断出是否被系统服务进程加载过,部分资源无法判断出是否被系统服务进程加载过,则将被系统服务进程加载过,以及可能被系统服务进程加载过的资源作为第一资源,将剩余的被Zygote进程的子进程加载的资源作为第二资源。
在确定第一资源和第二资源后,分组存储第一资源的标识和第二资源的标识。其中,资源的标识可以是资源的名称或索引,可以将第一资源的标识存储于第三文件,将第二资源的标识存储于第四文件。也可以将第一资源的标识和第二资源的标识存储于同一个文件,并添加不同的标记。
之后,将存储第一资源的标识的文件和存储第二资源的标识的文件存储或下载至电子设备,电子设备在开机过程中,在预加载第一类后,根据第一资源的标识从存储第一资源的文件中调用第一资源进行预加载,之后根据第一类和第一资源创建系统服务进程。在预加载第一资源后就创建系统服务进程,相对于直接预加载待Zygote进程预加载的所有资源,可以进一步缩短创建系统服务进程前的预加载时间,进而提高开机速度。
在一实施例中,init进程创建Zygote进程的同时,创建SurfaceFlinger进程,SurfaceFlinger进程用于启动开机动画。Zygote进程在创建系统服务进程的同时,定义一个socket,用于接收AMS启动应用程序的请求。Zygote进程创建系统服务进程后,系统服务进程初始化AMS,同时加载本地系统的服务库,开启核心系统服务,并将核心系统服务添加到服务管理器中,之后系统进入system Ready状态。其中,核心系统服务包括AMS、窗口管理器、PKMS等。AMS被开启后,向Zygote进程发送启动Launcher进程的请求,Zygote进程通过socket接收到启动Launcher进程的请求后,启动Launcher进程,结束开机动画,在电子设备上显示操作系统的界面。
电子设备在创建系统服务进程后,即可通过系统服务进程执行后续开机流程,从而可以加快开机速度。
S103:创建所述系统服务进程后,预加载第二类,所述第二类为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的类。
具体地,在创建系统服务进程后,Zygote进程预加载第二类,即除了被系统服务进程加载的类之外的类。
若Zygote进程在预加载第一类后,预加载第一资源,则在预加载第二类后,预加载第二资源,再执行创建其他子进程的步骤。
若Zygote进程在预加载第一类后,预加载待Zygote进程预加载的所有资源,则在预加载第二类后,直接执行创建其他子进程的步骤。
S104:根据所述第二类创建所述预设子进程。
具体地,Zygote进程在检测到子进程的创建请求时,根据第二类以及第二资源创建对应的子进程。示例性地,AMS在检测到启动应用程序的指令时,向Zygote进程发送启动应用程序的请求,Zygote进程根据该请求创建对应的子进程。
在一实施例中,Zygote进程预加载和创建子进程的流程如图2所示。
Zygote进程启动后,先预加载第一类,再预加载待Zygote进程预加载的所有资源,之后根据第一类以及第一资源创建系统服务进程。在创建系统服务进程后,系统服务进程即可执行启动其他服务的流程以及后续的开机流程。同时,在创建系统服务进程后,Zygote进程预加载第二类,之后再调用runSelectLoop函数执行创建其他子进程的循环,创建其他子进程的循环为在检测到创建子进程的请求时,根据第二类以及第二资源创建对应的子进程。
上述实施例中,在Zygote进程启动的情况下,先预加载被系统服务进程加载的第一类,从而可以根据第一类创建系统服务进程,在创建系统服务进程后,再预加载被Zygote进程的预设子进程加载的第二类,从而在预加载一部分类后,即可执行创建系统服务进程后的开机流程,进而加快开机进度。
现有技术采用的方案是预加载待Zygote进程预加载的所有类之后,再创建系统服务进程。本申请提供的方案是预加载第一类之后创建系统服务进程。假设预加载待Zygote进程预加载的所有类所用的时间为T,预加载第一类所用的时间为t,则采用本申请提供的方案的开机时间比采用现有技术中的方案的开机时间减少T-t。
一般情况下,高端手机开机过程中,预加载待Zygote进程预加载的所有类所用的时间为600ms-1000ms,中低端手机预加载待Zygote进程预加载的所有类所用的时间更长,按照系统服务进程加载的类占待Zygote进程预加载的所有类的比例为50%计算,采用本申请提供的方案也可以使开机时间减少300ms-500ms。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图3是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图4示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种预加载方法,其特征在于,所述方法由Zygote进程执行,所述方法包括:
在所述Zygote进程启动的情况下,预加载第一类,所述第一类为电子设备运行过程中被系统服务进程加载,且加载次数大于第一预设值的类;
根据所述第一类创建所述系统服务进程,所述系统服务进程用于开启AMS;
创建所述系统服务进程后,预加载第二类,所述第二类为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载,且加载次数大于第二预设值的类;
在预加载所述第二类的过程中,若检测到所述AMS发送的请求,在所述电子设备上显示操作系统的界面;
在预加载所述第二类后,在检测到创建子进程的请求时,根据所述第二类创建所述预设子进程。
2.根据权利要求1所述的方法,其特征在于,所述预加载第一类,包括:
读取第一文件,所述第一文件中存储有所述第一类的标识;
根据所述第一文件的读取结果预加载所述第一类。
3.根据权利要求2所述的方法,其特征在于,所述预加载第一类,包括:
检测是否存在所述第一文件;
若存在所述第一文件,读取所述第一文件,根据所述第一文件的读取结果预加载所述第一类。
4.根据权利要求3所述的方法,其特征在于,在所述检测是否存在所述第一文件之后,所述方法还包括:
若不存在所述第一文件,读取未对所述第一类和所述第二类进行分组的文件;
根据未对所述第一类和所述第二类进行分组的文件执行预加载操作。
5.根据权利要求2所述的方法,其特征在于,所述读取第一文件,包括:
若所述电子设备中存储有第三文件,则删除所述第三文件,或者设置所述第三文件的状态为不可读取状态,所述第三文件为未对所述第一类和所述第二类进行分组的文件;
在确定所述第三文件被删除后或者所述第三文件的状态为不可读取状态时,读取所述第一文件。
6.根据权利要求1所述的方法,其特征在于,所述预加载第二类,包括:
读取第二文件,所述第二文件中存储有所述第二类的标识;
根据所述第二文件的读取结果预加载所述第二类。
7.根据权利要求1~6任一项所述的方法,其特征在于,所述根据所述第一类创建所述系统服务进程,包括:
预加载第一资源,所述第一资源为所述电子设备运行过程中被所述系统服务进程加载的资源;
根据所述第一类和所述第一资源创建所述系统服务进程。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第二类创建所述Zygote进程的预设子进程,包括:
预加载第二资源,所述第二资源为所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载的资源;
根据所述第二类和所述第二资源创建所述预设子进程。
9.根据权利要求8所述的方法,其特征在于,在所述根据所述第一类创建所述系统服务进程之前,所述方法还包括:
预加载所述第一类后,预加载第三资源,所述第三资源为所述电子设备运行过程中被所述系统服务进程和所述预设子进程加载的资源。
10.根据权利要求1所述的方法,其特征在于,在所述Zygote进程启动之前,所述方法还包括:
获取所述电子设备运行过程中的类加载信息,所述类加载信息包括加载类的进程;
根据所述类加载信息将所述电子设备运行过程中被所述系统服务进程加载,且加载次数大于第一预设值的类确定为第一类,将所述电子设备运行过程中被所述Zygote进程的子进程中除所述系统服务进程外的预设子进程加载,且加载次数大于第二预设值的类确定为第二类。
11.一种电子设备,其特征在于,包括处理器,所述处理器用于执行存储在存储器中的计算机程序,以实现如权利要求1至10任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的方法。
CN202210619919.3A 2022-06-02 2022-06-02 预加载方法、电子设备及存储介质 Active CN114706633B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210619919.3A CN114706633B (zh) 2022-06-02 2022-06-02 预加载方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210619919.3A CN114706633B (zh) 2022-06-02 2022-06-02 预加载方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114706633A CN114706633A (zh) 2022-07-05
CN114706633B true CN114706633B (zh) 2022-10-25

Family

ID=82177974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210619919.3A Active CN114706633B (zh) 2022-06-02 2022-06-02 预加载方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114706633B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577212A (zh) * 2012-08-08 2014-02-12 腾讯科技(深圳)有限公司 系统启动预加载方法及装置
CN103631612A (zh) * 2012-08-23 2014-03-12 腾讯科技(深圳)有限公司 启动操作系统的方法与装置
CN105607921A (zh) * 2015-10-29 2016-05-25 Tcl集团股份有限公司 一种基于Android系统的系统服务启动方法及系统
CN106648773A (zh) * 2016-12-16 2017-05-10 四川长虹电器股份有限公司 一种基于Android系统实现快速开机的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252363B (zh) * 2013-06-25 2018-10-02 上海博泰悦臻电子设备制造有限公司 基于Android系统的车载系统的快速启动方法
US20160162278A1 (en) * 2014-12-05 2016-06-09 Cyanogen Inc. System and method for applying an update to a device system via a system snapshot
CN112527403B (zh) * 2019-09-19 2022-07-05 荣耀终端有限公司 一种应用启动方法及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577212A (zh) * 2012-08-08 2014-02-12 腾讯科技(深圳)有限公司 系统启动预加载方法及装置
CN103631612A (zh) * 2012-08-23 2014-03-12 腾讯科技(深圳)有限公司 启动操作系统的方法与装置
CN105607921A (zh) * 2015-10-29 2016-05-25 Tcl集团股份有限公司 一种基于Android系统的系统服务启动方法及系统
CN106648773A (zh) * 2016-12-16 2017-05-10 四川长虹电器股份有限公司 一种基于Android系统实现快速开机的方法

Also Published As

Publication number Publication date
CN114706633A (zh) 2022-07-05

Similar Documents

Publication Publication Date Title
CN109726067B (zh) 一种进程监控方法以及客户端设备
CN110865837B (zh) 一种进行系统升级的方法和终端
CN114816167B (zh) 应用图标的显示方法、电子设备及可读存储介质
CN115017534B (zh) 文件处理权限控制方法、装置及存储介质
CN113495744A (zh) 一种版本升级方法及相关装置
CN116483734B (zh) 一种基于编译器的插桩方法、系统及相关电子设备
CN113656089B (zh) 应用程序中的类验证方法和装置
CN116700768B (zh) 一种应用的处理方法及相关装置
CN114706633B (zh) 预加载方法、电子设备及存储介质
CN116700552B (zh) 应用接续方法和终端设备
CN111158987A (zh) 微服务架构的健康检查方法及装置
CN114443117B (zh) 一种定制包的处理方法及电子设备
KR20190098516A (ko) 어플리케이션과 관련된 데이터를 관리하기 위한 방법 및 그 전자 장치
CN110704157B (zh) 一种应用启动方法、相关装置及介质
CN117176850B (zh) 界面显示方法及相关装置
WO2023169212A1 (zh) 一种识别应用程序中sdk的方法、终端及服务器
CN115033193B (zh) 转屏处理方法、装置、介质及电子设备
CN115828227B (zh) 识别广告弹窗的方法、电子设备及存储介质
WO2024032022A1 (zh) 一种应用图标的可视化方法和设备
KR20180060546A (ko) 전자 장치의 태그 입력 장치 및 그 제어 방법
WO2024046260A1 (zh) 一种热补丁方法及相关装置
CN109726111B (zh) 测试规则订制方法、设备、装置及计算机可读存储介质
WO2024067167A1 (zh) 应用数据管理方法、设备、产品及介质
WO2024087808A1 (zh) 界面显示方法及电子设备
CN117111965A (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
GR01 Patent grant
GR01 Patent grant