CN111273955A - 热修复插件优化方法、装置、存储介质及电子设备 - Google Patents
热修复插件优化方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111273955A CN111273955A CN202010045878.2A CN202010045878A CN111273955A CN 111273955 A CN111273955 A CN 111273955A CN 202010045878 A CN202010045878 A CN 202010045878A CN 111273955 A CN111273955 A CN 111273955A
- Authority
- CN
- China
- Prior art keywords
- application
- plug
- thermal
- optimization
- optimized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 title claims abstract description 134
- 230000008439 repair process Effects 0.000 claims abstract description 217
- 238000001514 detection method Methods 0.000 claims description 8
- 238000005067 remediation Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 10
- 238000011084 recovery Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000035876 healing Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Abstract
本申请公开了一种热修复插件优化方法、装置、存储介质及电子设备,该方法应用于电子设备中,包括:在应用运行期间或者应用退出时,检测所述应用的热修复插件是否需要进行优化;若需要进行优化,对所述应用的所述热修复插件进行优化。本申请实施例在应用运行期间或者应用退出时,就对应用的热修复插件进行优化,即在应用冷启动之前,就对应用的热修复插件进行优化,如此,在应用下一次冷启动时,无需重新加载热修复插件,而直接使用热修复插件优化后的文件,提高应用冷启动的速度,提升用户的体验。
Description
技术领域
本申请涉及通讯技术领域,尤其涉及一种热修复插件优化方法、装置、存储介质及电子设备。
背景技术
当前智能手机、PAD等电子设备支持很多应用,电子设备如Android系统的智能手机在应用开发时,发展出很多热修复技术。热修复即应用进程运行过程中通过插件替换原文件中的部分方法或者资源,达到即时更新资源,修改逻辑的目的,而不必立即重启应用进程,给用户良好的体验。这些热修复插件是应用在运行过程中下载,下载完成后应用即时加载到应用运行的进程中执行的。如果应用进程退出,那么重新启动该应用(也即冷启动)时就需要重新加载这些下载的热修复插件,以替换原来的文件。系统在冷启动过程中重新加载热修复插件可能会花费很长时间,其中热修复插件越大花费时间越多,如此导致应用冷启动时间较长,导致用户体验下降。
发明内容
本申请实施例提供一种热修复插件优化方法、装置、存储介质及电子设备,能对应用的热修复插件进行优化,提高应用冷启动的速度。
本申请实施例提供了一种热修复插件优化方法,包括:
在应用运行期间或者应用退出时,检测所述应用的热修复插件是否需要进行优化;
若需要进行优化,对所述应用的所述热修复插件进行优化。
本申请实施例还提供了一种热修复插件优化装置,包括:
检测单元,用于在应用运行期间或者应用关闭时,检测所述应用的热修复插件是否需要进行优化;
优化单元,用于若需要进行优化,对所述应用的所述热修复插件进行优化。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述任一项热修复插件优化方法。
本申请实施例还提供了一种电子设备,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于上述任一项所述的热修复插件优化方法中的步骤。
本申请提供的热修复插件优化方法、装置、存储介质及电子设备,在应用运行期间或者应用退出时,检测应用的热修复插件是否满足优化的条件;若满足优化的条件,对应用的热修复插件进行优化。本申请实施例在应用运行期间或者应用退出时,就对应用的热修复插件进行优化,即在应用冷启动之前,就对应用的热修复插件进行优化,如此,在应用下一次冷启动时,无需重新加载热修复插件,而直接使用热修复插件优化后的文件,提高应用冷启动的速度,提升用户的体验。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。
图1为本申请实施例提供的热修复插件优化方法的流程示意图。
图2为本申请实施例提供的应用存在数据传输的示例图。
图3为本申请实施例提供的热修复插件优化方法的另一流程示意图。
图4为本申请实施例提供的热修复插件优化方法的另一流程示意图。
图5为本申请实施例提供的热修复插件优化方法的另一流程示意图。
图6为本申请实施例提供的热修复插件优化装置的结构示意图。
图7为本申请实施例提供的电子设备的结构示意图。
图8为本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种热修复插件优化方法、装置、存储介质及电子设备。本申请实施例提供的任一种热修复插件优化装置,可以集成在电子设备中,该电子设备可以包括移动终端、穿戴式设备、PC端、机器人等。该电子设备中包括至少一个应用,该应用可以是系统应用,也可以是第三方应用等;该应用可以使用热修复技术进行热修复。热修复即应用进程运行过程中通过插件替换原文件中的部分方法或者资源,达到即时更新资源,修改逻辑的目的,而不必立即重启应用进程,给用户良好的体验。其中,将热修复过程中的插件称为热修复插件。
请参阅图1,图1是本申请实施例提供的热修复插件优化方法的流程示意图,其应用于电子设备中,该热修复插件优化方法包括步骤101~102,具体可以如下:
101,在应用运行期间或者应用退出时,检测应用的热修复插件是否需要进行优化。
其中,应用的热修复插件是在应用运行过程中下载,下载完成后应用即时加载到运行的应用进程中执行。需要注意的是,应用在运行过程中,也即应用在运行期间,存在对应的应用进程。在应用退出时,应用对应的应用进程会被杀死(kill),即本申请中的应用退出,对应的是应用进程被杀死的状态,不包括应用在后台运行的状态。应用在后台运行时应用进程仍然存在,只是应用进程优先级降低,应用仍在运行。
具体地,步骤101,包括:在应用运行过程中,加载应用的热修复插件;检测热修复插件是否为第一次加载;若是,则确定应用的热修复插件需要进行优化;若否,根据应用的热修复插件当前的优化状态来确定应用的热修复插件是否需要进行优化。
在应用运行过程中,从应用的服务器中下载热修复插件,下载完成后,自行动态加载该热修复插件。其中,检测热修复插件是否为第一次加载,包括:电子设备监听是否加载热修复插件,并在监听到加载热修复插件时,获取电子设备系统中保存的加载记录,根据加载记录确定是否为第一次加载该热修复插件。在电子设备系统中保存有相关加载记录,该相关加载记录中保存有热修复插件是否为第一次加载的信息。若为第一次加载热修复插件,则确定应用的热修复插件需要进行优化。
可以理解地,在应用的热修复插件第一次加载时,立即对该应用的热修复插件进行优化。即在应用下一次冷启动前,就对应用的热修复插件进行优化,以在应用下一次冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
若不是第一次加载应用的热修复插件,则根据应用的热修复插件当前的优化状态来确定应用的热修复插件是否需要进行优化。其中,根据应用的热修复插件当前的优化状态来确定应用的热修复插件是否需要进行优化,包括:检测应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示未成功优化;若是,则确定应用的热修复插件需要进行优化;若否,则确定应用的热修复插件不需要进行优化。
应用的热修复插件的优化状态包括:第一预设状态和第二预设状态,其中,第一预设状态表示该热修复插件成功优化,第二预设状态表示该热修复插件未成功优化。热修复插件未成功优化,包括两种情况:一,热修复插件优化了但未成功;二,热修复插件未进行优化。其中,第一预设状态和第二预设状态可以用多种形式来表示。例如,用1表示成功优化,0表示未成功优化;1表示成功优化,2表示未成功优化;yes表示成功优化,no表示未成功优化等。
获取应用的热修复插件的优化状态,若应用的热修复插件的优化状态为第一预设状态,则表示该应用的热修复插件已经完成优化,确定应用的热修复插件不需要进行优化,不做处理;若应用的热修复插件的优化状态为第二预设状态,则表示该应用的热修复插件未完成优化,确定应用的热修复插件需要进行优化。例如用1表示成功优化,2表示未成功优化;若获取的应用的热修复插件的优化状态为1,则确定应用的热修复插件不需要进行优化,若获取的应用的热修复插件的优化状态为2,则确定应用的热修复插件需要进行优化。
具体地,步骤101,包括:在应用运行期间,获取应用的进程优先级;当进程优先级不为最高优先级时,检测应用当前是否未传输数据,且应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示未成功优化;若应用当前未传输数据,且应用的热修复插件当前的优化状态为第二预设状态,则确定应用的热修复插件需要进行优化;若应用当前正在传输数据,或者应用当前未传输数据,但是应用的热修复插件当前的优化状态不为第二预设状态,则确定应用的热修复插件不需要进行优化,不做处理;若应用的进程优先级为最高优先级,则确定应用的热修复插件不需要进行优化,不做处理。
在应用运行期间,应用对应的应用进程一直存在,可获取应用的应用进程所对应的进程优先级。其中,需要注意的是,电子设备当前界面上显示的应用的进程优先级最高,即应用界面显示在电子设备的最前面,且用户可见,则确定应用的进程优先级最高;而未在当前界面显示的应用(后台运行的应用等)的进程优先级较低。例如,电子设备当前界面上显示的是weixin应用,如weixin应用的主界面、与weixin好友聊天界面、weixin付款界面等与weiixn应用相关的界面,则该weixin应用的进程优先级最高。可以简单理解,用户当前正在使用的,且在电子设备当前界面上显示的应用的进程优先级最高。如果一个应用当前正在被用户使用,为了不影响用户使用,则不对热修复插件进行优化,即对热修复插件不做处理。
当应用的进程优先级不为最高优先级时,进一步检测应用当前是否未传输数据,且应用的热修复插件当前的优化状态是否为第二预设状态。其中,检测应用当前是否未传输数据,包括:检测应用当前是否与应用的服务器之间传输数据,或者应用当前是否在响应用户操作等情况,若是,则确定应用当前在传输数据;若否,则确定应用当前未传输数据。或者通过其他的方式来检测应用当前是否未传输数据。可以理解地,若存在数据传输,则意味着有交互行为。若应用当前在传输数据,为了不影响应用的使用,确定应用的热修复插件不需要进行优化,即不对热修复插件进行优化。
如图2所示,当用户正在播放视频时,电子设备当前界面上显示的是播放界面,如此,播放视频所对应的应用的应用进程的进程优先级为最高优先级。在电子设备当前界面的上方,表示用户在播放视频时,同时接收到来自于xxxx的消息:你今天在干吗啊?要不要一起出来玩?因此,接收来自于xxxx的消息所对应的应用,当前存在数据传输,即接收到服务器发送的来自于xxxx的消息,确定接收来自于xxxx的消息所对应的应用不需要进行热修复插件的优化。
若应用的进程优先级不为最高优先级,应用当前未传输数据,且应用的热修复插件的优化状态为第二预设状态,则确定应用的热修复插件需要进行优化。可以理解地,在应用运行期间,用户当前未使用该应用,且该应用并未传输数据,且该应用的热修复插件未进行优化的情况下,对该应用的热修复插件进行优化。如此,在应用运行期间,既能保证应用的正常运行,又能实现对应用的热修复插件进行优化,以在应用冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
进一步地,获取应用的进程优先级,包括:根据预设间隔时长获取应用的进程优先级。如此,可根据预设间隔时长来获取应用的进程优先级,以进一步确定应用的热修复插件是否需要进行优化,而不必实时来获取应用的进程优先级,以进一步确定应用的热修复插件是否需要进行优化,降低了电子设备的功耗。其中,预设间隔时长可以根据实际情况进行设定。例如,预设间隔时长可以设置为5min等。
在一些情况下,步骤101,包括:在应用运行期间,根据预设间隔时长获取所有应用的进程优先级,当进程优先级不为最高优先级时,检测应用当前是否未传输数据,且应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示未成功优化;确定进程优先级不为最高优先级,当前未传输数据,且热修复插件当前的优化状态为第二预设状态的所有应用对应的热修复插件需要进行优化。确定进程优先级为最高优先级,或者当前在传输数据,或者热修复插件当前的优化状态不为第二预设状态的应用不需要进行热修复插件的优化。
如此,可定期对电子设备上的所有应用的热修复插件确定是否需要进行优化,即定期对电子设备上的确定需要进行优化的应用的热修复插件进行优化。
具体地,步骤101,包括:当应用退出时,检测应用的热修复插件当前的优化状态是否为第二预设状态,该第二预设状态表示所述热修复插件未成功优化;若是,则确定应用的热修复插件需要进行优化;若否,则确定应用的热修复插件不需要进行优化。
在检测到应用进程退出,或者应用进程被杀死时,确定应用退出。当应用退出时,获取应用的热修复插件当前的优化状态,并判断应用的热修复插件当前的优化状态是否为第二预设状态;若是,则确定应用的热修复插件未成功优化,则确定应用的热修复插件需要进行优化;若应用的热修复插件当前的优化状态不为第二预设状态,则意味着应用的热修复插件已经完成优化,确定应用的热修复插件不需要进行优化。
可以理解地,在应用退出时,若确定需要对应用的热修复插件进行优化,则对应用的热修复插件进行优化,既不会对应用的正常运行造成任何影响,又能实现对应用的热修复插件进行优化,以在应用冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
以上分别在应用第一次加载热修复插件,应用在电子设备后台运行、且没有进行数据传输时,以及在应用退出时,即在应用运行期间以及在应用退出时,对应用的热修复插件进行优化。寻找应用的热修复插件优化的不同优化时机,以及时地对应用的热修复插件进行优化,如此,在应用冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
102,若需要进行优化,对应用的热修复插件进行优化。
即若确定需要对应用的热修复插件进行优化,则对应用的热修复插件进行优化。
具体地,步骤102,包括:对应用的热修复插件对应的可执行文件进行优化;若优化成功,则将应用的热修复插件的优化状态设置为第一预设状态;若未优化成功,则将应用的热修复插件的优化状态设置为第二预设状态。
其中,对应用的热修复插件对应的可执行文件进行优化,包括:对应用的热修复插件对应的dex文件进行优化。具体地,将热修复插件的dex文件进行优化,以得到优化文件,如odex文件。优化可实现,将热修复插件的dex文件中的类和方法生成索引,以便查找;将生成索引的类和方法转换为字节码;将转换为字节码的数据写入至优化文件等功能。字节码为电子设备可以直接执行(无需再次编译)的格式,如仅包括0和1的二进制码等。
需要注意的是,将热修复插件的dex文件进行优化后得到的优化文件,是包括字节码的文件,字节码为电子设备可以直接执行的格式。因此,电子设备在冷启动时,可直接使用热修复插件优化后的优化文件,即直接使用包括字节码的文件,直接执行,而无需加载热修复插件,减少了加载热修复插件的时间,减少了对热修复插件进行编译的时间,提高了冷启动的速度。
若应用的热修复插件对应的可执行文件优化成功,则将应用的热修复插件的优化状态设置为第一预设状态,如将应用的热修复插件的优化状态设置为1;若应用的热修复插件对应的可执行文件未优化成功,则将应用的热修复插件的优化状态设置为第二预设状态,如将应用的热修复插件的优化状态设置为2;其中,1表示优化成功,2表示未优化成功(包括未成功优化,以及未优化)。
进一步地,对应用的热修复插件进行优化,包括:
检测是否存在其他应用的热修复插件正在优化;若是,则建立所述应用的热修复插件的优化任务,并将优化任务保存在队列中;当检测到其他应用的热修复插件完成优化后,从队列中取出优化任务,并对优化任务进行优化。可以理解地,优化是通过系统进程来完成的,系统进程同一时间只能对一个应用的热修复插件进行优化。
上述方法实施例分别在应用第一次加载热修复插件,应用在电子设备后台运行、且没有进行数据传输时,以及在应用退出时,即在应用运行期间以及在应用退出时,对应用的热修复插件进行优化。寻找应用的热修复插件优化的不同优化时机,以及时地对应用的热修复插件进行优化,将应用的热修复插件进行优化后得到的是包括字节码的优化文件,字节码为电子设备可以直接执行的格式。因此,电子设备在冷启动时,可直接使用热修复插件优化后的优化文件,即直接使用包括字节码的文件,直接执行,而无需加载热修复插件,减少了加载热修复插件的时间,减少了对热修复插件进行编译的时间,提高了冷启动的速度。另外,由于热修复插件的大小不会太大,且量不是很多,优化热修复插件造成的电子设备功耗问题可以忽略不计,但是优化成功后,可提高冷启动的速度,带来非常好的用户体验。
图3是本申请实施例提供的热修复插件优化方法的另一流程示意图,其应用于电子设备中,该热修复插件优化方法包括步骤201~208,具体可以如下:
201,在应用运行过程中,加载应用的热修复插件。
在应用运行过程中,包括在下载应用的热修复插件完成后,立即加载应用的热修复插件,也包括在应用运行过程中,后续需要使用该热修复插件时,加载该热修复插件。
202,检测热修复插件是否为第一次加载。
在电子设备系统中保存有相关加载记录,该相关加载记录中保存有热修复插件是否为第一次加载的信息。
若应用的热修复插件不是第一次加载,则执行步骤203;若应用的热修复插件是第一次加载,则执行步骤205。
203,检测应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示热修复插件未成功优化。
若应用的热修复插件当前的优化状态不为第二预设状态,则执行204;若应用的热修复插件当前的优化状态为第二预设状态,则执行步骤205。
204,确定应用的热修复插件不需要进行优化。流程结束。
205,确定应用的热修复插件需要进行优化。
206,若确定应用的热修复插件需要进行优化,对应用的热修复插件对应的可执行文件进行优化。
207,若优化成功,则将热修复插件的优化状态设置为第一预设状态。
208,若未优化成功,则将热修复插件的优化状态设置为第二预设状态。
若用1表示应用的热修复插件优化成功,2表示应用的热修复插件未优化成功。若优化成功,则将热修复插件的优化状态设置为,若未优化成功,则将热修复插件的优化状态设置为2。
该实施例在加载应用的热修复插件时对应用的热修复插件进行优化,若应用的热修复插件第一次加载,立即对该应用的热修复插件进行优化;若应用的热修复插件在应用运行期间非第一次加载,即在应用运行期间后续加载,若应用的热修复插件的优化状态为第二预设状态,则对该应用的热修复插件进行优化,以在应用下一次冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
图4是本申请实施例提供的热修复插件优化方法的另一流程示意图,其应用于电子设备中,该热修复插件优化方法包括步骤301~309,具体可以如下:
301,在应用运行期间,根据预设间隔时长获取应用的进程优先级。
302,检测应用的进程优先级是否为最高优先级。
若应用的进程优先级不为最高优先级,则执行步骤303;若应用的进程优先级为最高优先级,则执行步骤305。
303,检测应用当前是否在传输数据。
若应用当前未传输数据,则执行步骤304;若应用当前正在传输数据,则执行步骤305。可以理解地,若存在数据传输,则意味着有交互行为。为了不影响用户的使用,则不进行优化。
304,检测应用的热修复插件当前的优化状态是否为第二预设状态,其中,所述第二预设状态表示所述热修复插件未成功优化。
若应用的热修复插件当前的优化状态不为第二预设状态,则执行步骤305;若应用的热修复插件当前的优化状态为第二预设状态,则执行步骤306。
305,确定应用的热修复插件不需要进行优化。流程结束。
306,确定应用的热修复插件需要进行优化。
307,若确定应用的热修复插件需要进行优化,对应用的热修复插件对应的可执行文件进行优化。
308,若优化成功,则将热修复插件的优化状态设置为第一预设状态。
309,若未优化成功,则将热修复插件的优化状态设置为第二预设状态。
该实施例在应用运行期间,根据预设间隔时长,找时机来优化应用的热修复插件。具体地,在应用的进程优先级不是最高优先级、应用未传输数据、应用的热修复插件当前的优化状态为第二预设状态时,对应用的热修复插件进行优化,以在应用冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
图5是本申请实施例提供的热修复插件优化方法的另一流程示意图,其应用于电子设备中,该热修复插件优化方法包括步骤401~407,具体可以如下:
401,检测应用是否退出。
具体地,检测应用进程是否被杀死(kill)或者应用进程是否被退出。若应用进程被杀死或者应用进程被退出,则确定应用被退出。
402,若检测到应用退出,检测应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示热修复插件未成功优化。
若应用的热修复插件当前的优化状态不为第二预设状态,则执行步骤403;若应用的热修复插件当前的优化状态为第二预设状态,则执行步骤404。
403,确定应用的热修复插件不需要进行优化。流程结束。
404,确定应用的热修复插件需要进行优化。
405,若确定应用的热修复插件需要进行优化,对应用的热修复插件对应的可执行文件进行优化。
406,若优化成功,则将热修复插件的优化状态设置为第一预设状态。
407,若未优化成功,则将热修复插件的优化状态设置为第二预设状态。
该实施例在应用退出时,对应用的热修复插件进行优化。具体地,在应用退出时,若应用的热修复插件的优化状态为第二预设状态,即未成功优化,则对应用的热修复插件进行优化,以在应用冷启动时,直接使用热修复插件优化后的文件,提高应用冷启动的速度。
根据上述实施例所描述的方法,本实施例将从热修复插件优化装置的角度进一步进行描述,该热修复插件优化装置具体可以作为独立的实体来实现,也可以集成在电子设备,该电子设备可以包括移动终端、穿戴式设备、PC端、机器人等。该电子设备中包括至少一个应用,该应用可以是系统应用,也可以是第三方应用等;该应用可以使用热修复技术进行热修复。
请参阅图6,图6具体描述了本申请实施例提供的热修复插件优化装置,应用于电子设备中,该热修复插件优化装置可以包括:检测单元501以及优化单元502。其中:
检测单元501,用于在应用运行期间或者应用关闭时,检测应用的热修复插件是否需要进行优化。
其中,检测单元501具体用于在应用运行过程中,加载应用的热修复插件;检测应用的热修复插件是否为第一次加载;若应用的热修复插件是第一次加载,则确定应用的热修复插件需要进行优化;若应用的热修复插件不是第一次加载,则根据应用的热修复插件当前的优化状态来确定应用的热修复插件是否需要进行优化。具体地,若应用的热修复插件不是第一次加载,检测应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态为应用的热修复插件未成功优化;若应用的热修复插件当前的优化状态为第二预设状态,确定应用的热修复插件需要进行优化;若应用的热修复插件当前的优化状态不为第二预设状态,确定那个应用的热修复插件不需要进行优化。
进一步地,检测单元501具体用于在应用运行期间,获取应用的进程优先级或者根据预设间隔时长获取应用的进程优先级;当进程优先级不为最高优先级时,检测应用当前是否未传输数据,且应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示热修复插件未成功优化;若应用当前未传输数据,且应用的热修复插件当前的优化状态为第二预设状态,则确定应用的热修复插件需要进行优化;若应用当前在传输数据或者应用的热修复插件当前的优化状态不为第二预设状态,则确定应用的热修复插件不需要进行优化。
进一步地,检测单元501具体用于当应用退出时,检测应用的热修复插件当前的优化状态是否为第二预设状态,其中,第二预设状态表示热修复插件未成功优化;若应用的热修复插件当前的优化状态为第二预设状态,则确定应用的热修复插件需要进行优化;若应用的热修复插件当前的优化状态不为第二预设状态,则确定应用的热修复插件不需要进行优化。
优化单元502,用于若需要进行优化,对应用的热修复插件进行优化。
具体地,优化单元502,具体用于对应用的热修复插件对应的可执行文件进行优化;若优化成功,则将热修复插件的优化状态设置为第一预设状态;若未优化成功,则将热修复插件的优化状态设置为第二预设状态。
进一步地,在执行对应用的热修复插件进行优化的过程中,所述优化单元502,具体用于检测是否存在其他应用的热修复插件正在优化;若是,则建立所述应用的所述热修复插件的优化任务,并将优化任务保存在队列中;当检测到其他应用的热修复插件完成优化后,从队列中取出优化任务,并对优化任务进行优化。
具体实施时,以上各个模块和/或单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块和/或单元的具体实施可参见前面的方法实施例,具体可以达到的有益效果也请参看前面的方法实施例中的有益效果,在此不再赘述。
另外,本申请实施例还提供一种电子设备,该电子设备可以包括移动终端、穿戴式设备、PC端、机器人等。该电子设备中包括至少一个应用,该应用可以是系统应用,也可以是第三方应用等;该应用可以使用热修复技术进行热修复。如图7所示,电子设备600包括处理器601、存储器602。其中,处理器601与存储器602电性连接。
处理器601是电子设备600的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器602内的应用程序,以及调用存储在存储器602内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备600中的处理器601会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能:
在应用运行期间或者应用退出时,检测所述应用的热修复插件是否需要进行优化;
若需要进行优化,对所述应用的所述热修复插件进行优化。
该电子设备可以实现本申请实施例所提供的热修复插件优化方法任一实施例中的步骤,因此,可以实现本发明实施例所提供的任一热修复插件优化方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
图8示出了本发明实施例提供的电子设备的具体结构框图,该电子设备可以用于实施上述实施例中提供的热修复插件优化方法。该电子设备700可以为包括移动终端、穿戴式设备、PC端、机器人等。该电子设备中包括至少一个应用,该应用可以是系统应用,也可以是第三方应用等;该应用可以使用热修复技术进行热修复。
RF电路710用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。RF电路710可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。RF电路710可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication,GSM)、增强型移动通信技术
(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(Wideband CodeDivision Multiple Access,WCDMA),码分多址技术(Code Division Access,CDMA)、时分多址技术(Time Division Multiple Access,TDMA),无线保真技术(Wireless Fidelity,Wi-Fi)(如美国电气和电子工程师协会标准IEEE802.11a,IEEE 802.11b,IEEE802.11g和/或IEEE 802.11n)、网络电话(Voice over Internet Protocol,VoIP)、全球微波互联接入(Worldwide Interoperability for Microwave Access,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
存储器720可用于存储软件程序以及模块,如上述实施例中对应的程序指令/模块,处理器780通过运行存储在存储器720内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器720可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器720可进一步包括相对于处理器780远程设置的存储器,这些远程存储器可以通过网络连接至电子设备700。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入单元730可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元730可包括触敏表面731以及其他输入设备732。触敏表面731,也称为触摸显示屏(触摸屏)或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面731上或在触敏表面731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面731。除了触敏表面731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及移动终端700的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元740可包括显示面板741,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板741。进一步的,触敏表面731可覆盖显示面板741,当触敏表面731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图中,触敏表面731与显示面板741是作为两个独立的部件来实现输入和输出功能,但是可以理解地,将触敏表面731与显示面板741集成而实现输入和输出功能。
电子设备700还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在感测到物体接近时产生中断。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备700还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路760、扬声器761,传声器762可提供用户与电子设备700之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路710以发送给比如另一终端,或者将音频数据输出至存储器720以便进一步处理。音频电路760还可能包括耳塞插孔,以提供外设耳机与电子设备700的通信。
电子设备700通过传输模块770(例如Wi-Fi模块)可以帮助用户接收请求、发送信息等,它为用户提供了无线的宽带互联网访问。虽然图示出了传输模块770,但是可以理解的是,其并不属于电子设备700的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器780是电子设备700的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行电子设备700的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器780可包括一个或多个处理核心;在一些实施例中,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地,上述调制解调处理器也可以不集成到处理器780中。
电子设备700还包括给各个部件供电的电源790(比如电池),在一些实施例中,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源790还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,电子设备700还包括摄像头(如前置摄像头、后置摄像头)、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备的显示单元是触摸屏显示器,移动终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行一个或者一个以上程序包含用于进行以下操作的指令:
在应用运行期间或者应用退出时,检测所述应用的热修复插件是否需要进行优化;
若需要进行优化,对所述应用的所述热修复插件进行优化。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的热修复插件优化方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的热修复插件优化方法任一实施例中的步骤,因此,可以实现本发明实施例所提供的任热修复插件优化方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种热修复插件优化方法、装置、存储介质和电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种热修复插件优化方法,其特征在于,包括:
在应用运行期间或者应用退出时,检测所述应用的热修复插件是否需要进行优化;
若需要进行优化,对所述应用的所述热修复插件进行优化。
2.根据权利要求1所述的热修复插件优化方法,其特征在于,所述对所述应用的所述热修复插件进行优化,包括:
对所述应用的所述热修复插件对应的可执行文件进行优化;
若优化成功,则将所述热修复插件的优化状态设置为第一预设状态;
若未优化成功,则将所述热修复插件的优化状态设置为第二预设状态。
3.根据权利要求1所述的热修复插件优化方法,其特征在于,检测所述应用的热修复插件是否需要进行优化,包括:
在应用运行过程中,加载应用的热修复插件;
检测所述热修复插件是否为第一次加载;
若是,则确定所述应用的所述热修复插件需要进行优化;
若否,则根据所述应用的所述热修复插件当前的优化状态来确定所述应用的所述热修复插件是否需要进行优化。
4.根据权利要求1所述的热修复插件优化方法,其特征在于,检测所述应用的热修复插件是否需要进行优化,包括:
在应用运行期间,获取所述应用的进程优先级;
当所述进程优先级不为最高优先级时,检测所述应用当前是否未传输数据,且所述应用的热修复插件当前的优化状态是否为第二预设状态,其中,所述第二预设状态表示所述热修复插件未成功优化;
若是,则确定所述应用的所述热修复插件需要进行优化;
若否,则确定所述应用的所述热修复插件不需要进行优化。
5.根据权利要求4所述的热修复插件优化方法,其特征在于,获取所述应用的进程优先级,包括:
根据预设间隔时长获取所述应用的进程优先级。
6.根据权利要求1所述的热修复插件优化方法,其特征在于,检测所述应用的热修复插件是否需要进行优化,包括:
当所述应用退出时,检测所述应用的热修复插件当前的优化状态是否为第二预设状态,其中,所述第二预设状态表示所述热修复插件未成功优化;
若是,则确定所述应用的所述热修复插件需要进行优化;
若否,则确定所述应用的所述热修复插件不需要进行优化。
7.根据权利要求1所述的热修复插件优化方法,其特征在于,所述对所述应用的所述热修复插件进行优化,包括:
检测是否存在其他应用的热修复插件正在优化;
若是,则建立所述应用的所述热修复插件的优化任务,并将所述优化任务保存在队列中;
当检测到其他应用的热修复插件完成优化后,从所述队列中取出所述优化任务,并对所述优化任务进行优化。
8.一种热修复插件优化装置,其特征在于,包括:
检测单元,用于在应用运行期间或者应用关闭时,检测所述应用的热修复插件是否需要进行优化;
优化单元,用于若需要进行优化,对所述应用的所述热修复插件进行优化。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有多条指令,所述指令适于由处理器加载以执行权利要求1至7任一项所述的热修复插件优化方法。
10.一种电子设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行权利要求1至7任一项所述的热修复插件优化方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010045878.2A CN111273955B (zh) | 2020-01-16 | 2020-01-16 | 热修复插件优化方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010045878.2A CN111273955B (zh) | 2020-01-16 | 2020-01-16 | 热修复插件优化方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111273955A true CN111273955A (zh) | 2020-06-12 |
CN111273955B CN111273955B (zh) | 2024-01-19 |
Family
ID=70997243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010045878.2A Active CN111273955B (zh) | 2020-01-16 | 2020-01-16 | 热修复插件优化方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111273955B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419735A (zh) * | 2021-05-31 | 2021-09-21 | 荣耀终端有限公司 | 插件优化方法及装置 |
CN113741993A (zh) * | 2021-06-15 | 2021-12-03 | 荣耀终端有限公司 | 编译插件dex文件的方法及装置 |
CN114356440A (zh) * | 2021-12-21 | 2022-04-15 | 西安四叶草信息技术有限公司 | 系统优化方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105278989A (zh) * | 2015-10-12 | 2016-01-27 | 邱寅峰 | Apk文件的快速加载方法 |
CN106708555A (zh) * | 2016-06-29 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种加载插件的方法和装置 |
CN107273151A (zh) * | 2017-05-25 | 2017-10-20 | 西安理工大学 | 一种安全的Android App功能插件化方法 |
CN107608707A (zh) * | 2017-07-31 | 2018-01-19 | 努比亚技术有限公司 | 具有热修复功能之应用检测方法、终端及可读存储介质 |
WO2018086268A1 (zh) * | 2016-11-14 | 2018-05-17 | 平安科技(深圳)有限公司 | 插件化打包方法、装置、终端及存储介质 |
CN108536464A (zh) * | 2018-04-26 | 2018-09-14 | 北京奇艺世纪科技有限公司 | 一种应用程序的热修复方法及装置 |
CN110471786A (zh) * | 2019-08-20 | 2019-11-19 | 网易(杭州)网络有限公司 | 在线热修复方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-01-16 CN CN202010045878.2A patent/CN111273955B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105278989A (zh) * | 2015-10-12 | 2016-01-27 | 邱寅峰 | Apk文件的快速加载方法 |
CN106708555A (zh) * | 2016-06-29 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种加载插件的方法和装置 |
WO2018086268A1 (zh) * | 2016-11-14 | 2018-05-17 | 平安科技(深圳)有限公司 | 插件化打包方法、装置、终端及存储介质 |
CN107273151A (zh) * | 2017-05-25 | 2017-10-20 | 西安理工大学 | 一种安全的Android App功能插件化方法 |
CN107608707A (zh) * | 2017-07-31 | 2018-01-19 | 努比亚技术有限公司 | 具有热修复功能之应用检测方法、终端及可读存储介质 |
CN108536464A (zh) * | 2018-04-26 | 2018-09-14 | 北京奇艺世纪科技有限公司 | 一种应用程序的热修复方法及装置 |
CN110471786A (zh) * | 2019-08-20 | 2019-11-19 | 网易(杭州)网络有限公司 | 在线热修复方法、装置、设备及计算机可读存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419735A (zh) * | 2021-05-31 | 2021-09-21 | 荣耀终端有限公司 | 插件优化方法及装置 |
CN113419735B (zh) * | 2021-05-31 | 2022-04-19 | 荣耀终端有限公司 | 插件优化方法及装置 |
CN113741993A (zh) * | 2021-06-15 | 2021-12-03 | 荣耀终端有限公司 | 编译插件dex文件的方法及装置 |
CN113741993B (zh) * | 2021-06-15 | 2022-07-01 | 荣耀终端有限公司 | 编译插件dex文件的方法及装置 |
CN114356440A (zh) * | 2021-12-21 | 2022-04-15 | 西安四叶草信息技术有限公司 | 系统优化方法及装置 |
CN114356440B (zh) * | 2021-12-21 | 2023-11-10 | 西安四叶草信息技术有限公司 | 系统优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111273955B (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107040609B (zh) | 一种网络请求处理方法和装置 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
WO2018077041A1 (zh) | 应用运行的方法及装置 | |
CN108958606B (zh) | 分屏显示方法、装置、存储介质和电子设备 | |
CN106713608B (zh) | 应用的功能状态修改方法、装置及终端 | |
CN111273955B (zh) | 热修复插件优化方法、装置、存储介质及电子设备 | |
CN104093123A (zh) | 应用程序的信息推送方法、装置和系统、移动终端 | |
CN109714476B (zh) | 数据处理方法、装置、移动终端及存储介质 | |
CN111104180B (zh) | 应用程序优化方法、装置、存储介质及电子设备 | |
CN109413256B (zh) | 联系人信息处理方法、装置、存储介质及电子设备 | |
CN107317828B (zh) | 文件下载方法及装置 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN111177612A (zh) | 一种页面登录鉴权的方法及相关装置 | |
CN106330875B (zh) | 消息显示方法及装置 | |
CN113852450A (zh) | 一种消息推送反馈方法、装置、电子设备和存储介质 | |
CN114518718A (zh) | 设备控制方法、装置、存储介质及电子设备 | |
CN109240986B (zh) | 一种日志处理方法、装置及存储介质 | |
CN107346347B (zh) | 网页表格显示方法及装置 | |
CN106681845B (zh) | 一种管理通讯消息的方法和装置 | |
CN113961380A (zh) | 一种跨应用修复的方法、装置、设备及存储介质 | |
CN106657278B (zh) | 一种数据传输方法、装置及计算机设备 | |
CN108280798B (zh) | 一种浏览器内核渲染显示的方法和装置 | |
CN106033358B (zh) | 一种应用程序的批量安装方法和装置 | |
CN112214699A (zh) | 一种页面处理的方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |