CN112579206A - 应用启动性能优化方法及终端设备 - Google Patents
应用启动性能优化方法及终端设备 Download PDFInfo
- Publication number
- CN112579206A CN112579206A CN202011550089.0A CN202011550089A CN112579206A CN 112579206 A CN112579206 A CN 112579206A CN 202011550089 A CN202011550089 A CN 202011550089A CN 112579206 A CN112579206 A CN 112579206A
- Authority
- CN
- China
- Prior art keywords
- file
- oat
- dex
- dex file
- comparison result
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供应用启动性能优化方法及终端设备。包括:在应用启动时,获取所述应用的插件中的dex文件;判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。由此避免因为静态编译时间过长而导致的应用启动性能较差的问题。
Description
技术领域
本发明涉及信息处理技术领域,特别涉及一种应用启动性能优化方法及终端设备。
背景技术
在应用启动过程中,有时需要进行热补丁修复来对应用中的版本缺陷进行修复,在进行热补丁修复的过程中,需要加载dex文件。
现有技术中,加载dex文件的方法会先判断是否需要对该dex文件执行AOT编译来生成oat文件,如果该dex文件没有生成过对应的oat文件,或者之前生成的oat文件已经失效,则需要同步等待编译完成后才能执行后续的操作。因此如果要加载的dex文件太大的话,耗时会较多,从而导致当前应用启动性能较差。
发明内容
本公开示例性的实施方式中提供一种应用启动性能优化方法,用于优化当前应用启动性能。
本公开的第二方面提供一种终端设备,包括存储器和处理器,其中:
所述存储器,被配置为保存插件中的dex文件以及oat文件;
所述处理器,被配置为:
在应用启动时,获取所述应用的插件中的dex文件;
判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;
根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。
本实施例中通过将dex文件的大小与预设阈值进行比对,并根据比对的结果确定出需要加载的文件,由于过大的dex文件进行静态编译时会导致因为编译时间过长而导致应用启动性能变差,所以,本公开通过dex文件的大小来确定出需要加载的文件,也即通过dex文件的大小来判断出是否对dex文件进行静态编译。以此来优化应用启动的性能,避免因为静态编译时间过长而导致的应用启动性能较差的问题。
在一个实施例中,所述处理器在执行所述根据所述比对结果加载对应的需要加载的文件时,具体被配置为:
若所述比对结果为所述dex文件的大小小于所述预设阈值,则驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件;或
若所述比对结果为所述dex文件的大小不小于所述预设阈值,则驱动父进程加载所述dex文件。
本实施例根据不同的比对结果执行不同的操作,避免因为静态编译耗时来导致的应用启动性能较差的问题。
在一个实施例中,所述比对结果为所述dex文件的大小不小于所述预设阈值;
所述处理器在执行所述根据所述比对结果加载对应的需要加载的文件,还被配置为:
驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
本实施例在dex文件的大小不小于所述预设阈值时,通过异步执行的方式来执行静态编译,以此使得下次应用启动时可以直接加载此次静态编译后的文件。
在一个实施例中,所述处理器还被配置为:
所述驱动子进程对所述dex文件执行静态编译,得到oat文件之前,确定中央处理的负载值小于预设负载值。
本实施例通过保证中央处理器负载的情况下来执行静态编译,以此来保证中央处理器的性能。
在一个实施例中,所述处理器还被配置为:
根据以下方式确定出所述oat文件是否过期:
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同,则确定所述oat文件未过期;或
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和不相同,则确定所述oat文件已过期。
本实施例通过所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同来确定出oat文件是否过期,使得确定出的更加准确。
本公开的第二方面提供一种应用启动优化方法,所述方法包括:
在应用启动时,获取所述应用的插件中的dex文件;
判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;
根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。
在一个实施例中,所述根据所述比对结果加载对应的需要加载的文件,包括:
若所述比对结果为所述dex文件的大小小于所述预设阈值,则驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件;或
若所述比对结果为所述dex文件的大小不小于所述预设阈值,则驱动父进程加载所述dex文件。
在一个实施例中,所述比对结果为所述dex文件的大小不小于所述预设阈值;
所述根据所述比对结果加载对应的需要加载的文件,还包括:
驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
在一个实施例中,所述驱动子进程对所述dex文件执行静态编译,得到oat文件之前,所述方法还包括:
确定中央处理的负载值小于预设负载值。
在一个实施例中,根据以下方式确定出所述oat文件是否过期:
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同,则确定所述oat文件未过期;或
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和不相同,则确定所述oat文件已过期。
根据本公开实施例的第三方面,提供一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第二方面所述的方法。
根据本公开实施例提供的第四方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行如第二方面所述的方法。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本公开一个实施例中的终端设备的结构示意图;
图2为根据本公开一个实施例的应用启动性能优化方法的流程示意图之一;
图3为根据本公开一个实施例的应用启动性能优化方法的流程示意图之二;
图4为根据本公开一个实施例的应用启动性能优化装置;
图5为根据本公开一个实施例的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
现有技术中,加载dex文件的方法会先判断是否需要对该dex文件执行AOT编译来生成oat文件,如果该dex文件没有生成过对应的oat文件,或者之前生成的oat文件已经失效,则需要同步等待编译完成后才能执行后续的操作。因此如果要加载的dex文件太大的话,耗时会较多,从而导致当前应用启动性能较差。
因此,本公开提供一种应用启动性能优化方法,通过将dex文件的大小与预设阈值进行比对,并根据比对的结果确定出需要加载的文件,由于过大的dex文件进行静态编译时会导致因为编译时间过长而导致应用启动性能变差,所以,本公开通过dex文件的大小来确定出需要加载的文件,也即通过dex文件的大小来判断出是否对dex文件进行静态编译。以此来优化应用启动的性能,避免因为静态编译时间过长而导致的应用启动性能较差的问题。
在对本公开的方案进行详细介绍之前,首先对本公开的终端设备的结构进行介绍,图1为本公开中的终端设备的结构示意图。如图1所示,本公开实施例中的终端设备包括:射频(Radio Frequency,RF)电路110、电源120、处理器130、存储器140、输入单元150、显示单元160、摄像头170、通信接口180、以及无线保真(Wireless Fidelity,WiFi)模块190等部件。其中,无线保真模块190为本公开中的无线网络模块。
本领域技术人员可以理解,图1中示出的终端设备的结构并不构成对终端设备的限定,本公开实施例提供的终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对终端设备100的各个构成部件进行具体的介绍:
所述RF电路110可用于通信或通话过程中,数据的接收和发送。特别地,所述RF电路110在接收到基站的下行数据后,发送给所述处理器130处理;另外,将待发送的上行数据发送给基站。通常,所述RF电路110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。
此外,RF电路110还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
WiFi技术属于短距离无线传输技术,所述终端设备100通过WiFi模块190(即本公开前文所述的无线网络模块)可以连接的接入点(Access Point,AP),从而实现数据网络的访问。所述WiFi模块190可用于通信过程中,数据的接收和发送。
所述终端设备100可以通过所述通信接口180与其他终端实现物理连接。可选的,所述通信接口180与所述其他终端的通信接口通过电缆连接,实现所述终端设备100和其他终端之间的数据传输。
所述终端设备100能够实现通信业务,所述终端设备100需要具有数据传输功能,即所述终端设备100内部需要包含通信模块。虽然图1示出了所述RF电路110、所述WiFi模块190、和所述通信接口180等通信模块,但是可以理解的是,所述终端设备100中存在上述部件中的至少一个或者其他用于实现通信的通信模块(如蓝牙模块),以进行数据传输。
所述存储器140可用于存储软件程序以及模块。所述处理器130通过运行存储在所述存储器140的软件程序以及模块,从而执行所述终端设备100的各种功能应用以及数据处理,并且当处理器130执行存储器140中的程序代码后,可以实现本公开实施例图1中的部分或全部过程。
可选的,所述存储器140可以主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、各种应用程序(比如通信应用)以及进行WLAN连接的各个模块等;存储数据区可存储根据所述终端的使用所创建的数据等。
此外,所述存储器140可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述输入单元150可用于接收用户输入的数字或字符信息、以及产生与所述终端设备100的用户设置以及功能控制有关的键信号输入。
可选的,输入单元150可包括触控面板151以及其他输入终端152。
其中,所述触控面板151,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在所述触控面板151上或在所述触控面板151附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,所述触控面板151可以包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给所述处理器130,并能接收所述处理器130发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现所述触控面板151。
可选的,所述其他输入终端152可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
所述显示单元160可用于显示由用户输入的信息或提供给用户的信息以及所述终端设备100的各种菜单。所述显示单元160即为所述终端设备100的显示系统,用于呈现界面,实现人机交互。
所述显示单元160可以包括显示面板161。可选的,所述显示面板161可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)等形式来配置。
进一步的,所述触控面板151可覆盖所述显示面板161,当所述触控面板151检测到在其上或附近的触摸操作后,传送给所述处理器130以确定触摸事件的类型,随后所述处理器130根据触摸事件的类型在所述显示面板161上提供相应的视觉输出。
虽然在图1中,所述触控面板151与所述显示面板161是作为两个独立的部件来实现所述终端设备100的输入和输入功能,但是在某些实施例中,可以将所述触控面板151与所述显示面板161集成而实现所述终端设备100的输入和输出功能。
所述处理器130是所述终端设备100的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在所述存储器140内的软件程序和/或模块,以及调用存储在所述存储器140内的数据,执行所述终端设备100的各种功能和处理数据,从而实现基于所述终端设备的多种业务。
可选的,所述处理器130可包括一个或多个处理单元。可选的,所述处理器130可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到所述处理器130中。
所述摄像头170,用于实现所述终端设备100的拍摄功能,拍摄图片或视频。
所述终端设备100还包括用于给各个部件供电的电源120(比如电池)。可选的,所述电源120可以通过电源管理系统与所述处理器130逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
尽管未示出,所述终端设备100还可以包括至少一种传感器,在此不再赘述。
在介绍完本公开中的智能设备的结构示意图之后,下面,结合附图对本公开的方案进行详细的介绍,图2为本公开的应用启动性能优化方法的流程示意图,可包括以下步骤:
步骤201:在应用启动时,获取所述应用的插件中的dex文件;
步骤202:判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
在一个实施例中,根据以下方式确定出所述oat文件是否过期:
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同,则确定所述oat文件未过期;或若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和不相同,则确定所述oat文件已过期。
其中,校验和(checksum)是指传输位数的累加,其作用为用于校验对应的文件是否被修改。
例如,若oat文件的校验和为0102030405060708,与oat文件对应的镜像文件的校验和为0102030405060708,则确定出oat文件的校验和与oat文件所对应的镜像文件的校验和相同,则确定出所述oat文件并未被修改,即表示该oat文件未过期。
若oat文件的校验和为0102030405060708,与oat文件对应的镜像文件的校验和为0102030405060719,则确定出oat文件的校验和与oat文件所对应的镜像文件的校验和不相同,则确定出该oat文件被修改,即确定出该oat文件已过期。
步骤203:若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;
步骤204:根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。
其中,可包括以下两种方式:
(1)若所述比对结果为所述dex文件的大小小于所述预设阈值,则驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件。
(2)若所述比对结果为所述dex文件的大小不小于所述预设阈值,则驱动父进程加载所述dex文件,同时驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
其中,在方式(2)中驱动子进程对所述dex文件执行静态编译的条件为:
确定中央处理的负载值小于预设负载值。
例如,中央处理器的负载值为A,预设负载值为B,若A小于B,则确定中央处理器的负载值小于预设负载值,则可驱动子进程对所述dex文件执行静态编译。若A不小于B,则确定中央处理器的负载值不小于预设负载值,则放弃此次编译,以此保证应用启动的性能。
由此,通过将dex文件的大小与预设阈值进行比对,并根据比对的结果确定出需要加载的文件,由于过大的dex文件进行静态编译时会导致因为编译时间过长而导致应用启动性能变差,所以,本公开通过dex文件的大小来确定出需要加载的文件,也即通过dex文件的大小来判断出是否对dex文件进行静态编译。以此来优化应用启动的性能,避免因为静态编译时间过长而导致的应用启动性能较差的问题。
为了进一步的了解本公开的技术方案,下面结合图3进行详细的说明,可包括以下步骤:
步骤301:在应用启动时,获取所述应用的插件中的dex文件;
步骤302:判断所述dex文件是否符合预设的直接加载条件;若符合预设的直接加载条件,则执行步骤303,若不符合预设的直接加载条件,则执行步骤304;
其中,所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
步骤303:加载所述dex文件所对应的oat文件;
步骤304:将所述dex文件的大小与预设阈值进行比对,得到比对结果;
步骤305:判断所述比对结果是否为所述dex文件的大小小于所述预设阈值,若是,则执行步骤306,若否,则执行步骤307;
步骤306:驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件;
步骤307:驱动父进程加载所述dex文件;并驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
基于相同的公开构思,本公开如上所述的应用启动性能优化方法还可以由一种应用启动性能优化装置实现。该应用启动性能优化装置的效果与前述方法的效果相似,在此不再赘述。
图4为根据本公开一个实施例的应用启动性能优化装置的结构示意图。
如图4所示,本公开的应用启动性能优化装置400可以包括获取模块410、直接加载条件判断模块420、比对模块430和加载模块440。
获取模块410,用于在应用启动时,获取所述应用的插件中的dex文件;
直接加载条件判断模块420,用于判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
比对模块430,用于若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;
加载模块440,用于根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。
在一个实施例中,所述加载模块440,具体用于:
若所述比对结果为所述dex文件的大小小于所述预设阈值,则驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件;或
若所述比对结果为所述dex文件的大小不小于所述预设阈值,则驱动父进程加载所述dex文件。
在一个实施例中,所述比对结果为所述dex文件的大小不小于所述预设阈值;
所述加载模块440,还用于:
驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
在一个实施例中,所述装置还包括:
负载值确定模块450,用于所述驱动子进程对所述dex文件执行静态编译,得到oat文件之前,确定中央处理的负载值小于预设负载值。
在一个实施例中,所述装置还包括:
过期文件确定模块,用于根据以下方式确定出所述oat文件是否过期:
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同,则确定所述oat文件未过期;或
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和不相同,则确定所述oat文件已过期。
在介绍了本公开示例性实施方式的一种应用启动性能优化方法及终端设备之后,接下来,介绍根据本公开的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本公开的电子设备可以至少包括至少一个处理器、以及至少一个计算机存储介质。其中,计算机存储介质存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本公开各种示例性实施方式的应用启动性能优化方法中的步骤。例如,处理器可以执行如图2中所示的步骤201-204。
下面参照图5来描述根据本公开的这种实施方式的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500以通用电子设备的形式表现。电子设备500的组件可以包括但不限于:上述至少一个处理器501、上述至少一个计算机存储介质502、连接不同系统组件(包括计算机存储介质502和处理器501)的总线503。
总线503表示几类总线结构中的一种或多种,包括计算机存储介质总线或者计算机存储介质控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
计算机存储介质502可以包括易失性计算机存储介质形式的可读介质,例如随机存取计算机存储介质(RAM)521和/或高速缓存存储介质522,还可以进一步包括只读计算机存储介质(ROM)523。
计算机存储介质502还可以包括具有一组(至少一个)程序模块524的程序/实用工具525,这样的程序模块524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备500也可以与一个或多个外部设备504(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,电子设备500还可以通过网络适配器506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器506通过总线503与用于电子设备500的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本公开提供的一种应用启动性能优化方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的应用启动性能优化方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取计算机存储介质(RAM)、只读计算机存储介质(ROM)、可擦式可编程只读计算机存储介质(EPROM或闪存)、光纤、便携式紧凑盘只读计算机存储介质(CD-ROM)、光计算机存储介质件、磁计算机存储介质件、或者上述的任意合适的组合。
本公开的实施方式应用启动性能优化的程序产品可以采用便携式紧凑盘只读计算机存储介质(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘计算机存储介质、CD-ROM、光学计算机存储介质等)上实施的计算机程序产品的形式。
本公开是参照根据本公开的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读计算机存储介质中,使得存储在该计算机可读计算机存储介质中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种终端设备,其特征在于,包括存储器和处理器,其中:
所述存储器,被配置为保存插件中的dex文件以及oat文件;
所述处理器,被配置为:
在应用启动时,获取所述应用的插件中的dex文件;
判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;
根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。
2.根据权利要求1所述的终端设备,其特征在于,所述处理器在执行所述根据所述比对结果加载对应的需要加载的文件时,具体被配置为:
若所述比对结果为所述dex文件的大小小于所述预设阈值,则驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件;或
若所述比对结果为所述dex文件的大小不小于所述预设阈值,则驱动父进程加载所述dex文件。
3.根据权利要求2所述的终端设备,其特征在于,所述比对结果为所述dex文件的大小不小于所述预设阈值;
所述处理器在执行所述根据所述比对结果加载对应的需要加载的文件,还被配置为:
驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
4.根据权利要求3所述的终端设备,其特征在于,所述处理器还被配置为:
所述驱动子进程对所述dex文件执行静态编译,得到oat文件之前,确定中央处理的负载值小于预设负载值。
5.根据权利要求1~4中任一所述的终端设备,其特征在于,所述处理器还被配置为:
根据以下方式确定出所述oat文件是否过期:
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同,则确定所述oat文件未过期;或
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和不相同,则确定所述oat文件已过期。
6.一种应用启动性能优化方法,其特征在于,所述方法包括:
在应用启动时,获取所述应用的插件中的dex文件;
判断所述dex文件是否符合预设的直接加载条件;所述预设的直接加载条件为所述dex文件有对应的oat文件,且所述oat文件未过期;其中所述oat文件是对所述dex文件进行静态编译后得到的;
若确定出所述dex文件不符合所述预设加载条件,则将所述dex文件的大小与预设阈值进行比对,得到比对结果;
根据所述比对结果加载对应的需要加载的文件,所述需要加载的文件包括所述dex文件或所述oat文件。
7.根据权利要求6所述的方法,其特征在于,所述根据所述比对结果加载对应的需要加载的文件,包括:
若所述比对结果为所述dex文件的大小小于所述预设阈值,则驱动子进程对所述dex文件执行静态编译,得到与所述dex文件对应的oat文件,并驱动父进程加载所述oat文件;或
若所述比对结果为所述dex文件的大小不小于所述预设阈值,则驱动父进程加载所述dex文件。
8.根据权利要求7所述的方法,其特征在于,所述比对结果为所述dex文件的大小不小于所述预设阈值;
所述根据所述比对结果加载对应的需要加载的文件,还包括:
驱动子进程对所述dex文件执行静态编译,得到oat文件,所述oat文件为下次应用启动时需要加载的文件。
9.根据权利要求8所述的方法,其特征在于,所述驱动子进程对所述dex文件执行静态编译,得到oat文件之前,所述方法还包括:
确定中央处理的负载值小于预设负载值。
10.根据权利要求6~9中任一所述的方法,其特征在于,根据以下方式确定出所述oat文件是否过期:
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和相同,则确定所述oat文件未过期;或
若所述oat文件的校验和与所述oat文件对应的镜像文件的校验和不相同,则确定所述oat文件已过期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011550089.0A CN112579206B (zh) | 2020-12-24 | 2020-12-24 | 应用启动性能优化方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011550089.0A CN112579206B (zh) | 2020-12-24 | 2020-12-24 | 应用启动性能优化方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579206A true CN112579206A (zh) | 2021-03-30 |
CN112579206B CN112579206B (zh) | 2023-03-28 |
Family
ID=75140471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011550089.0A Active CN112579206B (zh) | 2020-12-24 | 2020-12-24 | 应用启动性能优化方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579206B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993755B1 (en) * | 2001-10-24 | 2006-01-31 | Sun Microsystems, Inc. | Dynamic compilation control |
CN104580307A (zh) * | 2013-10-21 | 2015-04-29 | 南京中兴新软件有限责任公司 | 文件上传校验方法及装置 |
CN105227589A (zh) * | 2014-05-29 | 2016-01-06 | 北京奇虎科技有限公司 | 文件下载方法及装置 |
CN105303072A (zh) * | 2015-10-26 | 2016-02-03 | 李晖 | 基于art模式的软件加固方法及装置 |
CN106066686A (zh) * | 2016-05-31 | 2016-11-02 | 广东欧珀移动通信有限公司 | 一种信息处理方法及终端设备 |
CN107967157A (zh) * | 2017-08-17 | 2018-04-27 | 青岛海信移动通信技术股份有限公司 | 一种生成ota中间包过程中的数据处理方法及装置 |
-
2020
- 2020-12-24 CN CN202011550089.0A patent/CN112579206B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993755B1 (en) * | 2001-10-24 | 2006-01-31 | Sun Microsystems, Inc. | Dynamic compilation control |
CN104580307A (zh) * | 2013-10-21 | 2015-04-29 | 南京中兴新软件有限责任公司 | 文件上传校验方法及装置 |
CN105227589A (zh) * | 2014-05-29 | 2016-01-06 | 北京奇虎科技有限公司 | 文件下载方法及装置 |
CN105303072A (zh) * | 2015-10-26 | 2016-02-03 | 李晖 | 基于art模式的软件加固方法及装置 |
CN106066686A (zh) * | 2016-05-31 | 2016-11-02 | 广东欧珀移动通信有限公司 | 一种信息处理方法及终端设备 |
CN107967157A (zh) * | 2017-08-17 | 2018-04-27 | 青岛海信移动通信技术股份有限公司 | 一种生成ota中间包过程中的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112579206B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106066686B (zh) | 一种信息处理方法及终端设备 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN104915241A (zh) | 一种虚拟机迁移控制方法及装置 | |
WO2014169678A1 (en) | Method and device for signing program crash | |
CN105278937A (zh) | 一种显示弹出框消息的方法及装置 | |
CN103544033A (zh) | 应用程序回退方法、装置及相关设备 | |
CN109791497B (zh) | 一种执行热补丁的方法、装置及终端 | |
CN104636047A (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN103473163A (zh) | 应用程序检测方法及装置 | |
CN103473092A (zh) | 一种下载应用的处理方法、装置及终端设备 | |
CN105760203A (zh) | 一种软件升级方法及终端设备 | |
CN107506251B (zh) | 对智能设备进行复位的方法及装置 | |
CN104778055A (zh) | 显示进度条的方法和装置 | |
CN103631625A (zh) | 一种数据获取的方法、用户端、服务器及系统 | |
CN112579264A (zh) | 一种应用程序跳转的方法、终端及计算机存储介质 | |
CN104850274A (zh) | 一种通过红外感应实现按键功能的方法和装置 | |
CN104699501A (zh) | 一种运行应用程序的方法及装置 | |
CN109107164A (zh) | 移动终端及其游戏性能调节的方法和装置 | |
CN103455333A (zh) | 一种桌面图标处理方法、装置和移动终端 | |
EP3129883B1 (en) | Method and apparatus for repairing dynamic link library file | |
CN105631069A (zh) | 智能设备控制方法及装置 | |
CN104102560A (zh) | 系统性能测试的方法及装置 | |
CN112579206B (zh) | 应用启动性能优化方法及终端设备 | |
CN104751333A (zh) | 一种信息交互的方法、装置及系统 | |
CN104866288A (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 |