CN113031955A - 应用程序预编译的方法、装置以及电子设备 - Google Patents
应用程序预编译的方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN113031955A CN113031955A CN201911349773.XA CN201911349773A CN113031955A CN 113031955 A CN113031955 A CN 113031955A CN 201911349773 A CN201911349773 A CN 201911349773A CN 113031955 A CN113031955 A CN 113031955A
- Authority
- CN
- China
- Prior art keywords
- compiling
- application program
- application
- electronic device
- configuration file
- 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/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种应用程序预编译的方法、装置以及电子设备。所述方法包括:当处于应用程序的安装阶段时,检测所述电子设备当前的运行状态;若所述运行状态满足指定条件,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元;对所述热点编译单元进行预编译。从而通过检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。
Description
技术领域
本申请涉计算机技术领域,更具体地,涉及一种应用程序预编译的方法、装置以及电子设备。
背景技术
在电子设备中,可以通过提前编译的方式来实现一定程度的提升应用程序的运行效率。但是,在相关的编译方式会造成电子设备的运行性能受到影响,降低了用户体验。
发明内容
鉴于上述问题,本申请提出了一种应用程序预编译的方法、装置以及电子设备,以改善上述问题。
第一方面,本申请提供了一种应用程序预编译的方法,应用于电子设备,所述方法包括:检测所述电子设备当前的运行状态;若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元;对所述热点编译单元进行预编译。
第二方面,本申请提供了一种应用程序预编译的装置,运行于电子设备,所述装置包括:状态检测单元,用于检测所述电子设备当前的运行状态;信息获取单元,用于若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元;编译单元,用于对所述热点编译单元进行预编译。
第三方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
本申请提供的一种应用程序预编译的方法、装置以及电子设备,当检测所述电子设备的所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的储有所述应用程序对应的热点编译单元的配置文件,对所述热点编译单元进行预编译。从而检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提出的一种应用程序预编译的方法的运行环境示意图;
图2示出了本申请实施例提出的另一种应用程序预编译的方法的运行环境示意图;
图3示出了本申请实施例提出的再一种应用程序预编译的方法的运行环境示意图;
图4示出了本申请实施例提出的一种应用程序预编译的方法的流程图;
图5示出了本申请另一实施例提出的一种应用程序预编译的方法的流程图;
图6示出了本申请再一实施例提出的一种应用程序预编译的方法的流程图;
图7示出了本申请又一实施例提出的一种应用程序预编译的方法的流程图;
图8示出了本申请提出的一种应用程序预编译的装置的结构框图;
图9示出了本申请提出的另一种应用程序预编译的装置的结构框图;
图10示出了本申请的用于执行根据本申请实施例的应用程序预编译的方法的电子设备的结构框图。
图11是本申请实施例的用于保存或者携带实现根据本申请实施例的应用程序预编译的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着电子设备中应用程序的运行方式的发展,电子设备中的应用程序可以在运行时先通过解析器(Interpreter)直接解释执行,执行过程中记录每个编译单元的调用次数和循环次数,当调用次数和循环次数超过设定阈值,则对应的编译单元被记录为热点编译单元。其中,编译单元可以理解为应用程序的源码中的函数、方法(method)或者类(class)。进一步的,热点编译单元会被识别并被JIT(Just In Time,即时编译)编译后存储并生成profile文件以记录热点编译单元的信息。在这种情况下,在一些情况下,电子设备的***会扫描profile文件并执行AOT(Ahead Of Time,预编译)过程进行编译。
但是,发明人在对该方式进行研究中发现,在相关的profile文件运行以进行热点编译单元的编译过程中,都是固定在一个时间段进行的,这样就会造成电子设备即使已经在处理资源较为紧张的状态下,依然需要消耗更多的处理资源进行热点编译单元的编译,进而造成电子设备的运行性能下降。例如,在电子设备安装应用程序的过程中,可能会伴随应用程序的安装包同时下载有应用程序对应的热点编译单元,而若该应用程序本身的安装包较大的情况下,就需要消耗较多电子设备的处理资源进行安装包的安装,但是若依然在安装阶段进行热点编译单元的预编译操作,那么就可能会造成安装包的安装过程延长,造成用户体验下降。
因此,提出了申请提供的应用程序预编译的方法、装置以及电子设备,当处于应用程序的安装阶段时,检测所述电子设备当前的运行状态,若所述运行状态满足指定条件,获取所述应用程序对应的储有所述应用程序对应的热点编译单元的配置文件,对所述热点编译单元进行预编译。从而通过在应用程序安装阶段检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。
下面先对本申请实施例所涉及的一种场景进行介绍。
请参阅图1,在图1所涉及的场景中,包括有多个电子设备100以及服务器200。其中,多个电子设备100通过网络与服务器200进行数据交互。
在多个电子设备100都运行有目标应用程序,而每个电子设备100所运行的目标应用程序都对应生成有配置文件(可以为前述的profile文件)120。在一种方式下,多个电子设备100可以将自己安装的目标应用程序的配置文件120上传到服务器200中,以便服务器可以得到目标应用程序对应的多个配置文件120,进而对该多个配置文件120进行融合处理,提取该多个配置文件120所包括的多个热点编译单元,然后得到包括该多个热点编译单元的配置文件210,再将配置文件210分别返回给该多个电子设备100。其中,该多个热点编译单元可以为多个配置文件120去重后的热点编译单元,也可以为多个配置文件120中所有的热点编译单元中编译次数超过阈值的热点编译单元,还可以为指定功能模块对应的热点编译单元。
此外,如图2所示,还可以由服务器220直接将该配置文件210以及目标应用程序的安装程序220的程序安装包230发送给还未安装目标应用程序的电子设备130,以便可以使得电子设备130在安装目标应用程序时,就可以运行配置文件210,以进行部分热点编译单元的预编译。示例性的,电子设备130还可以根据当前的运行状态来确定配置文件210的运行时机。
需要说明的是,在图2所示的环境中,进行收集多个配置文件120并对该多个配置文件120进行处理得到配置文件210的服务器可以有为单个服务器,也可以服务器集群。并且,进行收集多个配置文件120并对该多个配置文件120进行处理得到配置文件210的服务器可以和后续下发程序安装包230的服务器为不同的服务器。例如,如图3所示,在图3所示的情况下,服务器200只用于执行前述的收集多个电子设备100上传的配置文件,然后将所收集到的配置文件再发送给服务器201,然后由服务器201来执行提取该多个配置文件120所包括的多个热点编译单元,然后基于该多个热点编译单元得到配置文件210,再将配置文件210分别返回给该多个电子设备100。此外,也可以服务器201也可以将生成的配置文件210发送给服务器200,进而由服务器200来转发给多个电子设备100(图中未示出)。其中,需要说明的是,服务器201中可以直接运行有应用分发平台,在这种情况下,服务器201可以直接将配置文件210以配置在程序安装包230的中发送给还未安装目标应用程序的电子设备130。而若应用分发平***立运行的情况下,可以服务器201可以将配置文件210发送给应用分发平台,以便应用分发平台将配置文件210以配置在程序安装包230的中发送给还未安装目标应用程序的电子设备130。
再者,在后续实施例中所提及的配置文件可以为配置文件210。其中,新生成的配置文件210中的热点编译单元可以为服务器200编译后的热点编译单元,也可以为还未运行编译的热点编译单元。在新生成的配置文件210中的热点编译单元为还未运行编译的热点编译单元的情况下,可以有接收到新生成的配置文件210的电子设备在运行目标应用程序之前进行编译,或者在安装目标应用程序时就进行编译。而为服务器200编译后的热点编译单元的情况下,可以为服务器200基于所要分发的电子设备的硬件环境进行编译后的热点编译单元。
下面将结合具体实施例对本申请内容进行介绍。
请参阅图4,本申请提供的一种应用程序预编译的方法,应用于电子设备,所述方法包括:
步骤S110:检测所述电子设备当前的运行状态。
需要说明的是,在本实施例中,电子设备在从服务器获取应用程序的安装文件时,所获取的安装文件中除了应用程序本身的安装程序外,还可以携带有应用程序对应的配置文件,该配置文件可以为前述介绍内容中的配置文件210。
此外,作为另外一种方式,应用程序所对应的存储有热点编译单元还可以存储在其他区域(即未存储应用程序安装包的服务器中),那么在这种情况下,电子设备在向存储有安装文件的服务器发起安装文件请求时,该存储有安装文件的服务器可以向电子设备返回一指向存储有配置文件的服务器的重定向信息,以便电子设备同时会向该存储有配置文件的服务器发起配置文件请求。那么在这种情况下,作为一种方式,电子设备可以在接收到安装文件以及配置文件后再触发进入应用程序的安装阶段,以便电子设备可以在运行安装文件的过程中就可以实现预编译热点编译单元。
其中,电子设备的运行状态可以包括多种状态。
作为一种方式,电子设备的运行状态可以包括硬件状态。可以理解的是,电子设备在运行过程中其所包括的处理器(CPU)、图形处理器(GPU)以及存储器等硬件设备都会处于运行状态,以完成电子设备运行过程中的数据处理以及数据读写操作。而若电子设备的硬件设备处于较高频率的运行状态下,可能会影响电子设备的运行效率。示例性的,若该安装过程为应用程序的安装过程中,电子设备会进行安装包的解压以及对应的目录的创建,甚至还包括安装包解压得到的文件的处理过程。而若在这个过程中,过度的占用处理器的处理资源,那么就会造成应用程序的安装过程会被延长。而若在应用程序的安装过程中,处理器即使处于应用程序的安装过程中依然有还剩余有较多的处理资源,那么即使再进行其他的数据处理操作,可能对应用程序的安装过程影响较小。那么在这中情况下,运行状态可以包括处理器的剩余处理资源,若检测到剩余处理资源不小于指定资源阈值,则表征运行状态满足指定条件。从而通过这种方式,可以在安装阶段检测到剩余处理资源不小于指定资源阈值的情况下,才进行热点编译单元的编译操作,以免影响电子设备的运行性能。
作为另一种方式,电子设备的运行状态可以包括硬件器件的状态。可以理解的是,电子设备可以包括有屏幕以及传感器等硬件器件。而硬件器件处理不同的运动状态可能会表征用户不同的使用状态。例如,若传感器包括有配置在前置摄像头附近的距离传感器,且该距离传感器检测到距离值小于指定距离阈值,则表征用户当前处于接听电话的状态。在例如,若屏幕当前处理息屏状态,则可以表征用户当前并未关注电子设备。那么在这种情况下,电子设备的运行状态可以包括屏幕的运行状态,若处于息屏状态,则判定运行状态满足指定条件,而若电子设备处于亮屏状态,则判定不满足指定条件。从而通过检测屏幕的运行状态的方式,可以在用户不关注电子设备的情况下进行热点编译单元的预编译操作,以便减少热点编译单元的预编译操作对用户使用电子设备造成干扰。
作为再一种方式,电子设备的运行状态可以包括软件状态。需要说明的是,电子设备可以同时运行多个应用程序,而当前处于运行状态的应用程序的数量越多,那么电子设备再执行另外的数据处理任务的速率就会更慢。在这种方式下,电子设备的运行状态可以包括当前处于运行状态的应用程序的数量。
再者,电子设备的运行状态可以包括前述多种方式中的一个或多个。需要说明的是,在一些情况下,单纯通过一种前述的运行状态判断方式,无法较为准确的判断电子设备当前运行状态。示例性的,电子设备中的一些应用程序可以在后台运行,甚至是在息屏状态下运行,那么若电子设备检测到当前处于息屏状态,就直接判定电子设备的运行状态满足指定条件,但是当前处于后台运行的应用程序本身又会占用较多的数据处理资源的情况下,就可能会使得电子设备进行热点编译单元的编译过程进一步造成电子设备的性能下降。例如,电子设备检测到当前处于息屏状态,但是处理器剩余的处理资源为10%的处理资源,那么若电子设备因为单独因为电子设备处于息屏状态就判定电子设备的运行状态满足指定条件,那么就会触发进行后续的热点编译单元的编译操作,进而会造成处理器的剩余处理资源降低到更低,识别会影响电子设备在息屏状态下所进行的其他数据处理操作。
那么为了改善上述问题,作为一种方式,电子设备的运作状态可以包括硬件器件的运行状态以及硬件状态。可选的,电子设备可以在检测到当前处于息屏状态,且剩余处理资源不低于指定阈值的情况下,判定电子设备的运行状态满足指定条件。其中,可选的,该指定阈值低于前述的指定资源阈值。需要说明的是,在电子设备处于息屏状态下,用户较大概率并未关注电子设备的运行状态,那么在这种情况下可以不用严苛的限定剩余处理资源,即在同时对硬件器件的运行状态以及硬件状态进行判定的情况下的指定阈值,可以低于单独以硬件状态作为判断依据的情况下的指定资源阈值。
作为另一种方式,电子设备可以根据是否处于应用程序安装来配置指定条件的内容。可选的,若在应用程序处于安装阶段时,所述指定条件包括:所述电子设备处于灭屏状态;若不处于应用程序处于安装阶段时,所述指定条件包括:所述电子设备的电量满足指定电量阈值、所述电子设备的可用存储空间不小于指定空间阈值以及所述电子设备的温度不高于指定温度阈值中的至少一个。
步骤S120:若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元。
需要说明的是,在本申请实施例中,安装阶段可以理解为应用程序的安装阶段,也可以理解为应用程序的更新文件的安装阶段。
需要说明的是,若电子设备检测到运行状态满足指定条件,则表征电子设备当前即使同时进行热点编译单元的预编译操作,也不会使得电子设备剩余的处理资源过紧而造成电子设备的运行性能受到影响,或者是表征电子设备当前即使同时进行热点编译单元的预编译操作,造成了电子设备剩余的处理资源过紧,但是因为用户处于未关注电子设备的状态,对于用户而言也不会感知到剩余的处理资源过紧而造成电子设备的运行性能受到影响。
步骤S121:对所述热点编译单元进行预编译。
需要说明的是,作为一种方式,电子设备在步骤S120中所获取到的配置文件为还未进行编译的配置文件,即可以理解为dex文件。而在本实施例中对于配置文件的预编译的操作可以理解为进行AOT编译,即将dex格式的配置文件经过预编译后转换为oat或者odex格式的文件。
步骤S130:若所述运行状态不满足指定条件,周期性检测所述电子设备是否满足所述指定条件,直到检测到所述电子设备满足所述指定条件,且对所述热点编译单元进行预编译。
需要说明的是,若在安装阶段检测到运行状态不满足指定条件,那么为了不影响电子设备当前的运行状态,可以选择在后续的运行过程中进行预编译的操作。进而就可以周期性的,检测所述电子设备是否满足所述指定条件。例如,可以每天的在固定时间段检测一次是否满足所述指定条件。其中,当电子设备完成对配置文件的热编译单元的编译后,就可以停止周期性检测所述电子设备是否满足所述指定条件。
本申请提供的一种应用程序预编译的方法,当检测所述电子设备的所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的储有所述应用程序对应的热点编译单元的配置文件,对所述热点编译单元进行预编译。从而检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。
请参阅图5,本申请提供的一种应用程序预编译的方法,应用于电子设备,所述方法包括:
步骤S201:检测所述电子设备当前的运行状态。
步骤S202:若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元。
步骤S203:对所述热点编译单元进行预编译。
步骤S204:若所述运行状态不满足指定条件,且应用程序处于安装阶段时,不对所述热点编译单元进行预编译。
步骤S205:若所述运行状态满足指定条件,且所述应用程序的配置文件在所述安装阶段未进行预编译,获取所述应用程序对应的配置文件。
步骤S206:对所述热点编译单元进行预编译。
作为一种方式,在对所述热点编译单元进行预编译的过程中,若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,继续完成对所述应用程序的配置文件中剩余未编译的热点单元进行编译;暂停编译排序在所述应用程序之后进行编译的应用程序的配置文件;在所述暂停状态下,检测到所述电子设备满足所述指定条件时,恢复对所述在所述应用程序之后进行编译的应用程序的配置文件进行编译。
本申请提供的一种应用程序预编译的方法,通过检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。并且在本实施例中,可以在编译过程中检测到电子设备的运行状态切换为不满足指定条件的情况下,及时的暂停后续的应用程序的配置文件的预编译操作,进而及时的避免编译操作造成对用户的干扰。
请参阅图6,本申请提供的一种应用程序预编译的方法,应用于电子设备,所述方法包括:
步骤S210:当检测所述电子设备当前的运行状态。
步骤S220:若所述运行状态不满足指定条件,周期性检测所述电子设备是否满足所述指定条件,直到检测到所述电子设备满足所述指定条件,且对所述热点编译单元进行预编译。
步骤S230:若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元。
步骤S240:对所述热点编译单元进行预编译。
步骤S250:在对所述热点编译单元进行预编译的过程中,若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,暂停对剩余未编译的热点单元进行编译。
需要说明的是,电子设备的运行状态是有可能会突然变化的,那么虽然是因为电子设备运行状态满足指定条件而触发对配置文件中的热编译单元进行编译操作。但是,电子设备在进行预编译的过程中,电子设备的运行状态可能会转变为不满足指定条件。那么在这种情况下,为了避免预编译操作对用户使用电子设备造成影响,进而可以暂停对剩余未编译的热点单元进行编译。
示例性的,以应用程序的安装过程为例。若在包括热点编译单元预编译过程的安装阶段中,配置为先进行应用程序的安装操作,然后再进行热点编译单元预编译操作,而在热点编译单元预编译结束后,才判定安装阶段结束。那么在这种情况下,热点编译单元的编译时间长度就直接影响了应用程序的安装阶段的长度,进而在检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,暂停对剩余未编译的热点单元进行编译,并且电子设备会判定应用程序的安装阶段结束,以避免热点编译单元的编译操作延长应用程序的安装阶段的时长。其中,电子设备在判定应用程序的安装阶段结束时,可以发出提示信息,例如,提示内容可以包括应用程序安装完成,以便用户可以感知到应用程序已经完成安装。
步骤S260:在所述暂停状态下,检测到所述电子设备满足恢复条件时,恢复对所述未编译的热点单元进行编译。
需要说明的是,虽然作为一种方式,在暂停状态下,电子设备已经判定应用程序完成了应用程序的安装,但是,该应用程序对应的配置文件中的热编译单元还未完全进行编译,因此,应用程序的运行效率还未完全得到优化。那么为了实现最大程度优化运行效率,电子设备可以周期性的检测到所述电子设备是否满足恢复条件。若检测到所述电子设备满足恢复条件时,恢复对所述未编译的热点单元进行编译。
可选的,该恢复条件可以与前述的指定条件的内容一致。可选的,该恢复条件可以包括电子设备处于空闲状态或者处于充电状态。
可以理解的是,应用程序可以包括有多个功能模块,而每个功能模块可以是包括有多个热点编译单元。那么如果要达到对该功能模块的运行优化,那么该功能模块所包括的多个热点编译单元都需要进行预编译。示例性的,应用程序A包括功能模块A、功能模块B以及功能模块C。其中,应用程序对应的配置文件中至少包括热点编译单元a、热点编译单元b、热点编译单元c、热点编译单元d、热点编译单元e以及热点编译单元f。其中,热点编译单元a、热点编译单元b、热点编译单元c、热点编译单元d属于功能模块A,那么在这种情况下,热点编译单元a、热点编译单元b、热点编译单元c、热点编译单元d都需要提前进行预编译,功能模块A对应的运行效率才能得到最大程度的提升。
那么作为一种方式,若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,暂停对剩余未编译的热点单元进行编译的步骤包括:若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,在继续完成当前所编译的热点编译单元的编译操作后,暂停对剩余未编译的热点单元进行编译。
继续以前述内容为例,若电子设备当前所编译的热点编译单元为热点编译单元b,但是只完成了热点编译单元b中一半代码的预编译操作时,电子设备就检测到运行状态切换为不满足所述指定条件的状态,那么在这种情况下,电子设备会继续完成热点编译单元b中剩余代码的编译后,暂停对剩余未编译的热点编译单元c、热点编译单元d、热点编译单元e以及热点编译单元f进行编译。
其中,可选的,若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,在继续完成当前所编译的热点编译单元的编译操作后,暂停对剩余未编译的热点单元进行编译的步骤包括:若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,检测当前正在编译的热点编译单元所属的功能模块;若所述功能模块属于指定的常用功能模块,在继续完成当前所编译的热点编译单元的编译操作后,暂停对剩余未编译的热点单元进行编译。
继续以前述内容为例,在应用程序包括的功能模块A、功能模块B以及功能模块C中,功能模块A为配置的常用功能模块,功能模块B以及功能模块C为非常用功能模块。那么在这种情况下,若检测当前正在编译的热点编译单元为热点编译单元b,那么就可以在继续完成当前所编译的热点编译单元的编译操作后,暂停对剩余未编译的热点单元进行编译。而若当前正在编译的热点编译单元为热点编译单元e或者热点编译单元f,那么就会暂停编译所有的剩余未编译的内容。该所有的剩余未编译的内容包括当前正在编译的热点编译单元剩余的未编译内容,以及剩余的还未开始编译的热点编译单元。
需要说明的是前述步骤S240和步骤S250也可以并行进行。
本申请提供的一种应用程序预编译的方法,通过在应用程序安装阶段检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。并且,在本实施例中,在对所述热点编译单元进行预编译的过程中,依然会持续检测电子设备的运行状态,进而在检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,暂停对剩余未编译的热点单元进行编译,并且在所述暂停状态下,检测到所述电子设备满足恢复条件时,恢复对所述未编译的热点单元进行编译,从而实现了更加灵活的热点代码编译方式。
请参阅图7,本申请提供的一种应用程序预编译的方法,应用于电子设备,所述方法包括:
步骤S310:检测所述电子设备当前的运行状态。
步骤S320:若所述运行状态满足指定条件,且应用程序处于安装阶段时,检测所述应用程序是否属于预配置的应用程序;
步骤S330:若不属于所述预配置的应用程序,结束流程。
步骤S340:若属于所述预配置的应用程序,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元。
步骤S341:对所述热点编译单元进行预编译。
步骤S350:若所述运行状态不满足指定条件,周期性检测所述电子设备是否满足所述指定条件,直到检测到所述电子设备满足所述指定条件,且对所述热点编译单元进行预编译。
需要说明的是,在本申请实施例中电子设备所获取的所述应用程序对应的配置文件可以为服务器(例如,图1中的服务器200或者图3中的服务器201)基于收集到的多个第二配置文件来得到本申请实施例中电子设备所获取的所述应用程序对应的配置文件中所包括的热点编译单元。
在这种方式中,服务器可以从多个电子设备中获取目标应用程序对应的多个第二配置文件,所述第二配置文件用于记录所述目标应用程序的热点编译单元。
需要说明的是,电子设备中可以运行有多个应用程序。而每个应用程序在运行过程中都可以配置有一个所属的配置文件(profile文件)。该配置文件用于记录所属应用程序在运行过程中的热点编译单元。示例性的,在电子设备中安装有应用程序A、应用程序B以及应用程序C。那么应用程序A可以对应有一个所属的配置文件a,而应用程序B可以对应有一个所属的配置文件b,应用程序C可以对应有一个所属的配置文件c。那么在这种情况下,配置文件a中记录有应用程序A的热点编译单元,配置文件b中记录有应用程序B的热点编译单元,配置文件c中记录有应用程序C的热点编译单元。其中,对于不同的电子设备所安装的应用程序可以不同,也可以相同。例如,对于多个电子设备可以都安装有应用程序A、应用程序B以及应用程序C。
可以理解的是,目标应用程序为所属的配置文件会进行后续步骤处理的应用程序,在本申请实施例中,服务器可以有多种方式来确定目标应用程序。
作为一种方式,服务器可以将安装量较多的应用程序作为目标应用程序。可选的,电子设备可以定期的向服务器上传应用程序安装信息,在该应用程序安装信息中包括电子设备当前所已经安装的应用程序。那么服务器可以对多个电子设备定期上传应用程序安装信息进行统计,若检测到某个应用程序的安装量大于安装阈值,则可以将该安装量大于安装阈值的应用程序作为目标应用程序。
示例性的,有上传过应用程序安装信息给服务器的电子设备有100个,而其中90个电子设备中都安装有应用程序A,在安装阈值为80的情况下,那么服务器可以将应用程序A作为目标应用程序。通过这种方式,可以使得服务器及时的对安装量较大的应用程序进行运行效率的优化。
作为另外一种方式,电子设备可以同时结合安装量以及对应的配置文件的大小来确定目标应用程序。需要说明的是,不同的应用程序因为自身的功能或者运行频率的不同,所属的配置文件的大小是不同的,而电子设备在应用程序运行前提前进行对配置文件中的热点编译单元进行编译是需要消耗一定的资源以及时间的,那么对于配置文件较小的应用程序,可以确定其运行频率可能较低,服务器就可以不对这些运行频率较低的应用程序所属的配置文件进行处理。对应的,在这种方式下,电子设备上报的应用程序安装信息中,除了有所安装的应用程序外,还可以包括每个应用程序所属的配置文件的大小。服务器在检测到多个电子设备中,某同一个应用程序所属的配置文件的大小大于指定阈值的数量大于阈值数量时,就可以将该同一个应用程序作为目标应用程序。
示例性的,有上传过应用程序安装信息给服务器的电子设备有100个,而其中90个电子设备中都安装有应用程序A,那么这90个电子设备所安装的应用程序A都各自有一个配置文件(即可以理解为有90个配置文件)。若服务器识别到其90个配置文件中,80个都是小于1kb的,那么在安装阈值为80,指定阈值为10kb,阈值数量为50的情况下,服务器不会将应用程序A作为目标应用程序。但是,若服务器识别到90个配置文件中有60个(大于阈值数量50)配置文件的大小都为11~12kb(大于指定阈值10kb),那么就可以判定该应用程序A为目标应用程序。
作为再一种方式,服务器还可以根据配置信息来确定目标应用程序。在这种方式下,可以通过人为配置的方式来确定哪些应用程序为目标应用程序。示例性的,服务器可以将多个电子设备上报的应用程序安装信息所涉及的应用程序作为待选的应用程序,操作人员可以从该待选的应用程序中选择一个或多个应用程序作为选中的应用程序,对应的,服务器将该选中的应用程序存储在配置文件中,那么在这种情况下,服务器可以将配置到该配置文件中的应用程序作为目标应用程序。
在基于前述方式确定目标应用程序后,服务器可以进一步的将目标应用程序所属的配置文件作为第二配置文件。而在本申请实施例中,目标应用程序对应的多个第二配置文件可以理解为多个电子设备中所安装的同一目标应用程序各自所属的配置文件。
在获取到多个第二配置文件后,作为一种方式,服务器可以直接将多个第二配置文件中的所有热点编译单元去重后作为获取的多个热点编译单元。
本申请提供的一种应用程序预编译的方法,通过在应用程序属于预配置的应用程序的情况下,检测该应用程序安装阶段检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。
请参阅图8,本申请提供的一种应用程序预编译的装置400,运行于电子设备,所述装置400包括:
状态检测单元410,用于检测所述电子设备当前的运行状态。
作为一种方式,所述安装阶段包括所述应用程序的安装包安装阶段或者所述应用程序的更新文件安装阶段。
信息获取单元420,用于若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元。
作为一种方式,信息获取单元420,还用于若所述运行状态满足指定条件,且所述应用程序的配置文件在所述安装阶段未进行预编译,获取所述应用程序对应的配置文件。
可选的,若在应用程序处于安装阶段时,所述指定条件包括:所述电子设备处于灭屏状态;若不处于应用程序处于安装阶段时,所述指定条件包括:所述电子设备的电量满足指定电量阈值、所述电子设备的可用存储空间不小于指定空间阈值以及所述电子设备的温度不高于指定温度阈值中的至少一个。
编译单元430,用于对所述热点编译单元进行预编译。
作为一种方式,编译单元430,还用于在对所述热点编译单元进行预编译的过程中,若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,暂停对剩余未编译的热点单元进行编译;在所述暂停状态下,检测到所述电子设备满足恢复条件时,恢复对所述未编译的热点单元进行编译。
在这种方式下,编译单元430,具体用于若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,在继续完成当前所编译的热点编译单元的编译操作后,暂停对剩余未编译的热点单元进行编译。其中,可选的,编译单元430,具体用于若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,检测当前正在编译的热点编译单元所属的功能模块;若所述功能模块属于指定的常用功能模块,在继续完成当前所编译的热点编译单元的编译操作后,暂停对剩余未编译的热点单元进行编译。
作为一种方式,所述恢复条件包括:所述电子设备处于灭屏状态;所述电子设备处于充电状态;或者所述电子设备处理空闲状态。
如图9所示,状态检测单元410,具体包括:
应用程序检测子单元411,用于当处于应用程序的安装阶段时,检测所述应用程序是否属于预配置的应用程序;
状态检测子单元412,用于若属于所述预配置的应用程序,检测所述电子设备当前的运行状态。
需要说明的是,本申请中具体如何根据音频编码类型对音频数据进行编码是可以采用现有的技术,本申请就不再细述。
下面将结合图10对本申请提供的一种电子设备进行说明。
请参阅图10,基于上述的图像处理方法、装置,本申请实施例还提供的另一种可以执行前述应用程序预编译的方法的电子设备200。电子设备200包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104以及网络模块106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
所述网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和无线接入点进行通讯。所述网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块106,还可以作为网络适配器,用于电子设备200直接通过线路连接的方式接入到网络中。该网络可包括蜂窝式电话网、无线局域网或者城域网。
请参考图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
综上所述,本申请提供的一种应用程序预编译的方法、装置以及电子设备,当检测所述电子设备的所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的储有所述应用程序对应的热点编译单元的配置文件,对所述热点编译单元进行预编译。从而检测电子设备的运行状态的方式,使得只有在运行状态满足指定条件才会进行配置文件中的热点编译单元的预编译操作,使得热点编译单元的编译时机具有可配置性,而不会直接在应用程序安装阶段就直接对热点编译单元进行编译造成电子设备的运行性能受到影响。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种应用程序预编译的方法,其特征在于,应用于电子设备,所述方法包括:
检测所述电子设备当前的运行状态;
若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元;
对所述热点编译单元进行预编译。
2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
若所述运行状态不满足指定条件,且应用程序处于安装阶段时,不对所述热点编译单元进行预编译。
3.根据权利要求2所述的方法,其特征在于,所述若所述运行状态不满足指定条件,且应用程序处于安装阶段时,不对所述热点编译单元进行预编译之后,还包括:
若所述运行状态满足指定条件,且所述应用程序的配置文件在所述安装阶段未进行预编译,获取所述应用程序对应的配置文件;
对所述热点编译单元进行预编译。
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法,还包括:
在对所述热点编译单元进行预编译的过程中,若检测到所述电子设备的运行状态切换为不满足所述指定条件的状态时,继续完成对所述应用程序的配置文件中剩余未编译的热点单元进行编译;
暂停编译排序在所述应用程序之后进行编译的应用程序的配置文件;
在所述暂停状态下,检测到所述电子设备满足所述指定条件时,恢复对所述在所述应用程序之后进行编译的应用程序的配置文件进行编译。
5.根据权利要求1-3任一所述的方法,其特征在于,若在应用程序处于安装阶段时,所述指定条件包括:所述电子设备处于灭屏状态;
若不处于应用程序处于安装阶段时,所述指定条件包括:所述电子设备的电量满足指定电量阈值、所述电子设备的可用存储空间不小于指定空间阈值以及所述电子设备的温度不高于指定温度阈值中的至少一个。
6.根据权利要求1所述的方法,其特征在于,所述获取所述应用程序对应的配置文件的步骤之前,还包括:
检测所述应用程序是否属于预配置的应用程序;
若属于所述预配置的应用程序,执行所述获取所述应用程序对应的配置文件。
7.根据权利要求1所述的方法,其特征在于,所述安装阶段包括所述应用程序的安装包安装阶段或者所述应用程序的更新文件安装阶段。
8.一种应用程序预编译的装置,其特征在于,运行于电子设备,所述装置包括:
状态检测单元,用于检测所述电子设备当前的运行状态;
信息获取单元,用于若所述运行状态满足指定条件,且应用程序处于安装阶段时,获取所述应用程序对应的配置文件,所述配置文件中存储有所述应用程序对应的热点编译单元;
编译单元,用于对所述热点编译单元进行预编译。
9.一种电子设备,其特征在于,包括一个或多个处理器以及存储器;
其中,一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-7任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911349773.XA CN113031955A (zh) | 2019-12-24 | 2019-12-24 | 应用程序预编译的方法、装置以及电子设备 |
PCT/CN2020/136887 WO2021129489A1 (zh) | 2019-12-24 | 2020-12-16 | 应用程序预编译的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911349773.XA CN113031955A (zh) | 2019-12-24 | 2019-12-24 | 应用程序预编译的方法、装置以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113031955A true CN113031955A (zh) | 2021-06-25 |
Family
ID=76452166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911349773.XA Pending CN113031955A (zh) | 2019-12-24 | 2019-12-24 | 应用程序预编译的方法、装置以及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113031955A (zh) |
WO (1) | WO2021129489A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661909A (zh) * | 2023-08-01 | 2023-08-29 | 北京小米移动软件有限公司 | 应用程序的运行方法、装置、终端设备及存储介质 |
CN116661909B (zh) * | 2023-08-01 | 2024-07-09 | 北京小米移动软件有限公司 | 应用程序的运行方法、装置、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861730A (zh) * | 2017-10-27 | 2018-03-30 | 维沃移动通信有限公司 | 一种应用程序的处理方法及移动终端 |
CN108804110A (zh) * | 2018-06-15 | 2018-11-13 | Oppo(重庆)智能科技有限公司 | 一种数据处理方法、数据处理装置及移动终端 |
CN109960507A (zh) * | 2017-12-14 | 2019-07-02 | 广东欧珀移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951335B (zh) * | 2015-05-22 | 2019-01-04 | 小米科技有限责任公司 | 应用程序安装包的处理方法及装置 |
CN105022647B (zh) * | 2015-07-15 | 2019-05-14 | 深圳市金立通信设备有限公司 | 一种应用安装的控制方法及终端 |
CN106775828B (zh) * | 2016-11-25 | 2020-07-03 | Oppo广东移动通信有限公司 | 应用程序安装方法及装置、计算机设备 |
CN111061484B (zh) * | 2019-11-28 | 2023-05-02 | Oppo广东移动通信有限公司 | 代码编译方法、装置、服务器、用户终端及可读介质 |
-
2019
- 2019-12-24 CN CN201911349773.XA patent/CN113031955A/zh active Pending
-
2020
- 2020-12-16 WO PCT/CN2020/136887 patent/WO2021129489A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861730A (zh) * | 2017-10-27 | 2018-03-30 | 维沃移动通信有限公司 | 一种应用程序的处理方法及移动终端 |
CN109960507A (zh) * | 2017-12-14 | 2019-07-02 | 广东欧珀移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
CN108804110A (zh) * | 2018-06-15 | 2018-11-13 | Oppo(重庆)智能科技有限公司 | 一种数据处理方法、数据处理装置及移动终端 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661909A (zh) * | 2023-08-01 | 2023-08-29 | 北京小米移动软件有限公司 | 应用程序的运行方法、装置、终端设备及存储介质 |
CN116661909B (zh) * | 2023-08-01 | 2024-07-09 | 北京小米移动软件有限公司 | 应用程序的运行方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021129489A1 (zh) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061484B (zh) | 代码编译方法、装置、服务器、用户终端及可读介质 | |
CN109960507B (zh) | 编译优化方法、装置、存储介质、智能终端及服务器 | |
CN111078318B (zh) | 配置文件的处理方法、装置、***及存储介质 | |
CN110764906B (zh) | 内存回收处理方法、装置、电子设备以及存储介质 | |
WO2021057619A1 (zh) | 内存回收方法、装置、电子设备及存储介质 | |
WO2019024649A1 (zh) | 应用程序的启动方法、装置、存储介质和终端 | |
WO2021057622A1 (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN110765031B (zh) | 数据存储方法、装置、移动终端及存储介质 | |
CN106970816B (zh) | 一种软件升级处理方法、装置及音频播放设备 | |
CN111050378B (zh) | 网络搜索方法、装置及电子设备 | |
CN112948026A (zh) | 热点代码处理方法、装置、服务器、电子设备及存储介质 | |
CN112667405B (zh) | 信息处理方法、装置、设备及存储介质 | |
CN112988169A (zh) | 应用安装方法、装置、终端设备、服务器及存储介质 | |
CN114175748A (zh) | 通信频率调节方法、装置、电子设备及存储介质 | |
CN110727605B (zh) | 内存回收方法、装置以及电子设备 | |
CN111984413A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN111104180A (zh) | 应用程序优化方法、装置、存储介质及电子设备 | |
CN112540769A (zh) | 编译处理方法、装置、电子设备以及存储介质 | |
WO2021115178A1 (zh) | 应用程序预编译的方法、装置、服务器及存储介质 | |
CN113031955A (zh) | 应用程序预编译的方法、装置以及电子设备 | |
CN112052089B (zh) | 内存回收方法、装置以及电子设备 | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN113032035B (zh) | 配置文件处理方法、装置以及电子设备 | |
WO2021102849A1 (zh) | 资源获取方法、装置以及电子设备 | |
CN111090627B (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 |