一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

dex文件的编译控制方法及装置与流程

2022-09-02 22:33:55 来源:中国专利 TAG:


1.本技术涉及应用程序领域,尤其涉及一种dex文件的编译控制方法及装置。


背景技术:

2.针对应用程序,可以触发字节码优化模块如dex2oat将应用程序的dex文件进行编译,编译所得到的odex文件为电子设备可以直接运行的机器码,由此可以使得应用程序的运行更加流畅。
3.而dex2oat在对dex文件进行编译时,需要占用电子设备中的cpu资源,由此,如果存在频繁触发dex2oat执行编译操作的情况,会使得cpu资源会被过度占用,导致电子设备过热。


技术实现要素:

4.本技术提供了一种dex文件的编译控制方法及装置,目的在于解决电子设备过热的问题。
5.为了实现上述目的,本技术提供了以下技术方案:
6.本技术的第一方面提供一种dex文件的编译控制方法,包括:在电子设备对应用程序执行dex文件编译的过程中,获得电子设备的温度值和表征应用处理是否频繁的判断结果;进而在温度值小于或等于温度阈值的情况下,控制电子设备以第一运行模式执行dex文件编译;在温度值大于温度阈值且判断结果表征应用处理频繁的情况下,控制电子设备以第二运行模式执行dex文件编译;在温度值大于温度阈值且判断结果表征应用处理不频繁的情况下,控制电子设备以第三运行模式执行dex文件编译,第三运行模式、第二运行模式和第一运行模式不同。可见,本技术通过获得电子设备的温度值以及表征应用处理是否频繁的判断结果来控制电子设备以不同的运行模式执行dex文件编译,从而通过调整执行dex文件编译的运行模式来达到调整电子设备能耗的目的,进而避免能耗过高导致的电子设备过热的情况。
7.在一种可能的实现方式中,第二运行模式下,电子设备在目标运行核上执行dex文件编译;目标运行核包含至少一个能耗低于阈值的内核。可见,本技术中通过控制电子设备在较低能耗的运行核执行dex文件编译,从而降低电子设备的能耗,避免电子设备过热的情况。
8.在一种可能的实现方式中,控制电子设备以第二运行模式执行dex文件编译,包括:根据温度值,获得温度值所处的目标温度范围;根据目标温度范围和判断结果,获得第一调整参数,第一调整参数中至少包含目标温度范围对应的目标编译模式的模式标识和目标运行核的核标识;至少根据第一调整参数,获得编译指令,编译指令用于指示电子设备在目标运行核上按照目标编译模式执行dex文件编译。可见,本技术中在应用处理频繁的情况下,除了调整电子设备执行dex文件编译所使用的运行核,还调整执行dex文件编译所使用的编译模式,从而进一步将执行dex文件编译的性能与电子设备的温度值和应用处理是否
频繁的状态更加精确的匹配,从而避免电子设备过热的情况。
9.在一种可能的实现方式中,控制电子设备以第三运行模式执行dex文件编译,包括:根据温度值,获得温度值所处的目标温度范围;根据目标温度范围,获得第二调整参数,第二调整参数中至少包含目标温度范围对应的目标编译模式的模式标识;至少根据第二调整参数,获得编译指令,编译指令用于指示电子设备按照目标编译模式执行dex文件编译。可见,本技术中在应用处理不频繁的情况下,通过调整执行dex文件编译所使用的编译模式,从而将执行dex文件编译的性能与电子设备的温度值更加精确的匹配,从而避免电子设备过热的情况。
10.在一种可能的实现方式中,目标编译模式为第一种编译模式、第二种编译模式、第三种编译模式或不执行编译的模式,第一种编译模式的编译性能大于第一种编译模式的编译性能和第二种编译模式的编译性能,第二种编译模式的编译性能大于第三种编译模式的编译性能,第一种编译模式的编译时长大于第一种编译模式的编译时长和第二种编译模式的编译时长,第二种编译模式的编译时长大于第三种编译模式的编译时长;其中,第一编译模式对应于第一温度范围,第二编译模式对应于第二温度范围、第三编译模式对应于第三温度范围,不执行编译的模式对应于第四温度范围,第一温度范围的最大边界值小于第二温度范围的最小边界值,第二温度范围的最大边界值小于第三温度范围的最小边界值,第三温度范围的最大边界值小于第四温度范围的最小边界值。可见,本技术中配置多种编译性能和编译时长均不同的编译模式,并将不同的编译模式对应于不同的温度范围,从而基于电子设备的温度值调整执行dex文件编译的编译模式,以达到平衡电子设备的能耗和执行dex文件编译的编译性能的目的。
11.在一种可能的实现方式中,至少根据第一调整参数,获得编译指令,包括:至少将第一调整参数中的模式标识和核标识添加到初始化的编译指令中;或者,将第一调整参数中的模式标识替换编译指令中所包含的模式标识,并将第一调整参数中的核标识添加到编译指令中。可见,本技术中在应用处理频繁的情况下,通过在编译指令中配置基于电子设备的温度值所得到的目标编译模式的模式标识以及基于应用处理是否频繁的状态所确定的目标运行核的核标识,使得电子设备在较低能耗的运行核上以相应的编译模式执行dex文件编译,从而使得执行dex文件编译的编译性能与电子设备的温度值和应用处理频繁的状态相匹配,进而避免能耗过高导致的电子设备过热的情况。
12.在一种可能的实现方式中,至少根据第二调整参数,获得编译指令,包括:至少将第二调整参数中的模式标识添加到初始化的编译指令中;或者,将第二调整参数中的模式标识替换编译指令中所包含的模式标识。可见,本技术中在应用处理不频繁的情况下,通过在编译指令中配置基于电子设备的温度值所得到的目标编译模式的模式标识,使得电子设备以相应的编译模式执行dex文件编译,从而使得执行dex文件编译的编译性能与电子设备的温度值相匹配,进而避免能耗过高导致的电子设备过热的情况。
13.在一种可能的实现方式中,根据目标温度范围和判断结果,获得第一调整参数,包括:在温度范围与编译模式的对应关系表中,查找与目标温度范围相对应的目标编译模式,以得到至少包含目标编译模式的模式标识和目标运行核和核标识的第一调整参数;其中,温度范围与编译模式的对应关系表中包含多个候选温度范围,每个候选温度范围分别对应于一个候选编译模式,高的候选温度范围对应的候选编译模式的编译时长小于低的候选温
度范围对应的候选编译模式的编译时长。可见,本技术中在应用处理频繁的情况下,如果电子设备处于较高的温度范围,那么除了为电子设备选择较低能耗的运行核,还为电子设备选择较低编译时长的编译模式,由此,通过减少执行dex文件编译所消耗的时长,来避免执行dex文件编译占用运行核时间过长而导致能耗过高的情况,从而缓解电子设备过热的情况。
14.在一种可能的实现方式中,根据目标温度范围,获得第二调整参数,包括:在温度范围与编译模式的对应关系表中,查找与目标温度范围相对应的目标编译模式,以得到至少包含目标编译模式的模式标识的第二调整参数;其中,温度范围与编译模式的对应关系表中包含多个候选温度范围,每个候选温度范围分别对应于一个候选编译模式,高的候选温度范围对应的候选编译模式的编译时长小于低的候选温度范围对应的候选编译模式的编译时长。可见,本技术中在应用处理不频繁的情况下,如果电子设备处于较高的温度范围,那么为电子设备选择较低编译时长的编译模式,由此,通过减少执行dex文件编译所消耗的时长,来避免执行dex文件编译占用运行核时间过长而导致能耗过高的情况,从而缓解电子设备过热的情况。
15.在一种可能的实现方式中,在至少根据第一调整参数,获得编译指令之前,方法还包括:判断第一调整参数中的模式标识是否对应于不触发编译的模式;如果第一调整参数中的模式标识对应于不触发编译的模式,结束当前流程;如果第一调整参数中的模式标识不对应于不触发编译的模式,执行步骤:至少根据第一调整参数,获得编译指令。可见,本技术中在应用处理频繁且温度值过高的情况下,可以通过不为电子设备生成触发执行dex文件编译的编译指令,从而不执行dex文件编译,进而避免执行dex文件编译导致电子设备过热严重的情况。
16.在一种可能的实现方式中,在至少根据第二调整参数,获得编译指令之前,方法还包括:判断第二调整参数中的模式标识是否对应于不触发编译的模式;如果第二调整参数中的模式标识对应于不触发编译的模式,结束当前流程;如果第二调整参数中的模式标识不对应于不触发编译的模式,执行步骤:至少根据第二调整参数,获得编译指令。可见,本技术中在应用处理不频繁但温度值过高的情况下,可以通过不为电子设备生成触发执行dex文件编译的编译指令,从而不执行dex文件编译,进而避免执行dex文件编译导致电子设备过热严重的情况。
17.在一种可能的实现方式中,获得表征应用处理是否频繁的判断结果,包括:获得电子设备上安装应用程序的安装开始时刻;至少根据安装开始时刻,获得相邻两个应用程序被安装的安装时间间隔;如果连续n 1个应用程序被安装且相邻两个被安装的应用程序的安装时间间隔小于或等于安装间隔阈值,获得表征应用安装频繁的判断结果;n为大于获得等于1的正整数;如果没有n 1个应用程序被连续安装或者相邻两个被安装的应用程序的安装时间间隔大于安装间隔阈值,获得表征应用安装不频繁的判断结果。可见,本技术中在电子设备上安装应用程序过程中,通过判断电子设备是否连续安装多个应用程序且安装时间间隔是否过小,来确定电子设备过热是否源自频繁的应用程序安装,从而通过控制执行dex文件编译在较低能耗的运行核进行,达到降低电子设备的能耗的目的,以避免电子设备过热的情况。
18.在一种可能的实现方式中,获得表征应用处理是否频繁的判断结果,包括:获得应
用程序dex文件被编译的编译开始时刻;至少根据编译开始时刻,获得电子设备相邻两次执行编译的编译时间间隔;如果电子设备连续m 1次执行编译处理且相邻两次执行编译的编译时间间隔小于或等于编译间隔阈值,获得表征应用编译频繁的判断结果;m为大于或等于1的正整数;如果电子设备没有连续m 1次执行编译处理或相邻两次执行编译的编译时间间隔大于编译间隔阈值,获得表征应用编译不频繁的判断结果。可见,本技术中对已经被安装完成的应用程序,通过判断电子设备是否连续多次执行dex文件编译且编译时间间隔是否过小,来确定电子设备过热是否源自频繁的dex文件编译,从而通过控制执行dex文件编译在较低能耗的运行核进行,达到降低电子设备的能耗的目的,以避免电子设备过热的情况。
19.在一种可能的实现方式中,电子设备对应用程序执行dex文件编译的过程,包括:电子设备中执行应用程序的安装包中的安装程序后,对应用程序执行dex文件编译的过程;或者,电子设备中拦截到对应于被安装完成的应用程序的编译指令,对应用程序执行dex文件编译的过程。可见,本技术适用于电子设备安装应用程序过程中对电子设备进行温度控制的场景,也适用于应用程序被安装完成后对应用程序执行dex文件编译时对电子设备进行温度控制的场景。
20.本技术的第二方面提供一种dex文件的编译控制装置,包括:监控模块,用于在电子设备对应用程序执行dex文件编译的过程中,获得电子设备的温度值和表征应用处理是否频繁的判断结果;处理模块,用于在温度值小于或等于温度阈值的情况下,控制电子设备以第一运行模式执行dex文件编译;在温度值大于温度阈值且判断结果表征应用处理频繁的情况下,控制电子设备以第二运行模式执行dex文件编译;在温度值大于温度阈值且判断结果表征应用处理不频繁的情况下,控制电子设备以第三运行模式执行dex文件编译,第三运行模式、第二运行模式和第一运行模式不同。可见,本技术通过获得电子设备的温度值以及表征应用处理是否频繁的判断结果来控制电子设备以不同的运行模式执行dex文件编译,从而通过调整执行dex文件编译的运行模式来达到调整电子设备能耗的目的,进而避免能耗过高导致的电子设备过热的情况。
21.在一种可能的实现方式中,第二运行模式下,电子设备在目标运行核上执行dex文件编译;目标运行核包含至少一个能耗低于阈值的内核。可见,本技术中通过控制电子设备在较低能耗的运行核执行dex文件编译,从而降低电子设备的能耗,避免电子设备过热的情况。
22.在一种可能的实现方式中,监控模块还用于:在温度值大于温度阈值且判断结果表征应用处理频繁的情况下,根据温度值,获得温度值所处的目标温度范围;其中,处理模块包括:字节码优化模块和调控模块,调控模块用于根据目标温度范围和判断结果,获得第一调整参数,第一调整参数中至少包含目标温度范围对应的目标编译模式的模式标识和目标运行核的核标识;至少根据第一调整参数,获得编译指令,编译指令用于指示字节码优化模块在目标运行核上按照目标编译模式执行dex文件编译。或者,处理模块包括:字节码优化模块、调控模块和应用安装模块,调控模块用于根据目标温度范围和判断结果,获得第一调整参数,第一调整参数中至少包含目标温度范围对应的目标编译模式的模式标识和目标运行核的核标识;应用安装模块,用于至少根据第一调整参数,获得编译指令,编译指令用于指示字节码优化模块在目标运行核上按照目标编译模式执行dex文件编译。可见,本技术中在应用处理频繁的情况下,除了调整电子设备执行dex文件编译所使用的运行核,还调整
执行dex文件编译所使用的编译模式,从而进一步将执行dex文件编译的性能与电子设备的温度值和应用处理是否频繁的状态更加精确的匹配,从而避免电子设备过热的情况。
23.在一种可能的实现方式中,监控模块还用于:在温度值大于温度阈值且判断结果表征应用处理不频繁的情况下,根据温度值,获得温度值所处的目标温度范围;其中,处理模块包括:字节码优化模块和调控模块;调控模块用于根据目标温度范围,获得第二调整参数,第二调整参数中至少包含目标温度范围对应的目标编译模式的模式标识;至少根据第二调整参数,获得编译指令,编译指令用于指示字节码优化模块按照目标编译模式执行dex文件编译;或者,处理模块包括:字节码优化模块、调控模块和应用安装模块;调控模块用于根据目标温度范围,获得第二调整参数,第二调整参数中至少包含目标温度范围对应的目标编译模式的模式标识;应用安装模块,用于至少根据第二调整参数,获得编译指令,编译指令用于指示字节码优化模块按照目标编译模式执行dex文件编译。可见,本技术中在应用处理不频繁的情况下,通过调整执行dex文件编译所使用的编译模式,从而将执行dex文件编译的性能与电子设备的温度值更加精确的匹配,从而避免电子设备过热的情况。
24.在一种可能的实现方式中,目标编译模式为第一种编译模式、第二种编译模式、第三种编译模式或不执行编译的模式,第一种编译模式的编译性能大于第一种编译模式的编译性能和第二种编译模式的编译性能,第二种编译模式的编译性能大于第三种编译模式的编译性能,第一种编译模式的编译时长大于第一种编译模式的编译时长和第二种编译模式的编译时长,第二种编译模式的编译时长大于第三种编译模式的编译时长;其中,第一编译模式对应于第一温度范围,第二编译模式对应于第二温度范围、第三编译模式对应于第三温度范围,不执行编译的模式对应于第四温度范围,第一温度范围的最大边界值小于第二温度范围的最小边界值,第二温度范围的最大边界值小于第三温度范围的最小边界值,第三温度范围的最大边界值小于第四温度范围的最小边界值。可见,本技术中配置多种编译性能和编译时长均不同的编译模式,并将不同的编译模式对应于不同的温度范围,从而基于电子设备的温度值调整执行dex文件编译的编译模式,以达到平衡电子设备的能耗和执行dex文件编译的编译性能的目的。
25.在一种可能的实现方式中,应用安装模块至少根据第一调整参数,获得编译指令时,具体用于:至少将第一调整参数中的模式标识和核标识添加到初始化的编译指令中;或者,将第一调整参数中的模式标识替换编译指令中所包含的模式标识,并将第一调整参数中的核标识添加到编译指令中。可见,本技术中在应用处理频繁的情况下,通过在编译指令中配置基于电子设备的温度值所得到的目标编译模式的模式标识以及基于应用处理是否频繁的状态所确定的目标运行核的核标识,使得电子设备在较低能耗的运行核上以相应的编译模式执行dex文件编译,从而使得执行dex文件编译的编译性能与电子设备的温度值和应用处理频繁的状态相匹配,进而避免能耗过高导致的电子设备过热的情况。
26.在一种可能的实现方式中,应用安装模块至少根据第二调整参数,获得编译指令时,具体用于:至少将第二调整参数中的模式标识添加到初始化的编译指令中;或者,将第二调整参数中的模式标识替换编译指令中所包含的模式标识。可见,本技术中在应用处理不频繁的情况下,通过在编译指令中配置基于电子设备的温度值所得到的目标编译模式的模式标识,使得电子设备以相应的编译模式执行dex文件编译,从而使得执行dex文件编译的编译性能与电子设备的温度值相匹配,进而避免能耗过高导致的电子设备过热的情况。
27.在一种可能的实现方式中,调控模块在根据目标温度范围和判断结果,获得第一调整参数时,具体用于:在温度范围与编译模式的对应关系表中,查找与目标温度范围相对应的目标编译模式,以得到至少包含目标编译模式的模式标识和目标运行核的核标识的第一调整参数;其中,温度范围与编译模式的对应关系表中包含多个候选温度范围,每个候选温度范围分别对应于一个候选编译模式,高的候选温度范围对应的候选编译模式的编译时长小于低的候选温度范围对应的候选编译模式的编译时长。可见,本技术中在应用处理频繁的情况下,如果电子设备处于较高的温度范围,那么除了为电子设备选择较低能耗的运行核,还为电子设备选择较低编译时长的编译模式,由此,通过减少执行dex文件编译所消耗的时长,来避免执行dex文件编译占用运行核时间过长而导致能耗过高的情况,从而缓解电子设备过热的情况。
28.在一种可能的实现方式中,调控模块在根据目标温度范围,获得第二调整参数时,具体用于:在温度范围与编译模式的对应关系表中,查找与目标温度范围相对应的目标编译模式,以得到至少包含目标编译模式的模式标识的第二调整参数;其中,温度范围与编译模式的对应关系表中包含多个候选温度范围,每个候选温度范围分别对应于一个候选编译模式,高的候选温度范围对应的候选编译模式的编译时长小于低的候选温度范围对应的候选编译模式的编译时长。可见,本技术中在应用处理不频繁的情况下,如果电子设备处于较高的温度范围,那么为电子设备选择较低编译时长的编译模式,由此,通过减少执行dex文件编译所消耗的时长,来避免执行dex文件编译占用运行核时间过长而导致能耗过高的情况,从而缓解电子设备过热的情况。
29.在一种可能的实现方式中,应用安装模块在至少根据第一调整参数,获得编译指令之前,还用于:判断第一调整参数中的模式标识是否对应于不触发编译的模式;如果第一调整参数中的模式标识对应于不触发编译的模式,结束当前流程;如果第一调整参数中的模式标识不对应于不触发编译的模式,至少根据第一调整参数,获得编译指令。可见,本技术中在应用处理频繁且温度值过高的情况下,可以通过不为电子设备生成触发执行dex文件编译的编译指令,从而不执行dex文件编译,进而避免执行dex文件编译导致电子设备过热严重的情况。
30.在一种可能的实现方式中,应用安装模块在至少根据第二调整参数,获得编译指令之前,还用于:判断第二调整参数中的模式标识是否对应于不触发编译的模式;如果第二调整参数中的模式标识对应于不触发编译的模式,结束当前流程;如果第二调整参数中的模式标识不对应于不触发编译的模式,至少根据第二调整参数,获得编译指令。可见,本技术中在应用处理不频繁但温度值过高的情况下,可以通过不为电子设备生成触发执行dex文件编译的编译指令,从而不执行dex文件编译,进而避免执行dex文件编译导致电子设备过热严重的情况。
31.在一种可能的实现方式中,监控模块获得表征应用处理是否频繁的判断结果时,具体用于:获得电子设备上安装应用程序的安装开始时刻;至少根据安装开始时刻,获得相邻两个应用程序被安装的安装时间间隔;如果连续n 1个应用程序被安装且相邻两个被安装的应用程序的安装时间间隔小于或等于安装间隔阈值,获得表征应用安装频繁的判断结果;n为大于获得等于1的正整数;如果没有n 1个应用程序被连续安装或者相邻两个被安装的应用程序的安装时间间隔大于安装间隔阈值,获得表征应用安装不频繁的判断结果。可
见,本技术中在电子设备上安装应用程序过程中,通过判断电子设备是否连续安装多个应用程序且安装时间间隔是否过小,来确定电子设备过热是否源自频繁的应用程序安装,从而通过控制执行dex文件编译在较低能耗的运行核进行,达到降低电子设备的能耗的目的,以避免电子设备过热的情况。
32.在一种可能的实现方式中,监控模块获得表征应用处理是否频繁的判断结果时,具体用于:获得应用程序dex文件被编译的编译开始时刻;至少根据编译开始时刻,获得电子设备相邻两次执行编译的编译时间间隔;如果电子设备连续m 1次执行编译处理且相邻两次执行编译的编译时间间隔小于或等于编译间隔阈值,获得表征应用编译频繁的判断结果;m为大于或等于1的正整数;如果电子设备没有连续m 1次执行编译处理或相邻两次执行编译的编译时间间隔大于编译间隔阈值,获得表征应用编译不频繁的判断结果。可见,本技术中对已经被安装完成的应用程序,通过判断电子设备是否连续多次执行dex文件编译且编译时间间隔是否过小,来确定电子设备过热是否源自频繁的dex文件编译,从而通过控制执行dex文件编译在较低能耗的运行核进行,达到降低电子设备的能耗的目的,以避免电子设备过热的情况。
33.在一种可能的实现方式中,电子设备对应用程序执行dex文件编译的过程,包括:电子设备中执行应用程序的安装包中的安装程序后,对应用程序执行dex文件编译的过程;或者,电子设备中拦截到对应于被安装完成的应用程序的编译指令,对应用程序执行dex文件编译的过程。可见,本技术适用于电子设备安装应用程序过程中对电子设备进行温度控制的场景,也适用于应用程序被安装完成后对应用程序执行dex文件编译时对电子设备进行温度控制的场景。
34.本技术的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,其上存储有计算机程序;当计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现第一方面的dex文件的编译控制方法,能够降低字节码优化模块的能耗,以缓解电子设备过热的情况。
35.本技术的第四方面提供了一种可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现第一方面的dex文件的编译控制方法,能够降低字节码优化模块的能耗,以缓解电子设备过热的情况。
36.应当理解的是,本技术中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
37.图1为本技术实施例提供的电子设备装载多个应用程序的主界面示例图;
38.图2为存在dex2oat被触发以执行dex文件编译的场景示例图;
39.图3为本技术实施例提供的一种电子设备的组成示例图;
40.图4为本技术实施例提供的一种电子设备的软件结构示例图;
41.图5为现有技术中应用程序安装过程中编译dex文件的软件结构示意图;
42.图6为现有技术中应用程序安装过程中编译dex文件的软件模块交互示意图;
43.图7为现有技术中通过应用商城安装应用程序的示例图;
44.图8为现有技术中电子设备上安装应用程序过程中对cpu资源的占用情况示意图;
45.图9为本技术实施例提供的dex文件的编译控制方法在安装应用程序时对应用程序的dex文件进行编译的模块交互示意图;
46.图10为本技术实施例提供的dex文件的编译控制方法在安装应用程序时对应用程序的dex文件进行编译的数据流向图;
47.图11为本技术实施例中获得安装时间间隔的示意图;
48.图12为本技术实施例中获得安装时间间隔的另一示意图;
49.图13为本技术实施例中提供的dex文件的编译控制方法在安装应用程序时调整字节码优化模块的编译模式的流程示意图;
50.图14为本技术实施例中提供的dex文件的编译控制方法在安装应用程序时调整字节码优化模块所使用内核的流程示意图;
51.图15为本技术实施例提供的dex文件的编译控制方法在安装应用程序时对应用程序的dex文件进行编译的另一模块交互示意图;
52.图16为本技术实施例提供的dex文件的编译控制方法在应用程序被安装后对应用程序的dex文件进行编译的模块交互示意图;
53.图17为本技术实施例提供的dex文件的编译控制方法在应用程序被安装后对应用程序的dex文件进行编译的数据流向图;
54.图18为本技术实施例中获得编译时间间隔的示意图;
55.图19为本技术实施例中获得编译时间间隔的另一示意图;
56.图20为本技术实施例提供的dex文件的编译控制方法在应用程序被安装后对应用程序的dex文件进行编译的另一模块交互示意图;
57.图21为本技术实施例提供的dex文件的编译控制方法在“运动健康”被安装时对dex文件执行编译的流程图;
58.图22为本技术实施例提供的dex文件的编译控制方法在“运动健康”被安装完成后对dex文件执行编译的流程图;
59.图23为本技术实施例提供的电子设备的结构示意图;
60.图24为本技术实施例提供的dex文件的编译控制装置的结构示意图。
具体实施方式
61.本技术说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
62.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没
有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
63.为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
64.电子设备中装载操作系统后,可以安装多个应用程序。图1所示为电子设备(手机)装载有多个应用程序的主界面示例图,用户可以通过点击应用程序的图标,启动应用程序。而为了使得这些应用程序在运行阶段更加流畅,可以在应用程序被安装过程或者启动之前使用字节码优化模块如dex2oat将应用程序的dex文件进行编译,编译成电子设备可以直接运行的机器码,由此电子设备可以在应用程序运行过程中直接加载这些机器码,使得应用程序运行更加流畅。
65.以下对存在字节码优化模块对dex文件进行编译的几种场景进行说明,如图2中所示:
66.在电子设备首次开机的场景中,电子设备中需要安装多个应用程序,此时,可以触发字节码优化模块在这些应用程序安装过程中对安装包中解压出的dex文件进行编译,以得到odex文件,基于此,在被安装完成的应用程序运行过程中,电子设备可以直接加载并执行odex文件,使得应用程序运行更流畅;
67.在电子设备进行ota升级(over-the-airtechnology)的场景中,电子设备在完成系统升级后第一次重启过程中,对电子设备中的各个应用程序的dex文件重新进行编译,以得到odex文件,基于此,在被重新编译的应用程序运行过程中,电子设备可以直接加载并执行重新编译的odex文件,使得应用程序运行更流畅;
68.在电子设备安装应用程序的场景中,电子设备中可以从应用商城下载需要安装的应用程序的安装包,在执行安装包进而安装应用程序的过程中,可以触发字节码优化模块对应用程序的安装包中解压出的dex文件进行编译,以得到odex文件,基于此,在被安装完成的应用程序运行过程中,电子设备可以直接加载并执行odex文件,使得应用程序运行更流畅;
69.在电子设备克隆其他设备中的应用程序的场景中,电子设备按照其他设备上所安装的应用程序在本地安装相应的应用程序,在电子设备安装这些应用程序的过程中,电子设备可以触发字节码优化模块对被克隆到电子设备本地的应用程序的dex文件进行编译,以得到odex文件,基于此,在被克隆完成的应用程序运行过程中,电子设备可以直接加载并执行odex文件,使得应用程序运行更流畅;
70.在电子设备空闲触发编译的场景中,如果电子设备处于运行的空闲状态下,例如手机充电电量到达95%的空闲状态,电子设备中可以触发字节码优化模块对已经安装但非运行状态的应用程序的dex文件进行编译,以得到odex文件,此时,应用程序未启动,基于此,在应用程序再次运行如应用程序冷启动时,电子设备在应用冷启动过程中可以直接加载并执行odex文件,使得应用程序的启动过程以及启动后运行过程更流畅;
71.在应用程序自身触发编译的场景中,应用程序在自身触发条件满足的情况下,通过指令触发字节码优化模块对应用程序的dex文件进行编译,以得到odex文件,基于此,在应用程序运行过程中,电子设备可以直接加载并执行odex文件,使得应用程序运行更流畅;
72.当然,还有其他场景中存在触发字节码优化模块对应用程序的dex文件进行编译的情况,如某些应用程序被应用提供商设置为在首次启动应用程序时触发字节码优化模块
对应用程序的dex文件进行编译的的场景,等等。
73.在以上各场景中,字节码优化模块对dex文件进行编译时,可以采用如表1中所示的多种编译模式中的一种:
74.表1编译模式
[0075][0076]
其中:
[0077]
第一种编译模式:speed-profile(have profile)的编译模式。其中的profile文件是指包含有指定函数的信息的文件。在该编译模式下,字节码优化模块除了对dex文件进行校验处理,得到相应的odex文件之外,还会按照profile文件中的指定函数的信息,对应用程序的dex文件中profile文件所指定的函数代码进行aot编译,得到相应的编译产物:art文件。该art文件中包含这些指定的函数代码的地址,方便对这些指定的函数进行寻址。而这些指定的函数代码为应用程序运行常用的函数的代码,由此,在应用程序运行过程中,电子设备在加载art文件到内存后,可以快速寻址并运行所寻到的代码,从而使得应用程序运行更流畅。
[0078]
需要说明的是,由于第一种编译模式中需要提供有profile文件,因此,在能够提供profile文件的场景中,字节码优化模块可以选择采用第一种编译模式对应用程序的dex文件进行编译处理,以最高的编译性能实现dex文件的编译,如电子设备通过应用商城安装应用程序的场景、电子设备空闲触发编译的场景、应用程序自身触发编译的场景,等等。如下:
[0079]
其中,在电子设备通过应用商城安装应用程序的场景中,在电子设备从应用商城下载应用程序的安装包时,应用商城可以将profile文件与应用程序的安装包一起发送给电子设备,由此,电子设备中可以触发字节码优化模块采用第一种编译模式对安装包中解压出的dex文件进行编译;
[0080]
而在电子设备空闲触发编译的场景和应用程序自身触发编译的场景中,应用程序可能在多次历史运行过程中收集到profile文件,由此,电子设备可以触发字节码优化模块采用第一种编译模式对应用程序的dex文件进行编译。
[0081]
第二种编译模式:speed-profile(no profile)的编译模式。在该编译模式下,字节码优化模块对dex文件进行校验,并对dex文件中的dex指令进行优化,由此得到相应的odex文件,而经过优化的dex指令具有更高的解释性能,能够被电子设备高效识别。
[0082]
其中,由于第二种编译模式中仅对dex文件进行校验和dex指令优化而不涉及aot编译,因此,第二种编译模式相对第一种编译模式具有较短的编译时长,但是,第二种编译模式在编译性能上相对于第一种编译模式较差。
[0083]
需要说明的是,由于第二种编译模式中不需要提供profile文件,因此,在不能提供profile文件的场景中,字节码优化模块可以选择采用第二种编译模式对应用程序的dex文件进行编译处理,以相对第一种编译模式较低的编译性能实现dex文件的编译,但相对于
第一种编译模式可以缩短编译时长,如电子设备首次开机的场景、电子设备克隆其他设备中的应用程序的场景、电子设备空闲触发编译的场景以及使用无法提供profile文件的场景,等等。如下:
[0084]
其中,在电子设备首次开机的场景中,电子设备中没有应用程序对应的profile文件,基于此,电子设备中可以触发字节码优化模块采用第二种编译模式对安装包中解压出的dex文件进行编译;
[0085]
在电子设备克隆其他设备中的应用程序的场景中,由于电子设备中没有应用程序的profile文件,因此,基于此,电子设备中可以触发字节码优化模块采用第二种编译模式对安装包中解压出的dex文件进行编译;
[0086]
在电子设备空闲触发编译的场景中,应用程序可能还未在历史运行过程中收集到相应的profile文件,由此,电子设备可以触发字节码优化模块采用第二种编译模式对应用程序的dex文件进行编译;
[0087]
在使用应用安装工具安装应用程序的场景中,应用安装工具无法提供应用程序的profile文件,由此,电子设备可以触发字节码优化模块采用第二种编译模式对应用程序的dex文件进行编译。
[0088]
第三种编译模式:verify的编译模式。在该编译模式下,字节码优化模块对dex文件进行校验,以得到相应的odex文件。
[0089]
其中,由于第三种编译模式中仅对dex文件进行校验但不涉及aot编译以及dex指令优化,因此,第三种编译模式相对第一种编译模式和第二种编译模式具有更短的编译时长,但是,第三种编译模式在编译性能上相对于第一种编译模式和第二种编译模式较差。
[0090]
当然,如果不触发字节码优化模块或者触发字节码优化模块不对dex文件进行编译处理,那么dex文件不会被进行任何处理,在应用程序被启动后,加载并解释运行应用程序的dex文件,在运行dex文件中的代码时,应用程序会对dex文件做校验处理,因此,如果不对dex文件执行以上任意一种编译模式的编译优化,那么相对于应用程序启动后直接加载odex文件无需校验dex文件的运行过程,应用程序会因为启动后再加载并校验dex文件使得运行较慢。
[0091]
在一些实施例中,电子设备可以是手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、手持计算机、上网本、个人数字助理(personal digital assistant,pda)、可穿戴电子设备和智能手表等设备。
[0092]
电子设备的示例性结构可以如图3所示。电子设备300可以包括处理器310,外部存储器接口320,内部存储器321,通用串行总线(universal serial bus,usb)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370a,受话器370b,麦克风370c,耳机接口370d,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identification module,sim)卡接口395等。传感器模块380可以包括压力传感器380a,陀螺仪传感器380b,气压传感器380c,磁传感器380d,加速度传感器380e,距离传感器380f,接近光传感器380g,指纹传感器380h,温度传感器380j,触摸传感器380k,环境光传感器380l和骨传导传感器480m等。
[0093]
可以理解的是,本技术实施例示意的结构并不构成对电子设备300的具体限定。在
本技术另一些实施例中,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0094]
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用程序处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备300的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0095]
处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。
[0096]
在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
[0097]
i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器310可以包含多组i2c总线。处理器310可以通过不同的i2c总线接口分别耦合触摸传感器380k,充电器,闪光灯,摄像头393等。例如:处理器310可以通过i2c接口耦合触摸传感器380k,使处理器310与触摸传感器380k通过i2c总线接口通信,实现电子设备300的触摸功能。
[0098]
i2s接口可以用于音频通信。在一些实施例中,处理器310可以包含多组i2s总线。处理器310可以通过i2s总线与音频模块370耦合,实现处理器340与音频模块370之间的通信。在一些实施例中,音频模块370可以通过i2s接口向无线通信模块360传递音频信号,实现通过蓝牙耳机接听电话的功能。
[0099]
pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块370与无线通信模块360可以通过pcm总线接口耦合。在一些实施例中,音频模块370也可以通过pcm接口向无线通信模块360传递音频信号,实现通过蓝牙耳机接听电话的功能。i2s接口和pcm接口都可以用于音频通信。
[0100]
uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器310与无线通信模块360。例如:处理器310通过uart接口与无线通信模块360中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块370可以通过uart接口向无
线通信模块360传递音频信号,实现通过蓝牙耳机播放音乐的功能。
[0101]
mipi接口可以被用于连接处理器310与显示屏394,摄像头393等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器310和摄像头493通过csi接口通信,实现电子设备300的拍摄功能。处理器310和显示屏394通过dsi接口通信,实现电子设备300的显示功能。
[0102]
gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器340与摄像头393,显示屏394,无线通信模块360,音频模块370,传感器模块380等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
[0103]
usb接口330是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口330可以用于连接充电器为电子设备300充电,也可以用于电子设备300与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
[0104]
可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备300的结构限定。在本技术另一些实施例中,电子设备300也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0105]
充电管理模块340用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块340可以通过usb接口330接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块340可以通过电子设备300的无线充电线圈接收无线充电输入。充电管理模块340为电池342充电的同时,还可以通过电源管理模块341为电子设备供电。
[0106]
电源管理模块341用于连接电池342,充电管理模块340与处理器310。电源管理模块341接收电池342和/或充电管理模块340的输入,为处理器310,内部存储器321,外部存储器,显示屏394,摄像头393,和无线通信模块360等供电。电源管理模块341还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块341也可以设置于处理器310中。在另一些实施例中,电源管理模块341和充电管理模块340也可以设置于同一个器件中。
[0107]
电子设备300的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
[0108]
天线1和天线2用于发射和接收电磁波信号。电子设备300中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0109]
移动通信模块350可以提供应用程序在电子设备300上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块350可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块350可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块350还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块350的至少部分功能模块可以被设置于处理器340中。在一些实施例中,移
动通信模块350的至少部分功能模块可以与处理器310的至少部分模块被设置在同一个器件中。
[0110]
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用程序处理器。应用程序处理器通过音频设备(不限于扬声器370a,受话器370b等)输出声音信号,或通过显示屏394显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器310,与移动通信模块350或其他功能模块设置在同一个器件中。
[0111]
无线通信模块360可以提供应用程序在电子设备300上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块360可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块360经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器310。无线通信模块360还可以从处理器310接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0112]
在一些实施例中,电子设备300的天线1和移动通信模块350耦合,天线2和无线通信模块360耦合,使得电子设备300可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
[0113]
电子设备300通过gpu,显示屏394,以及应用程序处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏394和应用程序处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器310可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。在本技术实施例中,显示屏394中可包括显示器和触控器件(touch panel,tp)。显示器用于向用户输出应用程序的图标,触控器件用于接收用户在显示屏394上输入的对图标的点击操作。
[0114]
电子设备300可以通过isp,摄像头393,视频编解码器,gpu,显示屏394以及应用程序处理器等实现拍摄功能。
[0115]
isp用于处理摄像头393反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头393中。
[0116]
摄像头393用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备300可以包括1个或n个摄像头393,n为大于1的正整数。
[0117]
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备300在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0118]
视频编解码器用于对数字视频压缩或解压缩。电子设备300可以支持一种或多种视频编解码器。这样,电子设备300可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
[0119]
npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备300的智能认知等应用程序,例如:图像识别,人脸识别,语音识别,文本理解等。
[0120]
外部存储器接口320可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备300的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
[0121]
内部存储器321可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器310通过运行存储在内部存储器321的指令,从而执行电子设备300的各种功能应用程序以及数据处理。内部存储器321可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备300使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器310通过运行存储在内部存储器321的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备300的各种功能应用以及数据处理。
[0122]
电子设备300可以通过音频模块370,扬声器370a,受话器370b,麦克风370c,耳机接口370d,以及应用程序处理器等实现音频功能。例如音乐播放,录音等。
[0123]
音频模块370用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块370还可以用于对音频信号编码和解码。在一些实施例中,音频模块370可以设置于处理器310中,或将音频模块370的部分功能模块设置于处理器310中。
[0124]
扬声器370a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备300可以通过扬声器370a收听音乐,或收听免提通话。并且,扬声器370a内含磁铁。
[0125]
受话器370b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备300接听电话或语音信息时,可以通过将受话器370b靠近人耳接听语音。
[0126]
麦克风370c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话
或发送语音信息时,用户可以通过人嘴靠近麦克风370c发声,将声音信号输入到麦克风370c。电子设备300可以设置至少一个麦克风370c。在另一些实施例中,电子设备300可以设置两个麦克风370c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备300还可以设置三个,四个或更多麦克风370c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
[0127]
耳机接口370d用于连接有线耳机。耳机接口370d可以是usb接口330,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
[0128]
压力传感器380a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器380a可以设置于显示屏394。压力传感器380a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器380a,电极之间的电容改变。电子设备300根据电容的变化确定压力的强度。当有触摸操作作用于显示屏394,电子设备300根据压力传感器380a检测触摸操作强度。电子设备300也可以根据压力传感器380a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用程序图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用程序图标时,执行新建短消息的指令。
[0129]
陀螺仪传感器380b可以用于确定电子设备300的运动姿态。在一些实施例中,可以通过陀螺仪传感器380b确定电子设备300围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器380b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器380b检测电子设备300抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备300的抖动,实现防抖。陀螺仪传感器380b还可以用于导航,体感游戏场景。
[0130]
气压传感器380c用于测量气压。在一些实施例中,电子设备300通过气压传感器380c测得的气压值计算海拔高度,辅助定位和导航。
[0131]
磁传感器380d包括霍尔传感器、磁力计等。霍尔传感器可以检测磁场方向;磁力计用于测量磁场的大小和方向。磁力计可以测量环境磁场强度,比如,可以利用磁力计测得磁场强度进而得到磁力计的载体的方位角信息。在一些实施例中,当电子设备300是翻盖机时,电子设备300可以根据磁传感器380d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
[0132]
加速度传感器380e可检测电子设备300在各个方向上(一般为三轴)加速度的大小。当电子设备300静止时可检测出重力的大小及方向。加速度传感器380e还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。在一些实施例中,电子设备300可以通过重力的大小及方向确定电子设备300的姿态(即倾斜角度)。比如,具有折叠屏的电子设备300沿着转轴折叠成一定角度后,电子设备300被分成两个部分。电子设备300的两个部分分别安装有加速度传感器380e。电子设备300分别根据两个部分的加速度传感器380e检测出的重力的大小及方向,确定两个部分的倾斜角度,从而确定电子设备300的折叠角度α。
[0133]
距离传感器380f,用于测量距离。电子设备300可以通过红外或激光测量距离。在
一些实施例中,拍摄场景,电子设备300可以利用距离传感器380f测距以实现快速对焦。
[0134]
接近光传感器380g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备300通过发光二极管向外发射红外光。电子设备300使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备300附近有物体。当检测到不充分的反射光时,电子设备300可以确定电子设备300附近没有物体。电子设备300可以利用接近光传感器380g检测用户手持电子设备300贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器380g也可用于皮套模式,口袋模式自动解锁与锁屏。
[0135]
环境光传感器380l用于感知环境光亮度。电子设备300可以根据感知的环境光亮度自适应调节显示屏394亮度。环境光传感器380l也可用于拍照时自动调节白平衡。环境光传感器380l还可以与接近光传感器380g配合,检测电子设备300是否在口袋里,以防误触。
[0136]
指纹传感器380h用于采集指纹。电子设备300可以利用采集的指纹特性实现指纹解锁,访问应用程序锁,指纹拍照,指纹接听来电等。
[0137]
温度传感器380j用于检测温度。在一些实施例中,电子设备300利用温度传感器380j检测的温度,执行温度处理策略。例如,当温度传感器380j上报的温度超过阈值,电子设备300执行降低位于温度传感器380j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备300对电池342加热,以避免低温导致电子设备300异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备300对电池342的输出电压执行升压,以避免低温导致的异常关机。
[0138]
触摸传感器380k,也称“触控面板”。触摸传感器380k可以设置于显示屏394,由触摸传感器380k与显示屏394组成触摸屏,也称“触控屏”。触摸传感器380k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用程序处理器,以确定触摸事件类型。可以通过显示屏394提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器380k也可以设置于电子设备300的表面,与显示屏394所处的位置不同。
[0139]
骨传导传感器380m可以获取振动信号。在一些实施例中,骨传导传感器380m可以获取人体声部振动骨块的振动信号。骨传导传感器380m也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器380m也可以设置于耳机中,结合成骨传导耳机。音频模块370可以基于骨传导传感器380m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用程序处理器可以基于骨传导传感器380m获取的血压跳动信号解析心率信息,实现心率检测功能。
[0140]
按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。电子设备300可以接收按键输入,产生与电子设备300的用户设置以及功能控制有关的键信号输入。
[0141]
马达391可以产生振动提示。马达391可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用程序(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏394不同区域的触摸操作,马达391也可对应不同的振动反馈效果。不同的应用程序场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
[0142]
指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消
息,未接来电,通知等。
[0143]
sim卡接口395用于连接sim卡。sim卡可以通过插入sim卡接口395,或从sim卡接口395拔出,实现和电子设备300的接触和分离。电子设备300可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口395可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口395可以同时插入多张卡。多张卡的类型可以相同,也可以不同。sim卡接口395也可以兼容不同类型的sim卡。sim卡接口395也可以兼容外部存储卡。电子设备300通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备300采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备300中,不能和电子设备300分离
[0144]
另外,在上述部件之上,运行有操作系统。例如苹果公司所开发的ios操作系统,谷歌公司所开发的android开源操作系统,微软公司所开发的windows操作系统,华为公司所开发的harmony操作系统等。在操作系统上可以安装运行应用程序。harmony操作系统也可以称为鸿蒙操作系统。
[0145]
电子设备300的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android操作系统为例,示例性说明电子设备300的软件结构。
[0146]
图4为图3中本技术实施例的电子设备的软件结构框图。电子设备在分层架构上将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android操作系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime,art)和系统库,以及内核层。
[0147]
应用程序层可以包括一系列应用程序包。如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。例如,在本技术实施例中,应用程序包还可以包括社交应用、浏览器应用、购物应用和支付应用等。
[0148]
应用程序框架层为应用程序层的应用程序提供应用程序编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。例如,在本技术实施例中,应用程序框架层可以提供包管理服务(package manager service,pms),在pms中至少包含:应用安装模块、监控模块和调控模块。应用安装模块能够将应用程序的安装包安装到电子设备的相应安装目录(即安装路径)中,并将应用程序的应用包名、安装目录、编译参数等编译所需要的信息发送给art中的字节码优化模块。
[0149]
在一些实施例中,监控模块能够记录应用安装模块所安装的应用程序的安装开始时刻。监控模块还能够记录应用安装模块在安装应用程序过程中电子设备的温度值等运行参数。基于此,监控模块可以将记录到的安装开始时刻和温度值发送给调控模块,由调控模块对安装开始时刻和温度值进行处理,以获得温度值所处的目标温度范围以及应用安装是否频繁的判断结果,再根据目标温度范围和判断结果获得调整参数,调整参数包含目标编译模式的模式标识和/或目标运行核的核标识,之后,再由调控模块将调整参数发送给应用安装模块,由应用安装模块根据调整参数生成编译指令后输出给art中的字节码优化模块。
[0150]
在一些实施例中,监控模块在记录到应用程序的安装开始时刻和电子设备的温度值等运行参数之后,监控模块首先确定温度值所处的目标温度范围以及应用安装是否频繁
的判断结果,再将目标温度范围以及应用安装是否频繁的判断结果发送给调控模块,由调控模块根据目标温度范围和判断结果获得调整参数,调整参数包含目标编译模式的模式标识和/或目标运行核的核标识,之后,再由调控模块将调整参数发送给应用安装模块,由应用安装模块根据调整参数生成编译指令后输出给art中的字节码优化模块。
[0151]
在一些实施例中,监控模块在拦截到对应于字节码优化模块的编译指令时,能够记录字节码优化模块被触发执行编译处理的编译开始时刻。监控模块还能够记录电子设备的温度值等运行参数。基于此,监控模块可以将记录到的编译开始时刻和温度值发送给调控模块,由调控模块对编译开始时刻、编译结束时刻和温度值进行处理,以获得温度值所处的目标温度范围以及应用编译是否频繁的判断结果,再根据目标温度范围和判断结果获得调整参数,调整参数包含目标编译模式的模式标识和/或目标运行核的核标识,之后,再由调控模块根据调整参数修改监控模块所拦截的编译指令并输出给art中的字节码优化模块。
[0152]
在一些实施例中,监控模块在记录到字节码优化模块的编译开始时刻和电子设备的温度值等运行参数之后,监控模块首先确定温度值所处的目标温度范围以及应用编译是否频繁的判断结果,再将目标温度范围以及应用编译是否频繁的判断结果发送给调控模块,由调控模块根据目标温度范围和判断结果获得调整参数,调整参数包含目标编译模式的模式标识和/或目标运行核的核标识,之后,再由调控模块根据调整参数修改监控模块所拦截的编译指令并输出给art中的字节码优化模块。
[0153]
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0154]
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0155]
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
[0156]
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
[0157]
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0158]
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
[0159]
安卓运行时(android runtime,art)包括核心库和虚拟机。art负责安卓系统的调度和管理。例如,在本技术实施例中,art为应用程序启动提供字节码优化模块(dex2oat)。字节码优化模块能够对应用程序的dex文件进行编译处理。在字节码优化模块接收到编译指令后,字节码优化模块可以按照编译指令的指示对dex文件进行编译处理,其中,编译指令中的目标编译模式的模式标识用以指示字节码优化模块以相应的编译模式对应用程序
的dex文件进行编译处理,而编译指令中的目标运行核的核标识用于指示字节码优化模块运行在相应的内核上进而对应用程序的dex文件进行编译处理。
[0160]
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
[0161]
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0162]
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
[0163]
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
[0164]
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
[0165]
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
[0166]
2d图形引擎是2d绘图的绘图引擎。
[0167]
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0168]
需要说明的是,本技术实施例中虽然以android操作系统为例进行说明,但是其基本原理同样适用于基于ios,windows或harmony等操作系统的电子设备。
[0169]
下面结合电子设备通过应用商城安装应用程序的场景,示例性说明电子设备300的软件工作流程:
[0170]
结合图5和图6中所示,用户在电子设备(手机)上所输出的应用商城的应用安装界面上点击应用程序的安装控件,如图7中所示,应用商城所在的应用服务器将应用程序的安装包发送给用户的电子设备,基于此,电子设备的pms中的应用安装模块在接收到应用服务器发送的安装包之后,执行安装包中的安装程序,由此将安装包安装到电子设备的安装目录中,如data/app目录中,在应用安装模块开始执行安装程序之后,应用安装模块还将应用程序的应用包名、安装目录、编译参数等编译所需要的信息以编译指令的方式发送给art的虚拟机中的字节码优化模块,基于此,字节码优化模块对安装目录中的dex文件进行编译处理,并在编译完成之后,向pms中的应用安装模块返回编译完成的消息,直到应用安装模块完成对应用程序的安装,向应用商城所在的应用服务器返回应用安装成功的消息,在电子设备所输出的应用商城的应用安装界面上显示应用安装成功的消息。
[0171]
其中,电子设备中更新或升级应用程序的场景、电子设备上克隆其他设备的应用程序的场景和电子设备首次开机安装应用程序的场景中,电子设备的软件工作流程可以参考前文中电子设备通过应用商城安装应用程序的场景的软件工作流程,此处不再详述。需要说明的是,电子设备上克隆其他设备的应用程序的场景,应用程序的安装包从被克隆的设备中获得。
[0172]
而在电子设备进行ota升级的场景、电子设备空闲触发编译的场景以及应用程序自身触发编译的场景中,电子设备的软件工作流程如下:
[0173]
在电子设备完成升级后的第一次重启过程中、电子设备的空闲触发条件被满足或
应用自身触发条件被满足时,电子设备向art的虚拟机中的字节码优化模块发送待处理的应用程序的应用包名、安装目录、编译参数等编译所需要的信息,由此,字节码优化模块对电子设备中相应的应用程序在相应安装目录中的dex文件进行编译处理。
[0174]
在电子设备应用于以上各类场景时,本技术的发明人发现存在电子设备过热的情况,而且,电子设备过热多发生在电子设备上安装多个应用程序或克隆其他设备的应用程序的场景中。为此,本技术的发明人对这一情况进行深度研究,对电子设备上安装多个应用程序以及克隆其他设备的应用程序的过程中cpu资源被占用的情况进行追踪测试,得到如图8中所示的测试结果。
[0175]
基于测试结果可以确定:电子设备中触发字节码优化模块对dex文件进行编译会占用大量的cpu资源,导致电子设备发热。具体的:节码码优化模块在执行对dex文件的编译时,会优先选择编译性能较高的编译模式且选择运行在电子设备的cpu中的超大核上,由此,因为节码码优化模块的编译性能较高导致编译时长较长,而且,节码码优化模块优先抢占cpu超大核的处理资源,导致电子设备中节码优化模块占用cpu超大核的时长较长,从而使得电子设备的功耗增加,造成电子设备发热的现象。而对于频繁触发节码码优化模块编译dex文件的场景,如电子设备中连续安装多个应用程序、电子设备上克隆其他设备的多个应用程序等场景,会使得电子设备的发热现象更加严重,导致电子设备过热。
[0176]
为此,本技术的发明人为解决以上缺陷,针对触发字节码优化模块对应用程序的dex文件进行编译的场景,提出以下几种实现方案:
[0177]
图9所示为图4中所示的模块在电子设备上安装应用程序的场景中实现dex文件编译控制的交互示意图,结合图10中所示内容,图9中可以包含以下步骤:
[0178]
s901、应用商城所在的应用服务器接收用户对安装控件的点击操作。
[0179]
例如,如图7中所示,用户在手机上所输出的应用商城的应用安装界面上点击需要被安装的应用程序“运动健康”的安装控件。
[0180]
s902、应用商城所在的应用服务器将应用程序的安装包发送给电子设备。
[0181]
例如,应用商城所在的应用服务器将应用程序“运动健康”的安装包发送给用户的手机。
[0182]
s903、电子设备的pms中的应用安装模块在接收到应用服务器发送的安装包之后,执行安装包中的安装程序。
[0183]
具体的,应用安装模块执行安装包的安装程序包含:在电子设备中创建应用程序的安装目录,并将安装包中的安装文件写入到电子设备的安装目录中。
[0184]
例如,应用安装模块在手机中创建“运动健康”的安装目录,如data/app/***/sporthealthy的目录,并将“运动健康”的安装包中的安装文件如dex文件等写入到安装目录中。
[0185]
s904、在应用安装模块开始执行安装程序之后,应用安装模块至少将应用程序的应用包名发送给pms中的监控模块。
[0186]
例如,应用安装模块在手机中创建“运动健康”的安装目录之后,就将应用程序“运动健康”的应用名称“运动健康”发送给监控模块。
[0187]
s905、监控模块在接收到应用包名之后,获得应用程序的安装开始时刻并根据安装开始时刻获得应用安装是否频繁的判断结果。
[0188]
其中,安装开始时刻为应用程序开始被安装的时刻,具体可以为:应用程序的安装包开始被执行的时刻、电子设备接收到应用程序的安装包的时刻和监控模块接收到被安装的应用程序的应用包名的时刻等等的任意一种。
[0189]
在一种实现方式中,应用安装模块在开始执行应用程序的安装包时,记录当前时刻为该应用程序的安装开始时刻,应用安装模块在向监控模块发送应用程序的应用包名时,将记录的该应用程序的安装开始时刻随着应用包名一起发送给监控模块,由此,监控模块可以将接收到的安装开始时刻进行记录;
[0190]
在另一种实现方式中,应用安装模块在接收到应用服务器发送的应用程序的安装包时,记录当前时刻为该应用程序的安装开始时刻,应用安装模块在向监控模块发送应用程序的应用包名时,将记录的该应用程序的安装开始时刻随着应用包名一起发送给监控模块,由此,监控模块可以将接收到的安装开始时刻进行记录;
[0191]
在另一种实现方式中,监控模块在接收到应用安装模块发送的应用程序的应用包名时,记录当前时刻为该应用程序的安装开始时刻。
[0192]
基于以上实现,监控模块可以有以下几种方式获得应用安装是否频繁的判断结果:
[0193]
在一种实现方式中,监控模块在根据安装开始时刻获得应用安装是否频繁的判断结果时,具体可以结合电子设备前一次以及前多次安装其他应用程序时监控模块所记录的安装开始时刻和安装结束时刻来实现。
[0194]
也就是说,监控模块除了记录每个被安装的应用程序的安装开始时刻,还记录应用程序的安装结束时刻,该安装结束时刻为应用程序被应用安装模块安装完成的时刻。具体的,该安装结束时刻可以由应用安装模块完成对应用程序的安装后记录当前时刻为安装结束时刻再发送给监控模块。
[0195]
基于此,监控模块上记录有应用安装模块所安装的每个应用程序的安装开始时刻和安装结束时刻。由此,监控模块针对当前被安装的应用程序,可以根据前多个被安装的应用程序的安装开始时刻和安装结束时刻以及当前被安装的应用程序的安装开始时刻来判断应用安装是否频繁,由此,得到判断结果。
[0196]
例如,监控模块计算相邻两个被安装的应用程序中前一个被安装的应用程序的安装结束时刻和后一个被安装的应用程序的安装开始时刻的时刻差,如图11中所示,该时刻差作为相邻两个被安装的应用程序的安装时间间隔,基于此,监控模块判断该安装时间间隔是否小于或等于相应的安装间隔阈值如第一间隔阈值,由此,如果连续n个安装时间间隔均小于或等于第一间隔阈值,即应用安装模块连续安装n 1个应用程序且相邻两个被安装的应用程序的安装时间间隔均小于或等于第一间隔阈值,那么监控模块获得到应用安装频繁的判断结果;如果应用安装模块没有连续安装n 1个应用程序或者应用安装模块即使连续安装n 1个应用程序但相邻两个被安装的应用程序的安装时间间隔没有都小于或等于第一间隔阈值,那么监控模块获得到应用安装不频繁的判断结果。
[0197]
其中的n为大于或等于1的正整数,如5。而第一间隔阈值可以根据需求来设置。例如,如果设置较低的第一间隔阈值,那么可以较快的降低电子设备温度,以达到较高的控制灵敏度;如果设置较高的第一间隔阈值,那么虽然降低电子设备温度的速率可能较慢,但可以保证较高的编译性能。
[0198]
在另一种实现方式中,监控模块可以只记录每个被安装的应用程序的安装开始时刻,基于此,监控模块计算相邻两个被安装的应用程序中前一个被安装的应用程序的安装开始时刻和后一个被安装的应用程序的安装开始时刻的时刻差,如图12中所示,该时刻差作为相邻两个被安装的应用程序的安装时间间隔,基于此,监控模块判断该安装时间间隔是否小于或等于相应的安装间隔阈值如第二间隔阈值,由此,如果连续n个安装时间间隔均小于或等于第二间隔阈值,即应用安装模块连续安装n 1个应用程序且相邻两个被安装的应用程序的安装时间间隔均小于或等于第二间隔阈值,那么监控模块获得到应用安装频繁的判断结果,如果应用安装模块没有连续安装n 1个应用程序或者应用安装模块即使连续安装n 1个应用程序但相邻两个被安装的应用程序的安装时间间隔没有都小于或等于第二间隔阈值,那么监控模块获得到应用安装不频繁的判断结果。
[0199]
其中的n为大于或等于1的正整数,如5。第二间隔阈值的大小可以基于第一间隔阈值和应用安装时长来确定,这里的应用安装时长可以基于统计数据来获得。例如,以多个应用程序被安装的平均时长来作为应用安装时长。
[0200]
s906、监控模块在接收到应用包名之后,获得电子设备当前的温度值并根据温度值获得温度值所处的目标温度范围。
[0201]
其中,电子设备当前的温度值可以以电子设备中特定的硬件部件的温度值来表示。例如,可以用cpu当前的温度值作为电子设备的温度值,或者,可以用电池当前的温度值作为电子设备的温度值,等等。
[0202]
具体实现中,电子设备中可以为特定的硬件部件设置有指定的温度传感器,而温度传感器所采集到的温度值可以记录在电子设备中指定的存储区域中。由此,监控模块可以通过调用应用程序框架层中的硬件属性管理器hpm(hardwarepropertiesmanager)里的getdevicetemperatures函数来可以获得各类型的硬件部件的温度值,如cpu、gpu、电池等的温度值。例如,监控模块可以调用hpm中的getdevicetemperatures,并传入device_temperature_batter和temperature_current,由此通过getdevicetemperatures函数对存储区域中相应电池的温度值进行读取,以读取到的温度值表示获取电子设备当前的温度值。
[0203]
基于以上实现,监控模块可以将温度值与各个设定的温度范围的区间值进行比较,从而确定温度值所处的目标温度范围。目标温度范围表征电子设备过热的程度或等级。
[0204]
例如,温度范围可以有多个;小于或等于30度的范围、大于30度且小于或等于40的范围、大于40度且小于或等于50度的范围以及大于50度的范围,等等。监控模块将记录到的电子设备的温度值与这些温度范围的区间值如30、40和50等进行大小比较,从而确定温度值所处的目标温度范围。
[0205]
需要说明的是,设定的温度范围可以存储在监控模块对应的存储区域中,以便于监控模块确定温度值所处的目标温度范围。
[0206]
其中,s905可以在s906之前执行,或者,s905可以在s906之后执行,或者,s905和s906可以同时执行,所形成的不同的技术方案属于同一发明构思,均在本技术的保护范围内。
[0207]
s907、监控模块将判断结果和目标温度范围发送给调控模块。
[0208]
其中,监控模块可以通过与调控模块之间的数据连接接口或函数将判断结果和目
标温度范围发送给调控模块。
[0209]
s908、调控模块至少根据判断结果和目标温度范围获得调整参数。
[0210]
在第一种实现方式中,调控模块结合判断结果和目标温度范围获得调整参数时,其中一些实施例如下:
[0211]
如果温度值小于或等于温度阈值即目标温度范围为第一温度范围,那么调控模块无需考虑判断结果,而是根据当前应用安装场景下默认的编译模式生成调整参数,此时,调整参数中至少包含默认的编译模式的模式标识;
[0212]
如果温度值大于温度阈值即目标温度范围为除第一温度范围之外的任一范围且判断结果表明应用安装频繁,那么调控模块根据目标温度范围生成调整参数,记为第一调整参数,此时的调整参数中包含有目标温度范围对应的目标编译模式的模式标识和目标运行核的核标识。这里的第一温度范围为表征电子设备不需要进行控制的温度范围,如小于或等于30度的范围。
[0213]
例如,调控模块在确定目标温度范围为除第一温度范围之外的任一范围且应用安装频繁的情况下,确定字节码优化模块所需要使用的目标运行核的核标识,并且,在温度范围与编译模式的对应关系表中查找与目标温度范围对应的目标编译模式,由此根据目标运行核的核标识和目标编译模式的模式标识生成调整参数。
[0214]
这里的目标运行核可以为处理性能和能耗均较低的内核。例如,目标运行核为相对于超大核处理性能和能耗均较低的小核,如图8中所示的cpu0,以小核运行字节码优化模块的方式,避免因为应用安装频繁使得过度占用超大核所导致的能耗较高的情况,由此降低cpu能耗。
[0215]
而温度范围与编译模式的对应关系表中包含多个候选温度范围,如第一温度范围、第二温度范围、第三温度范围和第四温度范围,每个候选温度范围对应于一个候选模式标识,每个候选模式标识对应于一个候选编译模式,这里的候选编译模式可以包含如表1中所示的编译模式和不触发编译的模式,例如,表1中所示的编译模式和不触发编译的模式分别对应于对应关系表中包含的小于或等于30度的范围、大于30度且小于或等于40的范围、大于40度且小于或等于50度的范围以及大于50度的范围。
[0216]
其中,小于或等于30度的第一温度范围对应于默认编译模式,如第一种编译模式或第二种编译模式。例如,电子设备通过应用商城安装应用程序时默认编译模式为第一种编译模式,再如,电子设备克隆其他设备的应用程序时默认编译模式为第二种编译模式;
[0217]
大于30度且小于或等于40的第二温度范围对应于第二种编译模式,即编译性能较低但能耗也较低的编译模式;
[0218]
大于40度且小于或等于50度的第三温度范围对应于第三种编译模式,及编译性能最低但能耗也最低的编译模式;
[0219]
而大于50度的第四温度范围不再对应于表1中的任一模式,而是对应于不触发字节码优化模块的模式,也就是说,如果电子设备的温度值超过50度,那么表明电子设备温度过高,不适宜再运行字节码优化模块,以免温度过高使得电子设备损坏,此时调整参数中的模式标识为不触发字节码优化模块的模式的标识,具体可以用特定的字符或标号标识,如0等。
[0220]
另外,如果目标温度范围为除第一温度范围之外的任一范围且判断结果表明应用
安装不频繁,那么调控模块至少根据目标温度范围生成调整参数,记为第二调整参数,此时的调整参数中仅包含有目标温度范围对应的目标编译模式的模式标识。其中,调控模块可以在温度范围与编译模式的对应关系表中查找与目标温度范围对应的目标编译模式。这里的调整参数中的目标编译模式的模式标识的获取方式可以参考前文中的实现方式。
[0221]
可见,以上实现方式中,调控模块结合目标温度范围以及应用安装是否频繁的判断结果对字节码优化模块所使用的编译模式以及所使用的运行核均进行调整。
[0222]
需要说明的是,温度范围与编译模式的对应关系表可以存储在调控模块对应的存储区域中,以便于调控模块可以在对应关系表中查找与目标温度范围对应的目标编译模式。
[0223]
在第二种实现方式中,调控模块结合判断结果和目标温度范围获得调整参数时,另一些实施例如下:
[0224]
如果目标温度范围为除第一温度范围之外的任一范围且判断结果表明应用安装频繁,那么调控模块生成调整参数,此时的调整参数中可以仅包含有目标运行核的核标识,如果目标温度范围是第一温度范围,如小于或等于30度的范围,此时,调控模块生成的调整参数中可以为空。
[0225]
可见,以上实现方式中,调控模块结合目标温度范围以及应用安装是否频繁的判断结果仅对字节码优化模块所使用的运行核进行调整。
[0226]
在第三种实现方式中,调控模块仅使用目标温度范围获得调整参数。例如,调控模块可以在温度范围与编译模式的对应关系表中查找与目标温度范围对应的目标编译模式。这里的调整参数中的目标编译模式的模式标识的获取方式可以参考前文中的实现方式。
[0227]
可见,以上实现方式中,调控模块使用目标温度范围仅对字节码优化模块所使用的编译模式进行调整。
[0228]
s909、调控模块将调整参数发送给应用安装模块。
[0229]
s910、应用安装模块判断调整参数中的模式标识是否表征触发字节码优化模块执行dex文件编译,如果是,执行s911,否则,等待安装程序被执行完成。
[0230]
例如,应用安装模块可以判断调整参数中的模式标识是否对应于表1中的任意一种编译模式,如果是,那么应用安装模块可以执行s911,否则,等待安装程序被执行完成。
[0231]
再如,应用安装模块可以判断调整参数中的模式标识是否对应于不触发字节码优化模块的模式,如果是,那么应用安装模块等待安装程序被执行完成,否则,应用安装模块执行s911。
[0232]
s911、应用安装模块至少根据调整参数生成编译指令。
[0233]
在一种实现方式中,应用安装模块将应用程序的应用包名、安装目录、目标运行核的核标识、调整参数、编译原因等编译所需要的信息,添加到初始化的编译指令中,以使得编译指令中至少包含第二调整参数中的目标编译模式的模式标识,或者编译指令中至少包含第一调整参数中的目标编译模式的模式标识和目标运行核的核标识,或者编译指令中仅包含第三调整参数中的目标运行核的核标识。
[0234]
在另一种实现方式中,应用安装模块可以先将应用程序的应用包名、安装目录、默认编译模式的模式标识、编译原因等等编译所需要的信息,添加到初始化的编译指令中,以使得编译指令中至少包含默认编译模式的模式标识,之后,应用安装模块根据调整参数对
编译指令中的内容进行修改。例如,应用安装模块将第一调整参数中的目标编译模式的模式标识替换编译指令中的模式标识,并将第一调整参数中的目标运行核的核标识添加到编译指令中;或者,应用安装模块将第二调整参数中的目标编译模式的模式标识替换编译指令中的模式标识。
[0235]
需要说明的是,如果调整参数中所包含的目标编译模式的模式标识与编译指令中的默认编译模式的模式标识相一致,那么应用安装模块则可以不对模式标识进行替换处理。如果调整参数中为空,那么应用安装模块可以不对编译指令进行修改处理。
[0236]
也就是说,应用安装模块在判断出不触发字节码优化模块时,不会为字节码优化模块生成编译指令,也就不会触发字节码优化模块执行dex文件的编译处理,而是继续运行,以等待安装程序被执行完成。
[0237]
时,应用程序向应用商城所在的应用服务器返回应用安装成功的消息。
[0238]
s912、应用安装模块发送编译指令给art的虚拟机中的字节码优化模块。
[0239]
例如,应用安装模块在在手机中创建“运动健康”的安装目录之后,就根据调控模块所返回的调整参数、应用程序“运动健康”的应用名称“运动健康”、安装目录“data/app/***/sporthealthy”以及其他编译参数等内容生成编译指令并发送给字节码优化模块(dex2oat)。
[0240]
s913、字节码优化模块按照编译指令对安装目录中的dex文件进行编译处理。
[0241]
其中,如果编译指令中包含有第一调整参数中的目标编译模式的模式标识和目标运行核的核标识,那么字节码优化模块按照编译指令在目标运行核上按照目标编译模式执行对安装目录中的dex文件的编译处理;如果编译指令中包含有第二调整参数中的目标编译模式的模式标识,那么字节码优化模块在按照默认的资源抢占规则所占用的运行核上按照目标编译模式执行对安装目录中的dex文件的编译处理,以使得字节码优化模块在合适的运行核上以适配于电子设备的温度值的编译模式执行对dex文件的编译处理,由此在保障对dex文件的编译性能的前提下,避免电子设备过热。这里的资源抢占规则可以为:在所有处于空闲状态的运行核中,优先抢占最高性能的运行核。
[0242]
例如,如图13和图14中所示,在电子设备的温度值小于或等于30度时,即电子设备没有发热时,无需切换字节码优化模块的编译模式和运行核,此时,应用安装模块将至少包含默认编译模式的模式标识的编译指令给字节码优化模块,以使得字节码优化模块以原生的编译模式和原生的运行核对dex文件进行编译处理,即第一运行模式。例如,在电子设备上通过应用商城安装应用程序的场景中,如果电子设备的温度值小于或等于30,那么字节码优化模块可以在优先抢占的超大核中运行并以表1中的第一种编译模式对dex文件进行编译处理;再如,在电子设备克隆其他设备的应用程序的场景中,如果电子设备的温度值小于或等于30,那么字节码优化模块可以在优先抢占的超大核中运行并以表1中的第二种编译模式对dex文件进行编译处理;
[0243]
在电子设备的温度值大于30度且小于或等于40度时,即电子设备轻度发热,对应于第二种编译模式,也就是说需要字节码优化模块以耗时较短的编译模式执行dex文件的编译,同时,如果判断结果表征应用安装频繁,那么还需要字节码优化模块运行在能耗较小的运行核上,如cpu0-cpu6中的任意一个或任意几个小核,由此,应用安装模块将至少包含第二种编译模式的模式标识和小核的核标识的编译指令发送给字节码优化模块,以使得字
节码优化模块占用小核运行并按照表1中的第二种编译模式执行对dex文件的编译处理,即第二运行模式,由此,字节码优化模块以较低性能较短时间的编译模式在能耗较低的小核上执行dex文件的编译,从而通过减少对cpu资源的占用以及降低编译性能,来降低电子设备的能耗,从而缓解电子设备发热的情况,达到降低电子设备的温度值的目的;
[0244]
在电子设备的温度值大于30度且小于或等于40度时,即电子设备轻度发热,对应于第二种编译模式,也就是说需要字节码优化模块以耗时较短的编译模式执行dex文件的编译,同时,如果判断结果表征应用安装不频繁,那么可以不限制字节码优化模块对运行核的占用,此时,应用安装模块将至少包含第二种编译模式的模式标识的编译指令发送给字节码优化模块,以使得字节码优化模块可以在占用的超大核或小核上运行并按照表1中的第二种编译模式执行对dex文件的编译处理,即第三运行模式,由此,以较低性能较短时间的编译模式执行dex文件的编译,从而通过降低编译性能来降低电子设备的能耗,从而缓解电子设备发热的情况,达到降低电子设备的温度值的目的;
[0245]
在电子设备的温度值大于40度且小于或等于50度时,即电子设备中度发热,对应于第三种编译模式,也就是说需要字节码优化模块以耗时最低的编译模式执行dex文件的编译,同时,如果判断结果表征应用安装频繁,那么还需要字节码优化模块运行在能耗较小的运行核上,如cpu0-cpu6中的任意一个或任意几个小核,由此,应用安装模块将至少包含第三种编译模式的模式标识和小核的核标识的编译指令发送给字节码优化模块,以使得字节码优化模块占用小核运行并按照表1中的第三种编译模式执行对dex文件的编译处理,即第二运行模式,由此,以最低性能最短时间的编译模式在能耗较低的小核上执行dex文件的编译,从而通过减少对cpu资源的占用以及降低编译性能,来降低电子设备的能耗,从而缓解电子设备发热的情况,达到降低电子设备的温度值的目的;
[0246]
在电子设备的温度值大于40度且小于或等于50度时,即电子设备中度发热,对应于第三种编译模式,也就是说需要字节码优化模块以耗时最短的编译模式执行dex文件的编译,同时,如果判断结果表征应用安装不频繁,那么可以不限制字节码优化模块对运行核的占用,此时,应用安装模块将至少包含第三种编译模式的模式标识的编译指令发送给字节码优化模块,以使得字节码优化模块可以在占用的超大核或小核上运行并按照表1中的第三种编译模式执行对dex文件的编译处理,即第三运行模式,由此,以最低性能最短时间的编译模式执行dex文件的编译,从而通过降低编译性能来降低电子设备的能耗,从而缓解电子设备发热的情况,达到降低电子设备的温度值的目的;
[0247]
调控模块在电子设备的温度值大于50度时,即电子设备重度发热,对应于不触发字节码的模式,也就是说,不能触发字节码优化模块对dex文件进行校验、指令优化、aot编译等处理,否则可能会因为加重过热现象导致电子设备的器件损害,此时,应用安装模块不会生成编译指令,而是在将应用程序安装完成时,向应用商城所在的应用服务器返回应用安装成功的消息。
[0248]
在另一种实现方式中,监控模块在获得到的温度值和安装开始时刻发送给调控模块,当然也发送安装结束时刻,由调控模块根据温度值获得温度值所处的目标温度范围并根据安装开始时刻获得判断结果,如图15中所示。而调控模块根据温度值获得温度值所处的目标温度范围的方式可以参考前文中监控模块获得目标温度范围的方式,且,调控模块根据安装开始时刻获得判断结果的方式可以参考前文中监控模块获得判断结果的方式。之
后,调控模块根据目标温度范围和判断结果获得调整参数的方式与前文中一致。另外,设定的温度范围可以存储在调控模块对应的存储区域中,以便于调控模块确定温度值所处的目标温度范围。
[0249]
s914、字节码优化模块在编译完成之后向pms中的应用安装模块返回编译完成的消息。
[0250]
其中,编译完成的消息中可以包含有应用程序的应用包名,以表征该应用程序的dex文件被编译完成。
[0251]
s915、应用安装模块在应用程序被安装完成时,向应用商城所在的应用服务器返回应用安装成功的消息。
[0252]
s916、应用安装模块在应用程序被安装完成时,记录应用程序的安装结束时刻。
[0253]
其中,应用安装模块可以将所记录的安装结束时刻可以直接发送给监控模块,以使得监控模块能够获得到该应用程序的安装结束时刻;或者,应用安装模块可以将所记录的安装结束时刻保存在电子设备中指定的存储位置,以使得监控模块可以在相应的存储位置中读取应用程序的安装结束时刻,以便于计算安装时间间隔。
[0254]
其中,s915可以在s916之前执行,或者,s915可以在s916之后执行,或者,s915和s916可以同时执行,所形成的不同的技术方案属于同一发明构思,均在本技术的保护范围内。
[0255]
s917、电子设备所输出的应用商城的应用安装界面上显示应用安装成功的消息。
[0256]
基于此,在下一次用户在应用商城的应用安装界面上选择安装某个应用程序时,仍然按照图9或图15中所示的流程,实现对字节码优化模块进行dex文件编译的控制,从而减轻电子设备在安装应用程序过程中的发热的情况。
[0257]
需要说明的是,在电子设备上克隆其他设备上的应用程序的场景中实现dex文件编译控制的方案中,电子设备从其他设备上下载应用程序的安装包之后,所执行的技术方案可以参考图9中s903-s915中的实现方式,而在应用安装模块在应用程序被安装完成时,向电子设备返回应用安装成功的消息,另外,应用安装模块在应用程序被安装完成时,记录应用程序的安装结束时刻,以便于电子设备上克隆其他应用程序时获得调整参数,以达到减轻电子设备过热的现象的目的。
[0258]
图16所示为图4中所示的模块在电子设备空闲触发编译或应用程序自身触发编译的场景中实现dex文件编译控制的交互示意图,结合图17中所示内容,图16中可以包含以下步骤:
[0259]
s1601、监控模块在监测到对应于字节码优化模块的编译指令的情况下,拦截编译指令。
[0260]
s1602、监控模块获得应用程序的编译开始时刻并根据编译开始时刻获得应用编译是否频繁的判断结果。
[0261]
其中,编译指令中包含有应用程序的应用包名、安装目录、编译模式、编译原因等编译所需要的信息。编译指令由电子设备在空闲触发条件被满足时生成并向字节码优化模块发送,或者,编译指令由应用程序的自身触发条件被满足时生成并向字节码优化模块发送。监控模块对字节码优化模块的编译指令进行监测,在监测到编译指令时,拦截该编译指令,被连接的编译指令不会被传输到字节码优化模块,而是先执行s1602和s1603。
[0262]
另外,监控模块拦截到编译指令时,也可以获得到编译指令中的应用包名、安装目录、编译模式和编译原因等信息。这里的空闲触发条件和自身触发条件基于需求预先设置。例如,空闲触发条件可以为:电子设备处于充电状态且电量到达95%,或者,电子设备中所运行的应用程序的数量小于数量阈值,等等。自身触发条件可以为:应用程序运行卡顿次数达到次数阈值,等等。
[0263]
编译开始时刻为字节码优化模块开始对dex文件进行编译处理的时刻,具体可以为:监控模块监测到字节码优化模块接收到触发指令的时刻。
[0264]
基于以上实现,监控模块可以有以下几种方式获得应用编译是否频繁的判断结果:
[0265]
在一种实现方式中,监控模块在根据编译开始时刻获得应用编译是否频繁的判断结果时,具体可以结合字节码优化模块前一次或前几次执行编译处理的编译开始时刻和编译结束时刻来实现。
[0266]
也就是说,监控模块除了记录字节码优化模块每次执行编译处理的编译开始时刻,还记录字节码优化模块每次执行编译处理的编译结束时刻,该编译结束时刻为字节码优化模块执行完编译处理的时刻。基于此,监控模块上记录字节码优化模块每次执行编译处理的编译开始时刻和编译结束时刻,由此,监控模块可以根据字节码优化模块每次执行编译处理的编译结束时刻来判断应用编译是否频繁,由此得到判断结果。
[0267]
例如,监控模块计算字节码优化模块相邻两次执行编译处理中前一次执行编译的编译结束时刻和后一次执行编译的编译开始时刻的时刻差,如图18中所示,该时刻差作为字节码优化模块相邻两次执行编译处理的编译时间间隔,基于此,监控模块判断该编译时间间隔是否小于或等于相应的编译间隔阈值如第三间隔阈值,由此,如果连续m个编译时间间隔均小于或等于第三间隔阈值,即字节码优化模块连续m 1次执行编译处理且相邻两次执行编译的编译时间间隔均小于或等于第三间隔阈值,那么监控模块获得到应用编译频繁的判断结果;如果字节码优化模块没有连续m 1次执行编译处理或者字节码优化模块即使连续m 1次执行编译处理但相邻两次执行编译的编译时间间隔没有均小于或等于第三间隔阈值,那么监控模块获得到应用编译不频繁的判断结果。
[0268]
其中的m为大于或等于1的正整数,如5。而第三间隔阈值可以根据需求来设置。例如,如果设置较低的第三间隔阈值,那么可以较快的降低电子设备温度,以达到较高的控制灵敏度;如果设置较高的第三间隔阈值,那么虽然降低电子设备温度的速率可能较慢,但可以保证较高的编译性能。
[0269]
在另一种实现方式中,监控模块可以只记录字节码优化模块每次执行编译处理的编译开始时刻,基于此,监控模块计算字节码优化模块相邻两次执行编译处理中前一次执行编译的编译开始时刻和后一次执行编译的编译开始时刻的时刻差,如图19中所示,该时刻差作为字节码优化模块相邻两次执行编译处理的编译时间间隔,基于此,监控模块判断该编译时间间隔是否小于或等于相应的编译间隔阈值如第四间隔阈值,由此,如果连续m个编译时间间隔均小于或等于第四间隔阈值,即字节码优化模块连续m 1次执行编译处理且相邻两次执行编译的编译时间间隔均小于或等于第四间隔阈值,那么监控模块获得到应用编译频繁的判断结果;如果字节码优化模块没有连续m 1次执行编译处理或者字节码优化模块即使连续m 1次执行编译处理但相邻两次执行编译的编译时间间隔没有均小于或等于
第四间隔阈值,那么监控模块获得到应用编译不频繁的判断结果。
[0270]
其中的m为大于或等于1的正整数,如5。第四间隔阈值的大小可以基于第三间隔阈值和应用编译时长来确定,这里的应用编译时长可以基于统计数据来获得。例如,以多个应用程序的dex文件被编译的平均时长来作为应用编译时长。
[0271]
s1603、监控模块获得电子设备当前的温度值并根据温度值获得温度值所处的目标温度范围。
[0272]
其中,s1603中监控模块获得目标温度范围的方式可以参考前文中s906中监控模块获得目标温度范围的方式。
[0273]
其中,s1602可以在s1603之前执行,或者,s1602可以在s1603之后执行,或者,s1602和s1603可以同时执行,所形成的不同的技术方案属于同一发明构思,均在本技术的保护范围内。
[0274]
s1604、监控模块将判断结果和目标温度范围发送给调控模块。
[0275]
另外,监控模块还将编译指令发送给调控模块。
[0276]
s1605、调控模块至少根据判断结果和目标温度范围获得调整参数。
[0277]
在第一种实现方式中,调控模块结合判断结果和目标温度范围获得调整参数时,其中一些实施例如下:
[0278]
如果温度值小于或等于温度阈值即目标温度范围为第一温度范围,那么调控模块无需考虑判断结果,而是根据当前应用编译场景下默认的编译模式生成调整参数,此时,调整参数中至少包含默认的编译模式的模式标识;
[0279]
其中,如果温度值大于温度阈值即目标温度范围为除第一温度范围之外的任一范围且判断结果表明应用编译频繁,那么调控模块根据目标温度范围生成调整参数,记为第一调整参数,此时的调整参数中包含有目标温度范围对应的目标编译模式的模式标识和目标运行核的核标识。
[0280]
例如,调控模块在确定目标温度范围为除第一温度范围之外的任一范围且应用编译频繁的情况下,确定字节码优化模块所需要使用的目标运行核的核标识,并且,在温度范围与编译模式的对应关系表中查找与目标温度范围对应的目标编译模式,由此根据目标运行核的核标识和目标编译模式的模式标识生成调整参数。
[0281]
另外,如果目标温度范围为除第一温度范围之外的任一范围且判断结果表明应用编译不频繁,那么调控模块至少根据目标温度范围生成调整参数,记为第二调整参数,此时的调整参数中仅包含有目标温度范围对应的目标编译模式的模式标识。其中,调控模块可以在温度范围与编译模式的对应关系表中查找与目标温度范围对应的目标编译模式。这里的调整参数中的目标编译模式的模式标识的获取方式可以参考前文中的相应内容。
[0282]
可见,以上实现方式中,调控模块结合目标温度范围以及应用编译是否频繁的判断结果对字节码优化模块所使用的编译模式以及所使用的运行核均进行调整。
[0283]
在第二种实现方式中,调控模块结合判断结果和目标温度范围获得调整参数时,另一些实施例如下:
[0284]
如果目标温度范围为除第一温度范围之外的任一范围且判断结果表明应用编译频繁,那么调控模块生成调整参数,此时的调整参数中可以仅包含有目标运行核的核标识,如果目标温度范围是第一温度范围,此时,调控模块生成的调整参数中可以为空。
[0285]
可见,以上实现方式中,调控模块结合目标温度范围以及应用编译是否频繁的判断结果仅对字节码优化模块所使用的运行核进行调整。
[0286]
在第三种实现方式中,调控模块仅使用目标温度范围获得调整参数。例如,调控模块可以在温度范围与编译模式的对应关系表中查找与目标温度范围对应的目标编译模式。这里的调整参数中的目标编译模式的模式标识的获取方式可以参考前文中的实现方式。
[0287]
可见,以上实现方式中,调控模块使用目标温度范围仅对字节码优化模块所使用的编译模式进行调整。
[0288]
s1606、调控模块判断调整参数中的模式标识是否表征触发字节码优化模块执行dex文件编译,如果是,执行s1607,否则,执行s1608。
[0289]
例如,调控模块可以判断调整参数中的模式标识是否对应于表1中的任意一种编译模式,如果是,那么可以执行s1607,否则,执行s1608。
[0290]
再如,调控模块可以判断调整参数中的模式标识是否对应于不触发字节码优化模块的模式,如果是,那么可以执行s1608,否则,执行s1607。
[0291]
s1607、调控模块根据调整参数修改编译指令。
[0292]
在一种实现方式中,调控模块可以根据调整参数对编译指令中的内容进行修改。例如,调控模块将第一调整参数中的目标编译模式的模式标识替换编译指令中的模式标识,并将第一调整参数中的目标运行核的核标识添加到编译指令中;或者,调控模块将第二调整参数中的目标编译模式的模式标识替换编译指令中的模式标识。
[0293]
需要说明的是,如果调整参数中所包含的目标编译模式的模式标识与编译指令中的默认编译模式的模式标识相一致,那么调控模块则可以不对模式标识进行替换处理。
[0294]
s1608、调控模块向监控模块返回禁止编译的消息。
[0295]
其中,该禁止编译的消息中可以包含有禁止编译的原因,如电子设备温度过高的原因无法执行编译。进一步的,监控模块可以将该消息记录到日志中,以便于后续查询。
[0296]
s1609、调控模块将修改后的编译指令给art的虚拟机中的字节码优化模块。
[0297]
s1610、字节码优化模块按照编译指令对安装目录中的dex文件进行编译处理。
[0298]
s1611、字节码优化模块在编译完成之后向监控模块返回编译完成的消息。
[0299]
其中,监控模块可以将该编译完成的消息记录到日志中,以便于后续查询。
[0300]
s1612、监控模块在接收到返回编译完成的消息之后,记录字节码优化模块的编译结束时刻。
[0301]
需要说明的是,在其他实施例中,监控模块在拦截到编译指令后可以不发给调控模块,而且,在s1606中调控模块在判断触发字节码优化模块执行编译时,也可以将调整参数发送给监控模块,由监控模块根据调整参数修改编译指令,并由监控模块将修改后的编译指令发送给字节码优化模块,由此,使得字节码优化模块按照编译指令执行对dex文件的编译。
[0302]
在另一种实现方式中,监控模块在获得到的温度值和编译开始时刻发送给调控模块,当然也发送编译结束时刻,由调控模块根据温度值获得温度值所处的目标温度范围并根据编译开始时刻获得判断结果,如图20中所示。而调控模块根据温度值获得温度值所处的目标温度范围的方式可以参考前文中监控模块获得目标温度范围的方式,且,调控模块根据编译开始时刻获得判断结果的方式可以参考前文中监控模块获得判断结果的方式。
[0303]
由此,在下一次电子设备空闲触发编译或应用自身触发编译时,仍然按照图16或图20中所示的流程,实现对字节码优化模块进行dex文件编译的控制,从而减轻电子设备空闲触发编译或应用自身触发编译的过程中的电子设备发热的情况。
[0304]
以手机上安装应用程序“运动健康”为例,结合图9中所示的方案,如图21中的流程图所示,从“运动健康”被手机安装开始,手机中通过监控模块记录手机的温度值和“运动健康”的安装开始时刻,并据此获得温度值所处的目标温度范围和表征应用安装是否频繁的判断结果。这里的应用安装频繁可以为:连续安装5个应用程序,且,相邻被安装的两个应用程序安装之间的时间间隔是否小于或等于相应的间隔阈值。之后,如果温度值小于或等于温度阈值,如小于或等于30度,那么调控模块生成的调整参数中包含的是默认的编译模式的模式标识,由此,基于该调整参数所生成的编译指令,手机中的字节码优化模块按照以第一种编译模式在按照资源抢占规则所占用的运行核上对“运动健康”执行dex文件编译,即第一运行模式,例如,按照表1中的第一种编译模式在优先抢占的超大核上对“运动健康”执行dex文件编译,由此保证dex文件的编译性能最优;
[0305]
如果温度值大于30度且应用安装不频繁,那么调控模块只按照温度值所处的目标温度范围对应的目标编译模式来生成相应调整参数,在根据调整参数生成编译指令后,执行该编译指令,以使得手机上的字节码优化模块按照较低编译性能的目标编译模式执行dex文件的编译,即第三运行模式,由此,通过降低能耗达到降温的目的,例如,在温度值大于30度且小于或等于40的时,手机按照表1中的第二种编译模式在优先抢占的超大核上对“运动健康”执行dex文件编译,在温度值大于40度且小于或等于50度时,手机按照表1中的第三种编译模式在优先抢占的超大核上对“运动健康”执行dex文件编译,在温度值大于50度时,手机上不对“运动健康”执行dex文件编译;
[0306]
如果温度值大于30度且应用安装频繁,那么调控模块按照温度值所处的目标温度范围对应的目标编译模式和目标运行核来生成相应调整参数,在根据调整参数生成编译指令后,执行编译指令,以使得手机上的字节码优化模块在较小的目标运行核上运行且按照较低编译性能的目标编译模式执行dex文件的编译,即第二运行模式,由此,通过降低能耗达到降温的目的,例如,在温度值大于30度且小于或等于40的时,手机按照表1中的第二种编译模式在cpu0-cpu6中的任意一个或任意几个小核上对“运动健康”执行dex文件编译,在温度值大于40度且小于或等于50度时,手机按照表1中的第三种编译模式在在cpu0-cpu6中的任意一个或任意几个小核上对“运动健康”执行dex文件编译,在温度值大于50度时,手机上不对“运动健康”执行dex文件编译。而手机上执行完成dex文件的编译且“运动健康”被安装完成时,手机还记录安装结束时刻,用于下次判断应用安装是否频繁。
[0307]
以手机上已经安装的应用程序“运动健康”自身触发对dex文件的编译为例,结合图16中所示的方案,如图22中的流程图所示,“运动健康”在手机上被安装完成之后,“运动健康”自身触发条件被满足时生成编译指令,基于此,在手机中生成针对“运动健康”的编译指令时,先不执行该编译指令,而是在手机上通过监控模块记录获得手机的温度值和“运动健康”的编译开始时刻,并根据编译开始时刻,结合之前手机执行编译的编译结束时刻和/或编译开始时刻,判断应用编译是否频繁,以得到判断结果,即手机中是否频繁执行dex文件编译。这里的应用编译频繁可以为:手机连续5次执行dex文件编译且相邻两次执行编译之间的时间间隔是否小于或等于相应的间隔阈值。之后,如果温度值小于或等于温度阈值,
如小于或等于30度,那么调控模块生成的调整参数中包含的是默认的编译模式如果第一种编译模式的模式标识,此时,基于该调整参数所生成的编译指令,手机上按照以第一种编译模式在按照资源抢占规则所占用的运行核上对“运动健康”执行dex文件编译,即第一运行模式,例如,按照表1中的第一种编译模式在优先抢占的超大核上对“运动健康”执行dex文件编译,由此保证dex文件的编译性能最优;
[0308]
如果温度值大于30度且手机上执行dex文件编译不频繁,即应用编译不频繁,那么手机中的调控模块只按照温度值所处的目标温度范围对应的目标编译模式来生成相应调整参数,在根据调整参数修改编译指令后,执行该编译指令,以使得手机上的字节码优化模块按照较低编译性能的目标编译模式执行dex文件的编译,即第三运行模式,由此,通过降低能耗达到降温的目的,例如,在温度值大于30度且小于或等于40的时,手机按照表1中的第二种编译模式在优先抢占的超大核上对“运动健康”执行dex文件编译,在温度值大于40度且小于或等于50度时,手机按照表1中的第三种编译模式在优先抢占的超大核上对“运动健康”执行dex文件编译,在温度值大于50度时,手机上不对“运动健康”执行dex文件编译;
[0309]
如果温度值大于30度且应用编译频繁,那么手机中的调控模块按照温度值所处的温度范围对应的目标编译模式和目标运行核来生成相应调整参数,在根据调整参数修改编译指令后,执行编译指令,以使得手机上的字节码优化模块在较小的目标运行核上运行且按照较低编译性能的目标编译模式执行dex文件的编译,即第二运行模式,由此,通过降低能耗达到降温的目的,例如,在温度值大于30度且小于或等于40的时,手机按照表1中的第二种编译模式在cpu0-cpu6中的任意一个或任意几个小核上对“运动健康”执行dex文件编译,在温度值大于40度且小于或等于50度时,手机按照表1中的第三种编译模式在在cpu0-cpu6中的任意一个或任意几个小核上对“运动健康”执行dex文件编译,在温度值大于50度时,手机上不对“运动健康”执行dex文件编译。而手机上执行完成dex文件的编译时,手机还记录编译结束时刻,用于下次判断应用编译是否频繁。
[0310]
综上,本技术实施例中通过在手机的pms中设置监控模块和调控模块,由此通过至少记录应用程序被安装时的安装开始时刻和手机的温度值等运行参数,进而对安装开始时刻和温度值进行处理,在温度值不超过温度阈值的情况下,手机上按照编译性能最优的运行模式执行dex文件编译,在温度值超过温度阈值的情况下,根据温度值所处的目标温度范围以及应用安装是否频繁的判断结果获得调整参数。其中,如果应用安装不频繁,那么调整参数中包含有目标编译模式的模式标识,在据此生成编译指令并按照该编译指令执行dex文件编译时,就可以通过编译性能较低的编译模式以达到缩短执行dex文件编译对cpu资源占用时长的目的,从而降低电子设备功耗,缓解电子设备过热的情况。而如果应用安装频繁,那么调整参数中包含有目标编译模式的模式标识和目标运行核的核标识,由此,就可以通过编译性能较低的编译模式以达到缩短执行dex文件编译对cpu资源占用时长的目的,同时,通过在处理性能较小但能耗较低的内核上执行dex文件编译,从而进一步降低电子设备功耗,缓解电子设备过热的情况。
[0311]
进一步的,在应用程序被安装后,监控模块和调控模块继续运行,在拦截到针对应用程序的编译指令时,通过至少记录编译开始时刻和手机的温度值等运行参数,进而对编译开始时刻和温度值进行处理,在温度值不超过温度阈值的情况下,手机上按照编译性能最优的运行模式执行dex文件编译,在温度值超过温度阈值的情况下,根据温度值所处的目
标温度范围以及应用编译是否频繁的判断结果获得调整参数,其中,如果应用编译不频繁,那么调整参数中包含有调整参数至少包含目标编译模式的模式标识,之后,在据此修改编译指令并按照该编译指令执行dex文件编译时,就可以通过编译性能较低的编译模式以达到缩短执行dex文件对cpu资源占用时长的目的,从而降低电子设备功耗,缓解电子设备过热的情况。而如果应用编译频繁,那么调整参数中包含有目标编译模式的模式标识和目标运行核的核标识,由此,就可以通过编译性能较低的编译模式以达到缩短执行dex文件编译对cpu资源占用时长的目的,同时,通过在处理性能较小但能耗较低的内核上执行dex文件编译,从而进一步降低电子设备功耗,缓解电子设备过热的情况。
[0312]
上述实施例中,对本技术实施例提供的方法进行了介绍。可以理解的是,电子设备为了实现上述本技术实施例提供的方法,电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0313]
本技术的一些实施例还提供了一种电子设备,如图23所示,该电子设备可以包括:一个或多个处理器2301;显示器2302;存储器2303;以及一个或多个计算机程序2304,上述各器件可以通过一个或多个通信总线2305连接。其中该一个或多个计算机程序2304被存储在上述存储器2303中,并被配置为被该一个或多个处理器2301执行,该一个或多个计算机程序2304包括指令,上述指令可以用于执行如图9、图15、图16和图20相应实施例中的各个步骤。当然,图23所示的电子设备还可以包括如传感器模块、音频模块以及sim卡接口等其他器件,本技术实施例对此不做任何限制。当图23所示的电子设备还包括如传感器模块、音频模块以及sim卡接口等其他器件时,其可以为图3所示的电子设备。
[0314]
本技术实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0315]
在采用对应各个功能划分各个功能模块的情况下,图24示出了上述和实施例中涉及的dex文件的编译控制装置的一种可能的组成示意图,该dex文件的编译控制装置能执行本技术各方法实施例中任一方法实施例中的步骤。如图24所示,该dex文件的编译控制装置可以包括:
[0316]
监控模块2401,用于在电子设备对应用程序执行dex文件编译的过程中,获得电子设备的温度值和表征应用处理是否频繁的判断结果;
[0317]
处理模块2402,用于在温度值小于或等于温度阈值的情况下,控制电子设备以第一运行模式执行dex文件编译;在温度值大于温度阈值且判断结果表征应用处理频繁的情况下,控制电子设备以第二运行模式执行dex文件编译;在温度值大于温度阈值且判断结果表征应用处理不频繁的情况下,控制电子设备以第三运行模式执行dex文件编译,第三运行模式、第二运行模式和第一运行模式不同。
[0318]
以上各个单元的功能的具体实现方式,可以参见上述实施例,这里不再赘述。
[0319]
可见,本技术实施例公开的dex文件的编译控制装置中,通过获得电子设备的的温度值以及表征应用处理是否频繁的判断结果来控制电子设备以不同的运行模式执行dex文件编译,从而通过调整执行dex文件编译的运行模式来达到调整电子设备能耗的目的,进而避免能耗过高导致的电子设备过热的情况。
[0320]
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中包括指令,当上述指令在电子设备上运行时,使得该电子设备执行图9、图15、图16和图20中的相关方法步骤,以实现上述实施例中的dex文件的编译控制方法。
[0321]
本实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如图9、图15、图16和图20中的相关方法步骤,以实现上述实施例中的dex文件的编译控制方法。
[0322]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0323]
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0324]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0325]
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0326]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0327]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献