CN112540769A - 编译处理方法、装置、电子设备以及存储介质 - Google Patents

编译处理方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN112540769A
CN112540769A CN202011595428.7A CN202011595428A CN112540769A CN 112540769 A CN112540769 A CN 112540769A CN 202011595428 A CN202011595428 A CN 202011595428A CN 112540769 A CN112540769 A CN 112540769A
Authority
CN
China
Prior art keywords
compiling
target
target application
application program
mode
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
Application number
CN202011595428.7A
Other languages
English (en)
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202011595428.7A priority Critical patent/CN112540769A/zh
Publication of CN112540769A publication Critical patent/CN112540769A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code

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示出了本申请实施例的用于保存或者携带实现根据本申请实施例的编译处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在安卓Android***中,存在一些***服务,用于处理一些定时任务,被称为JobService。其中,***服务中的目标***服务BackgroundDexOptService是用于处理电子设备的编译任务,具体地,BackgroundDexOptService是用于处理电子设备已安装的应用程序的安装包中的代码的编译任务。目标***服务的主要逻辑是:在电子设备的***处于充电+空闲状态时,会遍历电子设备已安装的所有应用程序的安装包,判断是否需要重新执行编译(dex2oat),如果判断结果指示需要重新执行编译时,则重新执行dex2oat。
对于一个应用程序的安装包,需要重新执行编译的场景包括如下:
1、电子设备的***第一次启动;
2、电子设备的***有更新,比如boot.art等***镜像有变化;
3、如果应用程序的安装包的编译条件(compiler-filter)是基于primary.prof的(目前包括speed-profile和everything-profile),且primary.prof有变更。
而对于BackgroundDexOptService来说,需要执行重新编译的应用程序的安装包,一般只有上述第3种情况。即,应用程序在运行过程中,触发热点代码统计,产生了新的primary.prof文件,***认定新产生的primary.prof文件是需要重新编译生成新的机器码。其中,primary.prof是用于记录应用程序运行时的热点代码,即调用最频繁的方法。Profile的引入,可以很好地调节机器码的有效性(包含被调用代码的范围)和磁盘占用(编译出的机器码文件,是以odex文件的形式存储在应用程序的安装目录下的,编译的代码量越大,odex文件也会越大)。
发明人经过研究发现,上述方案是基于profile的统计结果来作为是否需要重新编译的判定条件,但是,大多数用户在电子设备上的使用行为是:电子设备会安装很多的应用程序,但是经常使用的都是极少数的几个。所以,如果单单只是基于应用程序的方法热点,重复性的对应用程序的安装包进行重新编译,以达到优化的目的,在目前用户的使用场景中,并不能达到最佳效果,难以满足用户的需求。
针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的编译处理方法、装置、电子设备以及存储介质,通过将应用程序的代码预编译的力度与应用程序的运行信息关联起来,从而实现针对不同运行信息的应用程序的代码进行不同的预编译,提升应用程序的运行效果和用户的使用体验。其中,具体的编译处理方法在后续的实施例中进行详细的说明。
请查阅图1,图1示出了本申请一个实施例提供的编译处理方法的流程示意图。该方法用于通过将应用程序的代码预编译的力度与应用程序的运行信息关联起来,从而实现针对不同运行信息的应用程序的代码进行不同的预编译,提升应用程序的运行效果和用户的使用体验。在具体的实施例中,该编译处理方法应用于编译处理装置200以及配置有编译处理装置200的电子设备100的目标***服务,该目标***服务用于处理电子设备的编译任务。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以包括智能手机、平板电脑、穿戴式电子设备等,在此不做限定。下面将针对图1所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S110:获取已安装的目标应用程序。
其中,目标应用程序可以是电子设备已安装的任意一个或多个应用程序,也可以是预先指定的一个或多个应用程序,在此不做限定。其中,当预先指定的一个或多个应用程序被电子设备安装成功时,即可视作本实施例中的目标应用程序。作为一种方式,目标应用程序可以通过其程序标识来表示,程序标识例如可以是目标应用程序的程序名称、可以是目标应用程序的程序标号等,在此不做限定。
在一些实施方式中,目标***服务可以在***处于充电和空闲状态时,获取已安装的目标应用程序。作为一种方式,目标***服务可以根据电子设备的使用特征参数值确定一天的时间内获取已安装的目标应用程序的次数,其中,在电子设备的使用特征参数值较高的情况下,目标***服务可以在一天的时间内较多次的获取已安装的目标应用程序,例如3次,在电子设备的使用特征参数值较低的情况下,目标***服务可以在一天的时间内较少次的获取已安装的目标应用程序,例如1次。
步骤S120:获取所述目标应用程序的运行信息。
在本实施例中,在获取已安装的目标应用程序后,可以获取该目标应用程序的运行信息。其中,该目标应用程序的运行信息可以包括调用频率和运行时长,则在获取已安装的目标应用程序后,可以获取目标应用程序的调用频率和运行信息。
在一些实施方式中,电子设备可以记录有目标应用程序的运行信息,则在获取已安装的目标应用程序后,可以从电子设备的本地获取所记录的该目标应用程序的运行信息。
作为一种方式,可以获取目标应用程序在所有历史时间段内的运行信息,例如,可以获取目标应用程序从已安装开始到目前的所有时间段内的运行信息。作为又一种方式,可以获取目标应用程序在指定历史时间段内的运行信息,例如,可以获取目标应用程序在近三天、近一周或者近一个月的时间段内的运行信息。
步骤S130:基于所述运行信息,从多个编译模式中确定所述目标应用程序对应的编译模式作为目标编译模式,其中,所述多个编译模式中的每个编译模式对应预编译的代码量不同。
在一些实施方式中,电子设备可以预先设置多个编译模式,或者,与电子设备连接的服务器可以预先设置多个编译模式,其中,多个编译模式中的每个编译模式对应预编译的代码量不同。作为一种方式,多个编译模式至少包括speed模式、speed-profile模式以及实时编译模式,其中,在speed模式、speed-profile模式以及实时编译模式中,speed模式对应预编译的代码量最大,speed-profile模式对应预编译的代码量次之,实时编译模式对应预编译的代码量最小。在具体实施时,speed模式会对应用程序的安装包中的所有代码执行预编译,不依赖profile文件,可以认为是全量编译。speed-profile模式是基于profile中记录的方法进行编译,只有profile中记录到的,才会进行预编译编译,其他的不执行预编译。实时编译模式是在应用程序运行时对应用程序的安装包中使用到的代码进行临时编译,对安装包中的所有代码均不执行预编译。
在本实施例中,在获取目标应用程序的运行信息后,可以基于该运行信息,从多个编译模式中确定目标应用程序对应的编译模式作为目标编译模式。作为一种方式,当多个编译模式包括speed模式、speed-profile模式以及实时编译模式时,则可以从speed模式、speed-profile模式以及实时编译模式中确定目标应用程序对应的编译模式作为目标编译模式。例如,当基于目标应用程序的运行信息确定目标应用程序对应的编译模式为speed模式时,则可以将speed模式作为目标编译模式;当基于目标应用程序的运行信息确定目标应用程序对应的编译模式为speed-profile模式时,则可以将speed-profile模式作为目标编译模式等,在此不做限定。
步骤S140:基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理。
在本实施例中,在确定目标编译模式后,可以基于该目标编译模式,对目标应用程序的安装包中包含的代码进行编译处理,从而使得对目标应用程序的编译处理与目标应用程序的运行信息关联,提升应用程序的运行效果和用户的使用体验。在一些实施方式中,当确定speed模式作为目标编译模式后,可以基于speed模式对目标应用程序的安装包中包含的所有代码进行预编译;当确定speed-profile模式作为目标编译模式后,可以基于speed-profile模式对目标应用程序的安装包中包含的热点代码进行预编译;当确定实时编译模式作为目标编译模式后,可以基于实时编译模式对目标应用程序的安装包中的所有代码进行实时编译等,在此不做限定。
本申请一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于该运行信息,从多个编译模式中确定目标应用程序对应的编译模式作为目标编译模式,其中,多个编译模式中的每个编译模式对应预编译的代码量不同,基于目标编译模式,对目标应用程序的安装包中包含的代码进行编译处理,从而通过将应用程序的代码预编译的力度与应用程序的运行信息关联起来,从而实现针对不同运行信息的应用程序的代码进行不同的预编译,提升应用程序的运行效果和用户的使用体验。
请参阅图2,图2示出了本申请又一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图2所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S210:获取已安装的目标应用程序。
步骤S220:获取所述目标应用程序的运行信息。
其中,步骤S210-步骤S220的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S230:基于所述运行信息,确定所述目标应用程序的使用特征参数值。
在本实施例中,在获取目标应用程序的运行信息后,可以基于该运行信息,确定目标应用程序的使用特征参数值。在一些实施方式中,该目标应用程序的运行信息可以包括调用频次和运行信息,则可以基于目标应用程序的调用频次和运行时长,确定目标应用程序的使用特征参数值。
在一些实施方式中,该使用特征参数值可以包括使用频率和使用时长中的至少一种。例如,在获取目标应用程序的运行信息后,可以基于该运行信息,确定该目标应用程序的使用频率。又例如,在获取目标应用程序的运行信息后,可以基于该运行信息,确定目标应用程序的使用时长。
在一些实施方式中,当目标应用程序的使用特征参数值表征该目标应用程序在一天内打开至少一次,或者,当目标应用程序的运行时长表征该目标应用程序在一天内的运行时长超过30分钟,则可以认定该目标应用程序的使用特征参数值较高;当目标应用程序的使用特征参数值表征该目标应用程序在三天内打开至少一次,或者,当目标应用程序的运行时长表征该目标应用程序在三天内的运行时长超过30分钟,则可以认定该目标应用程序的使用特征参数值较低;当目标应用程序的使用特征参数值表征该目标应用程序在一周的时间未打开,则可以认定该目标应用程序的使用特征参数值极低。
步骤S240:基于所述使用特征参数值,从所述多个编译模式中确定所述目标应用程序对应的编译模式作为所述目标编译模式,其中,所述目标应用程序的使用特征参数值与所述目标编译模式对应预编译的代码量成正相关。
在一些实施方式中,电子设备可以预先设置多个编译模式以及多个编译模式中的每个编译模式与使用特征参数值之间的关系,或者,与电子设备连接的服务器可以预先设置多个编译模式以及多个编译模式中的每个编译模式与使用特征参数值之间的关系。因此,在本实施例中,在获取目标应用程序的使用特征参数值后,可以基于预先设置的使用特征参数值和编译模式的对应关系,从多个编译模式中确定目标应用程序对应的编译模式作为目标编译模式。
在一些实施方式中,目标应用程序的使用特征参数值与目标编译模式对应预编译的代码量成正相关,即,目标应用程序的使用特征参数值越高,则该目标编译模式对应预编译的代码量越多,目标应用程序的使用特征参数值越低,则该目标编译模式对应预编译的代码量越少。例如,目标应用程序的使用频率越高,则该目标编译模式对应的预编译代码量越多,目标应用程序的使用频率越低,则该目标编译模式对应的预编译代码量越少。又例如,目标应用程序的使用时长越高,则该目标编译模式对应的预编译代码量越多,目标应用程序的使用时长越低,则该目标编译模式对应的预编译代码量越少。作为一种方式,当多个编译模式包括speed模式、speed-profile模式以及实时编译模式时,如果目标应用程序的使用特征参数值较高时,则可以将speed模式确定为目标编译模式,如果目标应用程序的使用特征参数值较低时,则可以将speed-profile模式确定为目标编译模式,如果目标应用程序的使用特征参数值极低时,则可以将实时编译模式确定为目标编译模式。
步骤S250:基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理。
其中,步骤S250的具体描述请参阅步骤S140,在此不再赘述。
本申请又一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于该运行信息,确定目标应用程序的使用特征参数值,基于该使用特征参数值,从多个编译模式中确定目标应用程序对应的编译模式作为目标编译模式,其中,该目标应用程序的使用特征参数值与目标编译模式对应预编译的代码量成正相关,基于目标编译模式,对目标应用程序的安装包中包含的代码进行编译处理。相较于图1所示的编译处理方法,本实施例还基于应用程序的运行信息确定该应用程序的使用特征参数值,并基于该使用特征参数值进行目标编译模式的确定,以提升应用程序的代码预编译的合适程度,从而提升应用程序的运行效果和用户的使用体验。
请参阅图3,图3示出了本申请再一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图3所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S310:获取已安装的目标应用程序。
步骤S320:获取所述目标应用程序的运行信息。
其中,步骤S310-步骤S320的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S330:基于所述运行信息,确定所述目标应用程序的使用特征参数值。
其中,步骤S330的具体描述请参阅步骤S230,在此不再赘述。
步骤S340:当所述使用特征参数值大于第一指定参数值时,从所述多个编译模式中确定speed模式作为所述目标编译模式。
在一些实施方式中,电子设备可以预先设置并存储有第一指定参数值,该第一指定参数值用于作为目标应用程序的使用特征参数值的判断依据。因此,在本实施例中,在获取目标应用程序的使用特征参数值后,可以将目标应用程序的使用特征参数值和第一指定参数值进行比较,以判断目标应用程序的使用特征参数值是否大于第一指定参数值,其中,当判断结果表征目标应用程序的使用特征参数值大于第一指定参数值时,可以确定该目标应用程序的使用特征参数值较高,则可以从多个编译模式中确定speed模式作为目标编译模式。
步骤S350:基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译。
在一些实施方式中,在将speed模式确定为目标编译模式后,可以基于speed模式,对目标应用程序的安装包中包含的所有代码进行预编译,其中,该所有代码可以指示全部代码,也可以指示大部分代码,在此不做限定。
步骤S360:对已安装的所有应用程序进行扫描,其中,所述所有应用程序包括所述目标应用程序。
在一些实施方式中,目标***服务在电子设备处于充电和空闲的状态时,可以对电子设备已安装的包括目标应用程序的所有应用程序进行扫描,以判断在所有应用程序的运行过程中,是否触发热点代码统计,产生新的primary.prof文件,其中,当扫描到所有应用程序中的某个应用程序产生新的primary.prof文件时,可以确定该某个应用程序产生新的热点代码,当扫描到所有应用程序中的某个应用程序没有产生新的primary.prof文件时,可以确定该某个应用程序没有产生新的热点代码。
步骤S370:当扫描到所述目标应用程序产生新的热点代码时,不重新对所述目标应用程序的安装包中包含的所有代码进行预编译。
在本实施例中,当扫描到目标应用程序产生新的热点代码时,由于目标应用程序中的所有代码已经被预编译成机器码,则可以不重新对该目标应用程序的安装包中包含的所有代码进行预编译,以降低电子设备的功耗。
本申请再一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于该运行信息,确定目标应用程序的使用特征参数值,当该使用特征参数值大于第一指定参数值时,从多个编译模式中确定speed模式作为目标编译模式,基于speed模式,对目标应用程序的安装包中包含的所有代码进行预编译。相较于图1所示的编译处理方法,本实施例还在应用程序的使用特征参数值大于第一指定参数值时,确定speed模式对应用程序的安装包中包含的所有代码进行预编译,从而对高频使用的应用程序尽量多的预编译,以满足用户频繁使用时的高性能需求,另外,本实施例还在扫描到该高频应用程序产生新的热点代码时,不重新对目标应用程序进行预编译,以降低电子设备的功耗。
请参阅图4,图4示出了本申请另一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图4所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S410:获取已安装的目标应用程序。
步骤S420:获取所述目标应用程序的运行信息。
其中,步骤S410-步骤S420的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S430:基于所述运行信息,确定所述目标应用程序的使用特征参数值。
其中,步骤S430的具体描述请参阅步骤S230,在此不再赘述。
步骤S440:当所述使用特征参数值大于第一指定参数值时,从所述多个编译模式中确定speed模式作为所述目标编译模式。
步骤S450:基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译。
其中,步骤S440-步骤S450的具体描述请参阅步骤S340-步骤S350,在此不再赘述。
步骤S460:对已安装的多个应用程序进行扫描,其中,所述多个应用程序不包括所述目标应用程序。
在一些实施方式中,目标***服务在电子设备处于充电和空闲的状态时,可以对电子设备已安装的不包括目标应用程序的多个应用程序进行扫描,以判断在读个应用程序的运行过程中,是否触发热点代码统计,产生新的primary.prof文件,其中,当扫描到多个应用程序中的某个应用程序产生新的primary.prof文件时,可以确定该某个应用程序产生新的热点代码,当扫描到多个应用程序中的某个应用程序没有产生新的primary.prof文件时,可以确定该某个应用程序没有产生新的热点代码。
其中,由于目标应用程序中的所有代码已经被预编译成机器码,所以该目标应用程序新产生的热点代码也已经被预编译成机器码,不需要重新执行编译,则可以将该目标应用程序排出在目标***服务的扫描范围之外,节省整个流程的扫描时间。
本申请另一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于运行信息,确定目标应用程序的使用特征参数值,当使用特征参数值大于第一指定参数值时,从多个编译模式中确定speed模式作为目标编译模式,基于speed模式,对目标应用程序的安装包中包含的所有代码进行预编译,对已安装的多个应用程序进行扫描,其中,多个应用程序不包括目标应用程序。相较于图1所示的编译处理方法,本实施例还在应用程序的使用特征参数值大于第一指定参数值时,确定speed模式对应用程序的安装包中包含的所有代码进行预编译,从而对高频使用的应用程序尽量多的预编译,以满足用户频繁使用时的高性能需求,另外,本实施例还在扫描时直接不扫描该高频使用的应用程序,以降低电子设备的功耗。
请参阅图5,图5示出了本申请又再一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图5所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S510:获取已安装的目标应用程序。
步骤S520:获取所述目标应用程序的运行信息。
其中,步骤S510-步骤S520的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S530:基于所述运行信息,确定所述目标应用程序的使用特征参数值。
其中,步骤S530的具体描述请参阅步骤S230,在此不再赘述。
步骤S540:当所述使用特征参数值大于第二指定参数值且不大于所述第一指定参数值时,从所述多个编译模式中确定speed-profile模式作为所述目标编译模式。
在一些实施方式中,电子设备可以预先设置并存储有第一指定参数值和第二指定参数值,该第一指定参数值和第二指定参数值用于作为目标应用程序的使用特征参数值的判断依据。因此,在本实施例中,在获取目标应用程序的使用特征参数值后,可以将目标应用程序的使用特征参数值分别和第一指定参数值与第二指定参数值进行比较,以判断目标应用程序的使用特征参数值是否大于第二指定参数值且不大于第一指定参数值,其中,当判断结果表征目标应用程序的使用特征参数值大于第二指定参数值且不大于第一指定参数值时,可以确定该目标应用程序的使用特征参数值较低,则可以从多个编译模式中确定speed-profile模式作为目标编译模式。
步骤S550:基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译。
在一些实施方式中,在将speed-profile模式确定为目标编译模式后,可以基于speed-profile模式,对目标应用程序的安装包中包含的热点代码进行预编译。
步骤S560:对已安装的所有应用程序进行扫描或对所述目标应用程序进行扫描,其中,所述所有应用程序包括所述目标应用程序。
在一些实施方式中,目标***服务在电子设备处于充电和空闲的状态时,可以对电子设备已安装的包括目标应用程序的所有应用程序进行扫描,以判断在所有应用程序的运行过程中,是否触发热点代码统计,产生新的primary.prof文件,其中,当扫描到所有应用程序中的某个应用程序产生新的primary.prof文件时,可以确定该某个应用程序产生新的热点代码,当扫描到所有应用程序中的某个应用程序没有产生新的primary.prof文件时,可以确定该某个应用程序没有产生新的热点代码。
在一些实施方式中,目标***服务在电子设备处于充电和空闲的状态时,可以对电子设备已安装的目标应用程序进行扫描,以判断在目标应用程序的运行过程中,是否触发热点代码统计,产生新的primary.prof文件,其中,当扫描到目标应用程序中的某个应用程序产生新的primary.prof文件时,可以确定该目标应用程序产生新的热点代码,当扫描到目标应用程序中的某个应用程序没有产生新的primary.prof文件时,可以确定该目标应用程序没有产生新的热点代码。
步骤S570:当扫描到所述目标应用程序产生新的热点代码时,重新对所述目标应用程序的安装包中包含的热点代码进行预编译。
在本实施例中,当扫描到目标应用程序产生新的热点代码时,由于目标应用程序新产生的热点代码还没有被预编译成机器码,则可以重新对目标应用程序的安装包中包含的热点代码进行预编译,即将目标应用程序之前预编译的机器码删除,并重新对目标应用程序包括的所有热点代码执行预编译。
本申请又再一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于运行信息,确定目标应用程序的使用特征参数值,当使用特征参数值大于第二指定参数值且不大于第一指定参数值时,从多个编译模式中确定speed-profile模式作为目标编译模式,基于speed-profile模式,对目标应用程序的安装包中包含的热点代码进行预编译,对已安装的所有应用程序进行扫描或者对目标应用程序进行扫描,其中,所有应用程序包括目标应用程序,当扫描到目标应用程序产生新的热点代码时,重新对目标应用程序的安装包中包含的热点代码进行预编译。相较于图1所示的编译处理方法,本实施例还在应用程序的使用特征参数值大于第二指定参数值且不大于第一使用特征参数值时,确定speed模式对应用程序的安装包中包含的热点代码进行预编译,从而对低频使用的应用程序的热点代码进行预编译,以满足用户在使用时的基本性能需求以及降低对电子设备的存储空间的占用,另外,本实施例还在扫描到该低频应用程序产生新的热点代码时,重新对目标应用程序的热点代码进行预编译,以优化应用程序的性能。
请参阅图6,图6示出了本申请又另一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图6所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S610:获取已安装的目标应用程序。
步骤S620:获取所述目标应用程序的运行信息。
其中,步骤S610-步骤S620的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S630:基于所述运行信息,确定所述目标应用程序的使用特征参数值。
其中,步骤S630的具体描述请参阅步骤S230,在此不再赘述。
步骤S640:当所述使用特征参数值不大于所述第二指定参数值时,从所述多个编译模式中确定实时编译模式作为所述目标编译模式。
在一些实施方式中,电子设备可以预先设置并存储有第二指定参数值,该第二指定参数值用于作为目标应用程序的使用特征参数值的判断依据。因此,在本实施例中,在获取目标应用程序的使用特征参数值后,可以将目标应用程序的使用特征参数值和第二指定参数值进行比较,以判断目标应用程序的使用特征参数值是否不大于第二指定参数值,其中,当判断结果表征目标应用程序的使用特征参数值不大于第二指定参数值时,可以确定该目标应用程序的使用特征参数值极低,则可以从多个编译模式中确定实时编译模式作为目标编译模式。
步骤S650:基于所述实时编译模式,对所述目标应用程序的安装包中包含的代码进行实时编译。
在一些实施方式中,在将实时编译模式确定为目标编译模式后,可以基于实时编译模式,对目标应用程序的安装包中包含的代码进行实时编译。
在一些实施方式中,目标***服务在电子设备处于充电和空闲的状态时,可以对电子设备已安装的不包括目标应用程序的多个应用程序进行扫描,以判断在读个应用程序的运行过程中,是否触发热点代码统计,产生新的primary.prof文件,其中,当扫描到多个应用程序中的某个应用程序产生新的primary.prof文件时,可以确定该某个应用程序产生新的热点代码,当扫描到多个应用程序中的某个应用程序没有产生新的primary.prof文件时,可以确定该某个应用程序没有产生新的热点代码。
其中,由于目标应用程序中的所有代码都不需要被编译成机器码,所以该目标应用程序新产生的热点代码也不需要被预编译成机器码,不需要重新执行编译,则可以将该目标应用程序排出在目标***服务的扫描范围之外,节省整个流程的扫描时间。
本申请又另一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于运行信息,确定目标应用程序的使用特征参数值,当使用特征参数值不大于第二指定频率时,从多个编译模式中确定实时编译模式作为目标编译模式,基于实时编译模式,对目标应用程序的安装包中包含的代码进行实时编译。相较于图1所示的编译处理方法,本实施例还在应用程序的使用特征参数值不大于第二使用特征参数值时,确定实时编译模式对应用程序的安装包中包含的代码进行实时编译,从而对长时间不使用的应用程序的代码进行实时编译,以降低对电子设备的存储空间的占用。
请参阅图7,图7示出了本申请又又再一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图7所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S710:获取已安装的目标应用程序。
步骤S720:获取所述目标应用程序的运行信息。
其中,步骤S710-步骤S720的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S730:基于所述运行信息,确定所述目标应用程序的使用特征参数值。
其中,步骤S730的具体描述请参阅步骤S230,在此不再赘述。
步骤S740:当所述使用特征参数值大于所述第一指定参数值时,获取剩余存储空间。
在一些实施方式中,电子设备可以预先设置并存储有第一指定参数值,该第一指定参数值用于作为目标应用程序的使用特征参数值的判断依据。因此,在本实施例中,在获取目标应用程序的使用特征参数值后,可以将目标应用程序的使用特征参数值和第一指定参数值进行比较,以判断目标应用程序的使用特征参数值是否大于第一指定参数值,其中,当判断结果表征目标应用程序的使用特征参数值大于第一指定参数值时,可以获取电子设备的剩余存储空间。
步骤S750:当所述剩余存储空间大于指定存储空间时,从所述多个编译模式中确定speed模式作为所述目标编译模式。
在一些实施方式中,电子设备可以预先设置并存储有指定存储空间,该指定存储空间用于作为电子设备的剩余存储空间的判断依据。因此,在本实施例中,在获取电子设备的剩余存储空间后,可以将电子设备的剩余存储空间和指定存储空间进行比较,以判断电子设备的剩余存储空间是否大于指定存储空间,其中,当判断结果表征电子设备的剩余存储空间大于指定存储空间时,表征即使将目标应用程序的安装包中的所有代码均预编译为机器码,电子设备也有足够的剩余存储空间进行存储,则可以从多个编译模式中确定speed模式作为目标编译模式。
步骤S760:基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译。
在一些实施方式中,在将speed模式确定为目标编译模式后,可以基于speed模式,对目标应用程序的安装包中包含的所有代码进行预编译。
步骤S770:当所述剩余存储空间不大于指定存储空间时,从所述多个编译模式中确定speed-profile模式作为所述目标编译模式。
在一些实施方式中,电子设备可以预先设置并存储有指定存储空间,该指定存储空间用于作为电子设备的剩余存储空间的判断依据。因此,在本实施例中,在获取电子设备的剩余存储空间后,可以将电子设备的剩余存储空间和指定存储空间进行比较,以判断电子设备的剩余存储空间是否大于指定存储空间,其中,当判断结果表征电子设备的剩余存储空间不大于指定存储空间时,表征如果将目标应用程序的安装包中的所有代码均预编译为机器码,电子设备没有足够的剩余存储空间进行存储,则可以从多个编译模式中确定speed-profile模式作为目标编译模式,以对目标应用程序的安装包中的热点代码预编译成机器码,从而减少机器码的数量。
步骤S780:基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译。
在一些实施方式中,在将speed-profile模式确定为目标编译模式后,可以基于speed-profile模式,对目标应用程序的安装包中包含的热点代码进行预编译。
本申请又又再一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于运行信息,确定目标应用程序的使用特征参数值,当使用特征参数值大于第一指定参数值时,获取剩余存储空间,当剩余存储空间大于指定存储空间时,从多个编译模式中确定speed模式作为目标编译模式,基于speed模式,对目标应用程序的安装包中包含的所有代码进行预编译,当剩余存储空间不大于指定存储空间时,从多个编译模式中确定speed-profile模式作为目标编译模式,基于speed-profile模式,对目标应用程序的安装包中包含的热点代码进行预编译。相较于图1所示的编译处理方式,本实施例还在应用程序的使用特征参数值大于第一指定参数值时,根据电子设备的剩余存储空间的大小,确定speed模式或者speed-profile模式作为目标编译模式,从而保证电子设备具有良好的剩余存储空间,提升编译模式选择的智能性。
请参阅图8,图8示出了本申请又又另一个实施例提供的编译处理方法的流程示意图。该方法应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图8所示的流程进行详细的阐述,所述编译处理方法具体可以包括以下步骤:
步骤S810:获取已安装的目标应用程序。
步骤S820:获取所述目标应用程序的运行信息。
其中,步骤S810的具体描述请参阅步骤S110,在此不再赘述。
步骤S830:获取所述目标应用程序的应用类型。
在一些实施方式中,在获取已安装的目标应用程序后,可以获取该目标应用程序的应用类型,例如,可以获取该目标应用程序的应用类型为视频类、游戏类、即时通讯类、新闻类等,在此不做限定。
步骤S840:基于所述运行信息和所述应用类型,确定所述目标应用程序的使用特征参数值。
在本实施例中,在获取目标应用程序的运行信息和应用类型后,可以基于该目标应用程序的运行信息和应用类型,确定该目标应用程序的使用特征参数值。例如,假设目标应用程序包括第一目标应用程序和第二目标应用程序,且第一目标应用程序和第二目标应用程序的运行信息相同,第一目标应用程序和第二目标应用程序的应用类型不相同,那么,第一目标应用程序和第二目标应用程序的使用特征参数值不同。又例如,假设目标应用程序包括第三目标应用程序和第四目标应用程序,且第三目标应用程序和第四目标应用程序的运行信息不相同,第三目标应用程序和第四目标应用程序的应用类型相同,那么,第三目标应用程序和第四目标应用程序的使用特征参数值不同。
例如,当第一目标应用程序和第二目标应用程序均是在三天内打开至少一次,或者,当目标应用程序的运行时长表征该目标应用程序在三天内的运行时长超过30分钟,而第一目标应用程序的应用类型为游戏类型,第二目标应用程序的应用类型为即时通讯类型时,可以确定该第一目标应用程序的使用特征参数值较高,第二目标应用程序的使用特征参数值较低。
步骤S850:基于所述使用特征参数值,从多个编译模式中确定所述目标应用程序对应的编译模式作为目标编译模式。
其中,步骤S850的具体描述请参阅步骤S240,在此不再赘述。
步骤S860:基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理。
其中,步骤S860的具体描述请参阅步骤S140,在此不再赘述。
步骤S870:当所述使用特征参数值从大于所述第二指定参数值变化到不大于所述第二指定参数值时,将本地存储的目标机器码删除,其中,所述目标机器码由所述目标应用程序的安装包中包含的代码经所述目标编译模式进行预编译获得。
在一些实施方式中,目标应用程序的使用特征参数值从大于第二指定参数值变化到不大于第二指定参数值可以包括:目标应用程序的使用特征参数值从大于第一指定参数值变化到不大于第二指定参数值,目标应用程序的使用特征参数值从大于第二指定参数值且不大于第一指定参数值变化到不大于第二指定参数值。其中,当目标应用程序的使用特征参数值从大于第一指定参数值变化到不大于第二指定参数值时,表征目标应用程序的使用特征参数值从较高变化到极低,当目标应用程序的使用特征参数值从大于第二指定参数值且不大于第一指定参数值变化到不大于第二指定参数值时,表征目标应用程序的使用特征参数值从较低变化到极低。
在一些实施方式中,在目标应用程序的使用特征参数值大于第一指定参数值时,会对目标应用程序的安装包中的所有代码进行预编译生成目标机器码存储在电子设备,在目标应用程序的使用特征参数值大于第二指定参数值且不大于第一指定参数值时,会对目标应用程序的安装包中的热点代码进行预编译生成目标机器码存储在电子设备。因此,在目标应用程序的使用特征参数值从大于第二指定参数值变化到不大于第二指定参数值时,表征目标应用程序的被使用的概率极低,则可以将本地存储的目标机器码删除,以释放电子设备的存储空间。
本申请又又另一个实施例提供的编译处理方法,获取已安装的目标应用程序,获取目标应用程序的应用类型,基于运行信息和应用类型,确定目标应用程序的使用特征参数值,基于使用特征参数值,从多个编译模式中确定目标应用程序对应的编译模式作为目标编译模式,基于目标编译模式,对目标应用程序的安装包中包含的代码进行编译,当使用特征参数值从大于第二指定参数值变化到不大于第二指定参数值时,将本地存储的目标机器码删除,其中,目标机器码由目标应用程序的安装包中包含的代码经目标编译模式进行预编译获得。相较于图1所示的编译处理方式,本实施例还综合应用程序的类型和运行信息确定其使用特征参数值,提升确定的使用特征参数值的准确性。另外,本实施例还在目标应用程序的使用特征参数值降低到一定程度时,将其对应的机器码删除,以释放电子设备的存储空间。
请参阅图9,图9示出了本申请实施例提供的编译处理装置的模块框图。该编译处理装置200应用于上述电子设备的目标***服务,该目标***服务用于处理电子设备的编译任务,下面将针对图9所示的模块框图进行阐述,所述编译处理装置200包括:目标应用程序获取模块210、运行信息获取模块220、目标编译模式确定模块230以及编译处理模块240,其中:
目标应用程序获取模块210,用于获取已安装的目标应用程序。
运行信息获取模块220,用于获取所述目标应用程序的运行信息。
目标编译模式确定模块230,用于基于所述运行信息,从多个编译模式中确定所述目标应用程序对应的编译模式作为目标编译模式,其中,所述多个编译模式中的每个编译模式对应预编译的代码量不同。
进一步地,所述目标编译模式确定模块230包括:使用特征参数值确定子模块和目标编译模式确定子模块,其中:
使用特征参数值确定子模块,用于基于所述运行信息,确定所述目标应用程序的使用特征参数值。
目标编译模式确定子模块,用于基于所述使用特征参数值,从所述多个编译模式中确定所述目标应用程序对应的编译模式作为所述目标编译模式,其中,所述目标应用程序的使用特征参数值与所述目标编译模式对应预编译的代码量成正相关。
进一步地,所述目标编译模式确定子模块包括:第一目标编译模式确定单元,其中:
第一目标编译模式确定单元,用于当所述使用特征参数值大于第一指定参数值时,从所述多个编译模式中确定speed模式作为所述目标编译模式。
进一步地,所述第一目标编译模式确定单元包括:存储空间获取子单元、第一目标编译模式确定子单元、第二目标编译模式确定子单元以及预编译子单元,其中:
存储空间获取子单元,用于当所述使用特征参数值大于所述第一指定参数值时,获取剩余存储空间。
第一目标编译模式确定子单元,用于当所述剩余存储空间大于指定存储空间时,从所述多个编译模式中确定speed模式作为所述目标编译模式。
第二目标编译模式确定子单元,用于当所述剩余存储空间不大于指定存储空间时,从所述多个编译模式中确定speed-profile模式作为所述目标编译模式。
预编译子单元,用于基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译。
进一步地,所述目标编译模式确定子模块包括:第二目标编译模式确定单元,其中:
第二目标编译模式确定单元,用于当所述使用特征参数值大于第二指定参数值且不大于所述第一指定参数值时,从所述多个编译模式中确定speed-profile模式作为所述目标编译模式。
进一步地,所述目标编译模式确定子模块包括:第三目标编译模式确定单元,其中:
第三目标编译模式确定单元,用于当所述使用特征参数值不大于所述第二指定参数值时,从所述多个编译模式中确定实时编译模式作为所述目标编译模式。
进一步地,所述目标编译模式确定模块230包括:应用程序获取子模块和第一使用特征参数值确定子模块,其中:
应用类型获取子模块,用于获取所述目标应用程序的应用类型。
第一使用特征参数值确定子模块,用于基于所述运行信息和所述应用类型,确定所述目标应用程序的使用特征参数值。
进一步地,所述运行信息包括调用频次和运行时长,所述目标编译模式确定模块230包括:第二使用特征参数值确定子模块,其中:
第二使用特征参数值确定子模块,用于基于所述调用频次和所述运行时长,确定所述目标应用程序的使用特征参数值。
编译处理模块240,用于基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理。
进一步地,所述编译处理模块240包括:第一编译处理子模块,其中:
第一编译处理子模块,用于基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译。
进一步地,所述编译处理模块240包括:第一扫描子模块和第二编译处理子模块,其中:
第一扫描子模块,用于对已安装的所有应用程序进行扫描,其中,所述所有应用程序包括所述目标应用程序。
第二编译处理子模块,用于当扫描到所述目标应用程序产生新的热点代码时,不重新对所述目标应用程序的安装包中包含的所有代码进行预编译。
进一步地,所述编译处理模块240包括:第二扫描子模块,其中:
第二扫描子模块,用于对已安装的多个应用程序进行扫描,其中,所述多个应用程序不包括所述目标应用程序。
进一步地,所述编译处理模块240包括:第二编译处理子模块,其中:
第二编译处理子模块,用于基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译。
进一步地,所述编译处理模块240包括:第三扫描子模块和第三编译处理子模块,其中:
第三扫描子模块,用于对已安装的所有应用程序进行扫描或对所述目标应用程序进行扫描,其中,所述所有应用程序包括所述目标应用程序。
第三编译处理子模块,用于当扫描到所述目标应用程序产生新的热点代码时,重新对所述目标应用程序的安装包中包含的热点代码进行预编译。
进一步地,所述编译处理模块240包括:第四编译处理子模块,其中:
第四编译处理子模块,用于基于所述实时编译模式,对所述目标应用程序的安装包中包含的代码进行实时编译。
进一步地,所述编译处理装置200包括:机器码删除模块,其中:
机器码删除模块,用于当所述使用特征参数值从大于所述第二指定参数值变化到不大于所述第二指定参数值时,将本地存储的目标机器码删除,其中,所述目标机器码由所述目标应用程序的安装包中包含的代码经所述目标编译模式进行预编译获得。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图10,其示出了本申请实施例提供的一种电子设备100的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质300中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质300可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质300包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质300具有执行上述方法中的任何方法步骤的程序代码310的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码310可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的编译处理方法、装置、电子设备以及存储介质,获取已安装的目标应用程序,获取目标应用程序的运行信息,基于该运行信息,从多个编译模式中确定目标应用程序对应的编译模式作为目标编译模式,其中,多个编译模式中的每个编译模式对应预编译的代码量不同,基于目标编译模式,对目标应用程序的安装包中包含的代码进行编译处理,从而通过将应用程序的代码预编译的力度与应用程序的运行信息关联起来,从而实现针对不同运行信息的应用程序的代码进行不同的预编译,提升应用程序的运行效果和用户的使用体验。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种编译处理方法,其特征在于,应用于电子设备的目标***服务,所述目标***服务用于处理所述电子设备的编译任务,所述方法包括:
获取已安装的目标应用程序;
获取所述目标应用程序的运行信息;
基于所述运行信息,从多个编译模式中确定所述目标应用程序对应的编译模式作为目标编译模式,其中,所述多个编译模式中的每个编译模式对应预编译的代码量不同;
基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述运行信息,从多个编译模式中确定所述目标应用程序对应的编译模式作为目标编译模式,包括:
基于所述运行信息,确定所述目标应用程序的使用特征参数值;
基于所述使用特征参数值,从所述多个编译模式中确定所述目标应用程序对应的编译模式作为所述目标编译模式,其中,所述目标应用程序的使用特征参数值与所述目标编译模式对应预编译的代码量成正相关。
3.根据权利要求2所述的方法,其特征在于,所述基于所述使用特征参数值,从所述多个编译模式中确定所述目标应用程序对应的编译模式作为所述目标编译模式,包括:
当所述使用特征参数值大于第一指定参数值时,从所述多个编译模式中确定speed模式作为所述目标编译模式;
所述基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理,包括:
基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译。
4.根据权利要求3所述的方法,其特征在于,在所述基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译之后,还包括:
对已安装的所有应用程序进行扫描,其中,所述所有应用程序包括所述目标应用程序;
当扫描到所述目标应用程序产生新的热点代码时,不重新对所述目标应用程序的安装包中包含的所有代码进行预编译。
5.根据权利要求3所述方法,其特征在于,在所述基于所述speed模式,对所述目标应用程序的安装包中包含的所有代码进行预编译之后,还包括:
对已安装的多个应用程序进行扫描,其中,所述多个应用程序不包括所述目标应用程序。
6.根据权利要求3所述的方法,其特征在于,所述当所述使用特征参数值大于第一指定参数值时,从所述多个编译模式中确定speed模式作为所述目标编译模式,包括:
当所述使用特征参数值大于所述第一指定参数值时,获取剩余存储空间;
当所述剩余存储空间大于指定存储空间时,从所述多个编译模式中确定speed模式作为所述目标编译模式。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述剩余存储空间不大于指定存储空间时,从所述多个编译模式中确定speed-profile模式作为所述目标编译模式;
所述基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理,包括:
基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译。
8.根据权利要求3所述的方法,其特征在于,所述基于所述使用特征参数值,从所述多个编译模式中确定所述目标应用程序对应的编译模式作为所述目标编译模式,包括:
当所述使用特征参数值大于第二指定参数值且不大于所述第一指定参数值时,从所述多个编译模式中确定speed-profile模式作为所述目标编译模式;
所述基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理,包括:
基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译。
9.根据权利要求8所述的方法,其特征在于,在所述基于所述speed-profile模式,对所述目标应用程序的安装包中包含的热点代码进行预编译之后,还包括:
对已安装的所有应用程序进行扫描或对所述目标应用程序进行扫描,其中,所述所有应用程序包括所述目标应用程序;
当扫描到所述目标应用程序产生新的热点代码时,重新对所述目标应用程序的安装包中包含的热点代码进行预编译。
10.根据权利要求8所述的方法,其特征在于,所述基于所述使用特征参数值,从所述多个编译模式中确定所述目标应用程序对应的编译模式作为所述目标编译模式,包括:
当所述使用特征参数值不大于所述第二指定参数值时,从所述多个编译模式中确定实时编译模式作为所述目标编译模式;
所述基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理,包括:
基于所述实时编译模式,对所述目标应用程序的安装包中包含的代码进行实时编译。
11.根据权利要求8所述的方法,其特征在于,在所述基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理之后,还包括:
当所述使用特征参数值从大于所述第二指定参数值变化到不大于所述第二指定参数值时,将本地存储的目标机器码删除,其中,所述目标机器码由所述目标应用程序的安装包中包含的代码经所述目标编译模式进行预编译获得。
12.根据权利要求2-11任一项所述的方法,其特征在于,所述基于所述运行信息,确定所述目标应用程序的使用特征参数值,包括:
获取所述目标应用程序的应用类型;
基于所述运行信息和所述应用类型,确定所述目标应用程序的使用特征参数值。
13.根据权利要求2-11任一项所述的方法,其特征在于,所述运行信息包括调用频次和运行时长,所述基于所述运行信息,确定所述目标应用程序的使用特征参数值,包括:
基于所述调用频次和所述运行时长,确定所述目标应用程序的使用特征参数值。
14.一种编译处理装置,其特征在于,应用于电子设备的目标***服务,所述目标***服务用于处理所述电子设备的编译任务,所述装置包括:
目标应用程序获取模块,用于获取已安装的目标应用程序;
运行信息获取模块,用于获取所述目标应用程序的运行信息;
目标编译模式确定模块,用于基于所述运行信息,从多个编译模式中确定所述目标应用程序对应的编译模式作为目标编译模式,其中,所述多个编译模式中的每个编译模式对应预编译的代码量不同;
编译处理模块,用于基于所述目标编译模式,对所述目标应用程序的安装包中包含的代码进行编译处理。
15.一种电子设备,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-13任一项所述的方法。
16.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-13任一项所述的方法。
CN202011595428.7A 2020-12-29 2020-12-29 编译处理方法、装置、电子设备以及存储介质 Pending CN112540769A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011595428.7A CN112540769A (zh) 2020-12-29 2020-12-29 编译处理方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011595428.7A CN112540769A (zh) 2020-12-29 2020-12-29 编译处理方法、装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN112540769A true CN112540769A (zh) 2021-03-23

Family

ID=75017783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011595428.7A Pending CN112540769A (zh) 2020-12-29 2020-12-29 编译处理方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112540769A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326046A (zh) * 2021-05-26 2021-08-31 网易(杭州)网络有限公司 获取编译时长的方法和装置
CN116088888A (zh) * 2022-07-22 2023-05-09 荣耀终端有限公司 应用程序更新方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121215A1 (en) * 2015-04-23 2018-05-03 Fluent Systems, Inc. Dynamic and customizable user interface platform
CN108228200A (zh) * 2017-12-27 2018-06-29 中兴通讯股份有限公司 一种优化应用程序安装的方法、装置及终端
CN110362314A (zh) * 2019-07-12 2019-10-22 Oppo广东移动通信有限公司 信息处理方法及装置、计算机可读介质、电子设备
CN111078318A (zh) * 2019-12-18 2020-04-28 Oppo广东移动通信有限公司 配置文件的处理方法、装置、***及存储介质
US20200169687A1 (en) * 2018-11-27 2020-05-28 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and device for video enhancement, and electronic device using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121215A1 (en) * 2015-04-23 2018-05-03 Fluent Systems, Inc. Dynamic and customizable user interface platform
CN108228200A (zh) * 2017-12-27 2018-06-29 中兴通讯股份有限公司 一种优化应用程序安装的方法、装置及终端
US20200169687A1 (en) * 2018-11-27 2020-05-28 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and device for video enhancement, and electronic device using the same
CN110362314A (zh) * 2019-07-12 2019-10-22 Oppo广东移动通信有限公司 信息处理方法及装置、计算机可读介质、电子设备
CN111078318A (zh) * 2019-12-18 2020-04-28 Oppo广东移动通信有限公司 配置文件的处理方法、装置、***及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周波等: "用代码缓存复用技术提升Android即时编译器效率", 小型微型计算机***, no. 06, 15 June 2013 (2013-06-15) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326046A (zh) * 2021-05-26 2021-08-31 网易(杭州)网络有限公司 获取编译时长的方法和装置
CN113326046B (zh) * 2021-05-26 2023-09-26 网易(杭州)网络有限公司 获取编译时长的方法和装置
CN116088888A (zh) * 2022-07-22 2023-05-09 荣耀终端有限公司 应用程序更新方法及相关装置
CN116088888B (zh) * 2022-07-22 2023-10-31 荣耀终端有限公司 应用程序更新方法及相关装置

