掌桥专利:专业的专利平台
掌桥专利
首页

应用程序预编译的方法、装置、电子设备以及服务器

文献发布时间:2023-06-19 11:35:49


应用程序预编译的方法、装置、电子设备以及服务器

技术领域

本申请涉计算机技术领域,更具体地,涉及一种应用程序预编译的方法、装置、电子设备以及服务器。

背景技术

在电子设备中,可以通过提前编译的方式来实现一定程度的提升应用程序的运行效率。但是,在相关的编译方式会造成电子设备的运行性能受到影响,降低了用户体验。

发明内容

鉴于上述问题,本申请提出了一种应用程序预编译的方法、装置、电子设备以及服务器,以改善上述问题。

第一方面,本申请提供了一种应用程序预编译的方法,应用于服务器,所述方法包括:获取目标应用程序对应的多个热点编译单元;将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成第一配置文件,得到多个第一配置文件,其中,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同;将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

第二方面,本申请提供了一种应用程序预编译的方法,应用于电子设备,所述方法包括:获取服务器发送的目标应用程序对应的多个第一配置文件,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同;根据每个所述第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

第三方面,本申请提供了一种应用程序预编译的装置,运行于服务器,所述装置包括:热点信息获取单元,用于获取目标应用程序对应的多个热点编译单元;配置文件生成单元,用于将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成第一配置文件,得到多个第一配置文件,其中,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同;配置文件分发单元,用于将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

第四方面,本申请提供了一种应用程序预编译的装置,运行于电子设备,所述装置包括:配置文件获取单元,用于获取服务器发送的目标应用程序对应的多个第一配置文件,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同;编译单元,用于根据每个所述第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

第五方面,本申请提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。

第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。

本申请提供的一种应用程序预编译的方法、装置、电子设备以及服务器,在获取目标应用程序对应的多个热点编译单元后,将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成对应的预编译阶段不同的多个第一配置文件,将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。从而通过上述方式,使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请实施例提出的一种应用程序预编译的方法的运行环境示意图;

图2示出了本申请实施例提出的另一种应用程序预编译的方法的运行环境示意图;

图3示出了本申请实施例提出的再一种应用程序预编译的方法的运行环境示意图;

图4示出了本申请实施例提出的一种应用程序预编译的方法的流程图;

图5示出了本申请另一实施例提出的一种应用程序预编译的方法的流程图;

图6示出了本申请再一实施例提出的一种应用程序预编译的方法的流程图;

图7示出了本申请又一实施例提出的一种应用程序预编译的方法的流程图;

图8示出了本申请又一实施例提出的一种应用程序预编译的方法的流程图;

图9示出了本申请提出的一种应用程序预编译的装置的结构框图;

图10示出了本申请提出的另一种应用程序预编译的装置的结构框图;

图11示出了本申请的用于执行根据本申请实施例的应用程序预编译的方法的电子设备的结构框图。

图12是本申请实施例的用于保存或者携带实现根据本申请实施例的应用程序预编译的方法的程序代码的存储单元。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

随着电子设备中应用程序的运行方式的发展,电子设备中的应用程序可以在运行时先通过解析器(Interpreter)直接解释执行,执行过程中记录每个编译单元的调用次数和循环次数,当调用次数和循环次数超过设定阈值,则对应的编译单元被记录为热点编译单元。其中,编译单元可以理解为应用程序的源码中的函数、方法(method)或者类(class)。进一步的,热点编译单元会被识别并被JIT(Just In Time,即时编译)编译后存储并生成profile文件以记录热点编译单元的信息。在这种情况下,在一些情况下,电子设备的系统会扫描profile文件并执行AOT(Ahead Of Time,预编译)过程进行编译。

但是,发明人在对该方式进行研究中发现,在相关的profile文件运行以进行热点编译单元的编译过程中,都是集中在一个时间段进行的,这样就会造成整个编译过程会消耗较多的时间。例如,在一种相关的方式中,电子设备在获取所下载应用程序的安装包的过程中,就可以同时获取到所下载应用程序对应的profile文件,在对该安装包进行安装的过程中,就可以运行该profile文件,以对该profile文件内的编译单元进行编译,并且,在该profile文件内的编译单元完成编译后,该应用程序的安装过程才会结束,进而在需要编译的编译单元较多的情况下,会造成安装过程耗时较长。

因此,提出了申请提供的应用程序预编译的方法、装置、电子设备以及服务器,以便使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。

下面先对本申请实施例所涉及的一种场景进行介绍。

请参阅图1,在图1所涉及的场景中,包括有多个电子设备100以及服务器200。其中,多个电子设备100通过网络与服务器200进行数据交互。

在多个电子设备100都运行有目标应用程序,而每个电子设备100所运行的目标应用程序都对应生成有配置文件(可以为前述的profile文件)120。在一种方式下,多个电子设备100可以将自己安装的目标应用程序的配置文件120上传到服务器200中,以便服务器可以得到目标应用程序对应的多个配置文件120,进而对该多个配置文件120进行融合处理,提取该多个配置文件120所包括的多个热点编译单元,然后按照配置的多个编译阶段,将该多个热点编译单元划分为多个配置文件,再将多个配置文件配置为一个文件集合210分别返回给该多个电子设备100。可以理解的是,这里对应于每个电子设备100均分别返回包括多个配置文件的文件集合210。

此外,如图2所示,还可以由服务器220直接将包括该文件集合210以及目标应用程序的安装程序220的程序安装包230发送给还未安装目标应用程序的电子设备130,以便可以使得电子设备130在安装目标应用程序时,就可以运行文件集合210的某个第一配置文件,以进行部分热点编译单元的预编译。

需要说明的是,在图2所示的环境中,进行收集多个配置文件120并对该多个配置文件120进行处理得到多个配置文件的服务器可以有为单个服务器,也可以服务器集群。并且,进行收集多个配置文件120并对该多个配置文件120进行处理得到多个配置文件的服务器可以和后续下发程序安装包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中所包括的配置文件,所提及的第二配置文件可以为配置文件120。其中,新生成的配置文件210中的热点编译单元可以为服务器200编译后的热点编译单元,也可以为还未运行编译的热点编译单元。在服务器新生成的配置文件中的热点编译单元为还未运行编译的热点编译单元的情况下,可以由接收到新生成的配置文件的电子设备在运行目标应用程序之前进行编译,或者在安装目标应用程序时就进行编译。

下面将结合具体实施例对本申请内容进行介绍。

请参阅图4,本申请提供的一种应用程序预编译的方法,应用于服务器,所述方法包括:

步骤S110:获取目标应用程序对应的多个热点编译单元。

在本实施例中,可以有多种实际触发服务器获取目标应用程序对应的多个热点编译单元。

作为一种方式,若检测到所述目标应用程序版本更新时,获取目标应用程序对应的多个热点编译单元。可以理解的是,当应用程序的版本更新时,相比于更新之前的版本可能会有更多的功能,或者是对于同一个功能更换了实现的代码,那么为了能够更好的适配版本更新后的目标应用程序,可以在检测到所述目标应用程序版本更新时,获取目标应用程序对应的多个热点编译单元。

作为另外一种方式,可以周期性的获取目标应用程序对应的多个热点编译单元。需要说明的是,每次执行步骤S110所获取到的多个热点编译单元只是对应于当前阶段的热点编译单元,而并不一定是目标应用程序所有可能产生的热点编译单元。那么针对个别电子设备而言,在目标应用程序在实际运行过程中可能会生成执行步骤S110所获取到的多个热点编译单元以外的热点编译单元,那么服务器周期性的获取目标应用程序对应的多个热点编译单元,可以理解为周期性的收集不同用户所使用的电子设备中目标应用程序对应的热点编译单元,得到多个热点编译单元,进而实现可以快速的获取到更全面的多个热点编译单元。

在本实施例中,可以有多种方式来确定后续进行划分的多个热点编译单元。

作为一种方式,可以通过收集不同电子设备中所运行的目标应用程序对应的配置文件(profile文件)的方式,来获取到多个热点编译单元。作为另外一种方式,可以通过ART虚拟机中循环运行目标应用程序的方式,来获取到目标应用程序对应的多个热点编译单元。

步骤S120:将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成第一配置文件,得到多个第一配置文件,其中,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

示例性的,获取到的多个热点编译单元包括热点编译单元A到H。可选的,可以将热点编译单元A到C划分为一个部分,将热点编译单元D到F划分为一个部分,将热点编译单元G到H划分为一个部分。那么在这种情况下,对应于热点编译单元A到C这个部分的第一配置文件包括热点编译单元A、热点编译单元B以及热点编译单元C。对应于热点编译单元D到F这个部分的第一配置文件包括热点编译单元D、热点编译单元E以及热点编译单元F。对应于热点编译单元G到H这个部分的第一配置文件包括热点编译单元G以及热点编译单元H。

步骤S130:将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

需要说明的是,服务器可以通过多种方式将多个第一配置文件发送给电子设备。可选的,服务器可以在电子设备初始下载该目标应用程序时,将所述多个第一配置文件伴随所述目标应用程序的安装包发送给电子设备。此外,也可以在电子设备更新所述目标应用程序时,伴随更新文件发送给电子设备。

需要说明的是,执行本实施例提供的应用程序预编译的方法服务器可以为图1和图2中的服务器200,也可以为图3中的服务器201。

本申请提供的一种应用程序预编译的方法,在获取目标应用程序对应的多个热点编译单元后,将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成对应的预编译阶段不同的多个第一配置文件,将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。从而通过上述方式,使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。

请参阅图5,本申请提供的一种应用程序预编译的方法,应用于服务器,所述方法包括:

步骤S210:从多个电子设备中获取目标应用程序对应的多个第二配置文件,所述第二配置文件用于记录所述目标应用程序的热点编译单元。