Similar Documents

Publication Publication Date Title
CN107659828B (zh) 视频画质调整方法、装置、终端设备及存储介质
CN110764906B (zh) 内存回收处理方法、装置、电子设备以及存储介质
CN107748685B (zh) 应用程序启动控制方法、装置、终端设备及存储介质
CN110765031B (zh) 数据存储方法、装置、移动终端及存储介质
CN112540769A (zh) 编译处理方法、装置、电子设备以及存储介质
CN112948026A (zh) 热点代码处理方法、装置、服务器、电子设备及存储介质
CN111050378B (zh) 网络搜索方法、装置及电子设备
CN106937258B (zh) 一种广播的控制方法、装置及移动终端
CN114071174A (zh) 直播内容的处理方法、电子设备及可读存储介质
CN114610650A (zh) 内存压缩方法、装置、存储介质及电子设备
CN112559088A (zh) 配置文件的优化方法、装置、服务器以及存储介质
CN111273769B (zh) 一种设备控制方法、装置、电子设备及存储介质
CN115220912A (zh) ***资源的配置方法、装置、电子设备以及存储介质
CN112233676A (zh) 智能设备唤醒方法、装置、电子设备及存储介质
CN107450951B (zh) 应用程序处理方法、装置、存储介质和终端
CN110737606A (zh) 内存回收处理方法、装置、电子设备以及存储介质
US20200177593A1 (en) Generating a custom blacklist for a listening device based on usage
CN113342505A (zh) 线程识别方法、线程识别装置、存储介质与电子设备
CN107291543B (zh) 应用程序处理方法、装置、存储介质和终端
CN111506747A (zh) 文件解析方法、装置、电子设备及存储介质
WO2021129489A1 (zh) 应用程序预编译的方法、装置、电子设备及存储介质
WO2021088686A1 (zh) 编译优化信息生成方法、装置及电子设备
CN114546171A (zh) 数据分发方法、装置、存储介质及电子设备
CN108958829B (zh) 预加载的资源控制方法、装置、存储介质及终端
CN113031953A (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