需要说明的是,电子设备中可以运行有多个应用程序。而每个应用程序在运行过程中都可以配置有一个所属的配置文件(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为目标应用程序。

作为再一种方式,服务器还可以根据配置信息来确定目标应用程序。在这种方式下,可以通过人为配置的方式来确定哪些应用程序为目标应用程序。示例性的,服务器可以将多个电子设备上报的应用程序安装信息所涉及的应用程序作为待选的应用程序,操作人员可以从该待选的应用程序中选择一个或多个应用程序作为选中的应用程序,对应的,服务器将该选中的应用程序存储在配置文件中,那么在这种情况下,服务器可以将配置到该配置文件中的应用程序作为目标应用程序。

在基于前述方式确定目标应用程序后,服务器可以进一步的将目标应用程序所属的配置文件作为第二配置文件。而在本申请实施例中,目标应用程序对应的多个第二配置文件可以理解为多个电子设备中所安装的同一目标应用程序各自所属的配置文件。

步骤S220:从所述多个第二配置文件记录中获取多个热点编译单元。

作为一种方式,服务器可以直接将多个第二配置文件中的所有热点编译单元去重后作为获取的多个热点编译单元。

步骤S230:将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成第一配置文件,得到多个第一配置文件,其中,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

步骤S240:将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

需要说明的是,执行本实施例提供的应用程序预编译的方法服务器可以为图1和图2中的服务器200,也可以为图3中的服务器201。

本申请提供的一种应用程序预编译的方法,通过从多个电子设备中获取目标应用程序对应的多个第二配置文件的方式,从该多个第二配置文件中获取到与所述目标应用程序对应的多个热点编译单元,将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成对应的预编译阶段不同的多个第一配置文件,将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。从而通过上述方式,使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。并且,最开始所获取的多个热点编译单元为从关于电子设备的实际运行状态的第二配置文件中获取,使得所得到的多个热点编译单元更能贴合用户的实际使用习惯,使得生成的多个第一配置文件更加适配用户的实际使用习惯,提升了目标应用程序效率提升的有效性。

请参阅图6,本申请提供的一种应用程序预编译的方法,应用于服务器,所述方法包括:

步骤S310;获取目标应用程序对应的多个热点编译单元。

作为一种方式,可以如前述实施例所示的,从前述实施例中的多个第二配置文件记录中获取多个热点编译单元。并且,还可以同时获取到每个热点编译单元在多个第二配置文件中出现的次数。实例性的,服务器所收集到有同一目标应用程序对应的第二配置文件A、第二配置文件B以及第二配置文件C,其中第二配置文件A、第二配置文件B以及第二配置文件C分别从不同的电子设备中获取。

其中,第二配置文件A包括有热点编译单元A、热点编译单元B以及热点编译单元C,第二配置文件B包括有热点编译单元A、热点编译单元C以及热点编译单元D,第二配置文件C包括有热点编译单元A、热点编译单元B以及热点编译单元E。在这种情况下,所获取到的多个热点编译单元包括热点编译单元A(出现3次)、热点编译单元B(出现2次)、热点编译单元C(出现2次)、热点编译单元D(出现1次)以及热点编译单元E(出现1次)。

步骤S320:将所述多个热点编译单元中关于所述目标应用程序启动过程的热点编译单元划分为第一部分,生成对应所述第一部分的第一配置文件。

需要说明的是,应用程序在启动过程中也会涉及相关的功能代码的编译以及运行。那么就可以将所述多个热点编译单元中与应用程序的启动过程相关的热点编译单元划分为第一部分,进而生成对应所述第一部分的第一配置文件。

步骤S330:将所述多个热点编译单元中运行次数大于第一阈值的热点编译单元划分为第二部分,生成对应所述第二部分的第一配置文件。

需要说明的是,本实施例中所涉及的运行次数可以理解为基于JIT方式运行的次数,也就是前述实例中第二配置文件A、第二配置文件B以及第二配置文件C各个热点编译单元出现的次数。示例性的,若第一阈值为1,那么依据前述实例中第二配置文件A、第二配置文件B以及第二配置文件C,划分为第二部分的热点编译单元包括热点编译单元A(出现3次)、热点编译单元B(出现2次)、热点编译单元C(出现2次)。

步骤S340:将所述多个热点编译单元中运行次数大于第二阈值的热点编译单元划分为第三部分,生成对应所述第三部分的第一配置文件,其中,所述第一阈值大于所述第二阈值,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

示例性的,若第二阈值为2,那么依据前述实例中第二配置文件A、第二配置文件B以及第二配置文件C,划分为第三部分的热点编译单元包括热点编译单元A(出现3次)。

步骤S350:将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

可以理解的是,本实施例所提及的多个第一配置文件是指基于步骤S320、步骤S330以及步骤S340所得到的多个第一配置文件。并且,其中步骤S320、步骤S330以及步骤S340可以依次进行,也可以并行进行。

作为一种方式,配置所述第一部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序的安装阶段;配置所述第二部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序所在电子设备处于息屏阶段;配置所述第三部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序所在电子设备处于空闲阶段。

需要说明的是,本实施例中所涉及的第一阈值以及第二阈值的实际值只是示例性的给出的,第一阈值和第二阈值的实际数值可以在运行中根据实际情况而确定,例如,可以配置第一阈值为5000,而第二阈值可以为15000。并且,对于第二部分对应的第一配置文件和第三部分对应的第一配置文件的运行阶段也可以不限于上述的方式,例如,也可以配置所述第二部分对应的第一配置文件为电子设备处于空闲阶段,而配置所述第三部分对应的第一配置文件为电子设备处于息屏阶段。

需要说明的是,在本实施例中所涉及的划分这个操作可以理解为服务器将热点编译单元写入到对应的第一配置文件中。作为一种方式,服务器可以按照预先划分规则生成多个第一配置文件,且配置不同的第一配置文件在不同的阶段运行。示例性的,可以先生成有第一配置文件A、第一配置文件B以及第一配置文件C。且配置第一配置文件A为在应用程序安装阶段运行,那么在对步骤S310所获取的多个热点编译单元进行划分的过程中,若将某个热点编译单元划分为第一部分(该第一部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序的安装阶段),则可以理解为将该某个热点编译单元写入到第一配置文件A中,其他部分的划分也可以按照这种方式理解,此处不再赘述。

并且,若服务器是伴随更新文件将该多个第一配置文件发送给电子设备,那么在这种情况下,电子设备可以在安装更新文件的过程中,运行第一部分对应的第一配置文件。

本申请提供的一种应用程序预编译的方法,使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。并且,在本实施例中,可以将与目标应用程序启动相关的热点编译单元划分为单独一个部分,并且配置在目标应用程序安装阶段进行预编译,且将其他部分对应的第一配置文件配置为在电子设备息屏或者空闲状态进行,有效的减小了目标应用程序安装整体耗时,并且也更大程度的减少了预编译操作对电子设备运行性能的影响,提升了用户体验。

请参阅图7,本申请提供的一种应用程序预编译的方法,应用于服务器,所述方法包括:

步骤S410:获取目标应用程序对应的多个热点编译单元。

步骤S420:将所述多个热点编译单元中代码量小于第一代码量阈值的热点编译单元划分为第一部分,生成对应所述第一部分的第一配置文件。

步骤S430:将所述多个热点编译单元中代码量不小于所述第一代码量阈值且小于第二代码量阈值的热点编译单元划分为第二部分,生成对应所述第二部分的第一配置文件。

步骤S440:将所述多个热点编译单元中代码量不小于所述第二代码量阈值的热点编译单元划分为第三部分,生成对应所述第三部分的第一配置文件。每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

步骤S450:将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

作为一种方式,配置所述第一部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序的安装阶段;配置所述第二部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序所在电子设备处于息屏阶段;配置所述第三部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序所在电子设备处于空闲阶段。

本申请提供的一种应用程序预编译的方法,使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。并且,在本实施例中,可以根据热点编译单元的代码量来进行部分划分,并且配置包括的热点编译单元的代码量最少的部分在目标应用程序安装阶段进行预编译,且将其他部分对应的第一配置文件配置为在电子设备息屏或者空闲状态进行,有效的减小了目标应用程序安装整体耗时,并且也更大程度的减少了预编译操作对电子设备运行性能的影响,提升了用户体验。

请参阅图8,本申请提供的一种应用程序预编译的方法,应用于电子设备,所述方法包括:

步骤S510:获取服务器发送的目标应用程序对应的多个第一配置文件,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

步骤S520:根据每个所述第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

作为一种方式,所述多个第一配置文件包括预编译阶段为所述目标应用程序的安装阶段的第一配置文件、预编译阶段为所述目标应用程序所在电子设备处于息屏阶段的第一配置文件以及预编译阶段为所述目标应用程序所在电子设备处于空闲阶段的第一配置文件。在这种方式下,若检测到安装所述目标应用程序时,运行所述预编译阶段为所述目标应用程序的安装阶段的第一配置文件;若检测到所述电子设备处于息屏状态时,运行所述预编译阶段为所述目标应用程序所在电子设备处于息屏阶段的第一配置文件;若检测到所述电子设备处于充电状态时,运行所述预编译阶段为所述目标应用程序所在电子设备处于空闲阶段的第一配置文件。

需要说明的是,在电子设备中,配置文件是存储在系统指定的路径下的。以安卓系统为例,在安卓系统中,应用程序的配置文件存储在路径/data/misc/profiles/中。那么作为一种适配有多个配置文件的这种方式,电子设备中可以配置在存储配置文件的指定的路径下进一步的配置多个存储区域,并且配置一个存储区域用于存储同一个编译阶段的配置文件。示例性的,在前述实施例中多个第一配置文件对应的编译阶段有应用程序安装阶段、息屏阶段以及空闲阶段。那么对应的在指定的路径下可以配置第一存储区域用于存储每个应用程序对应的在应用程序安装阶段进行预编译的第一配置文件,配置第二存储区域用于存储每个应用程序对应的在息屏阶段进行预编译的第一配置文件,配置第三存储区域用于存储每个应用程序对应的在空闲阶段进行预编译的第一配置文件。从而实现电子设备可以通过在指定的路径下的不同存储区域直接读取对应编译阶段的配置文件即可,避免了将每个应用程序的所有编译阶段的第一配置文件均放置在一个路径下造成的查找耗时较长,以及管理不便的问题。

请参阅图9,本申请提供的一种应用程序预编译的装置600,运行于服务器,所述装置600包括:

热点信息获取单元610,用于获取目标应用程序对应的多个热点编译单元。

作为一种方式,热点信息获取单元610,具体用于若检测到所述目标应用程序版本更新时,获取目标应用程序对应的多个热点编译单元。

作为一种方式,热点信息获取单元610,具体用于从多个电子设备中获取目标应用程序对应的多个第二配置文件,所述第二配置文件用于记录所述目标应用程序的热点编译单元;从所述多个第二配置文件记录中获取多个热点编译单元。

配置文件生成单元620,用于将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成第一配置文件,得到多个第一配置文件,其中,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

作为一种方式,配置文件生成单元620,具体用于将所述多个热点编译单元中关于所述目标应用程序启动过程的热点编译单元划分为第一部分,生成对应所述第一部分的第一配置文件;将所述多个热点编译单元中运行次数大于第一阈值的热点编译单元划分为第二部分,生成对应所述第二部分的第一配置文件;将所述多个热点编译单元中运行次数大于第二阈值的热点编译单元划分为第三部分,生成对应所述第三部分的第一配置文件;其中,所述第一阈值大于所述第二阈值。

作为另外一种方式,配置文件生成单元620,具体用于将所述多个热点编译单元中代码量小于第一代码量阈值的热点编译单元划分为第一部分,生成对应所述第一部分的第一配置文件;将所述多个热点编译单元中代码量不小于所述第一代码量阈值且小于第二代码量阈值的热点编译单元划分为第二部分,生成对应所述第二部分的第一配置文件;将所述多个热点编译单元中代码量不小于所述第二代码量阈值的热点编译单元划分为第三部分,生成对应所述第三部分的第一配置文件。

可选的,配置文件生成单元620,还用于配置所述第一部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序的安装阶段;配置所述第二部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序所在电子设备处于息屏阶段;配置所述第三部分对应的第一配置文件所包括的热点编译单元对应的预编译阶段为所述目标应用程序所在电子设备处于空闲阶段。

配置文件分发单元630,用于将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

请参阅图10,本申请提供的一种应用程序预编译的装置700,运行于电子设备,所述装置700包括:

配置文件获取单元710,用于获取服务器发送的目标应用程序对应的多个第一配置文件,每个所述第一配置文件包括所对应部分的热点编译单元,且不同所述第一配置文件所包括的热点编译单元对应的预编译阶段不同。

编译单元720,用于根据每个所述第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。

作为一种方式,所述多个第一配置文件包括预编译阶段为所述目标应用程序的安装阶段的第一配置文件、预编译阶段为所述目标应用程序所在电子设备处于息屏阶段的第一配置文件以及预编译阶段为所述目标应用程序所在电子设备处于空闲阶段的第一配置文件。在这种方式下,编译单元720,具体用于若检测到安装所述目标应用程序时,运行所述预编译阶段为所述目标应用程序的安装阶段的第一配置文件;若检测到所述电子设备处于息屏状态时,运行所述预编译阶段为所述目标应用程序所在电子设备处于息屏阶段的第一配置文件;若检测到所述电子设备处于充电状态时,运行所述预编译阶段为所述目标应用程序所在电子设备处于空闲阶段的第一配置文件。

需要说明的是,本申请中具体如何根据音频编码类型对音频数据进行编码是可以采用现有的技术,本申请就不再细述。

下面将结合图11对本申请提供的一种电子设备进行说明。

请参阅图11,基于上述的应用程序预编译的方法、装置,本申请实施例还提供的另一种可以执行前述应用程序预编译的方法的电子设备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直接通过线路连接的方式接入到网络中。该网络可包括蜂窝式电话网、无线局域网或者城域网。

请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。

综上所述,本申请提供的一种应用程序预编译的方法、装置、电子设备以及服务器,在获取目标应用程序对应的多个热点编译单元后,将所述多个热点编译单元划分为多个部分,并对应每个所述部分分别生成对应的预编译阶段不同的多个第一配置文件,将所述多个第一配置文件发送给电子设备,以用于所述电子设备根据每个第一配置文件对应的预编译阶段对所述第一每个配置文件中包括的热点编译单元进行预编译。从而通过上述方式,使得目标应用程序对应的多个热点编译单元可以分阶段的形式,在多个阶段分别进行预编译,而不用集中进行预编译,进而提升了预编译的灵活性,同时也减少了集中进行热点编译单元的编译所带来的性能消耗,提升了电子设备的运行流畅性。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 应用程序预编译的方法、装置、电子设备以及服务器
  • 应用程序预编译的方法、装置以及电子设备
技术分类

06120112986776