插件优化方法及装置转让专利

申请号 : CN202110598557.X

文献号 : CN113419735B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖名鹏

申请人 : 荣耀终端有限公司

摘要 :

本申请提供了一种插件优化方法及装置。该方法包括:更新第一应用;删除运行第一应用时加载运行第一插件后,对本次加载运行中提取的第一插件的可执行文件进行编译优化得到的第一插件优化文件;生成运行更新后的第一应用时加载运行第一插件后,对本次加载运行中提取的第一插件的可执行文件进行编译优化得到的第二插件优化文件。采用该方法,更新应用后,可以删除之前生成的任意一个插件的插件优化文件,在运行更新后的应用且需要加载运行该插件时,可以重新生成新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。

权利要求 :

1.一种插件优化方法,其特征在于,所述方法包括:更新第一应用;

删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;

生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。

2.根据权利要求1所述的方法,其特征在于,更新第一应用之前,所述方法还包括:运行所述第一应用时加载运行至少一个第二插件;

对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。

3.根据权利要求2所述的方法,其特征在于,所述删除第一插件优化文件,包括:运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件优化文件。

4.根据权利要求2所述的方法,其特征在于,所述删除第一插件优化文件,包括:删除所有第三插件优化文件。

5.根据权利要求2所述的方法,其特征在于,所述方法还包括:存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。

6.根据权利要求5所述的方法,其特征在于,所述删除第一插件优化文件,包括:运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;

如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。

7.根据权利要求1至6任意一项所述的方法,其特征在于,运行更新后的第一应用之前,所述方法还包括:

删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;

生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。

8.根据权利要求7所述的方法,其特征在于,所述生成第二插件优化文件,包括:根据所述第二应用优化文件,运行更新后的第一应用;

加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。

9.根据权利要求8所述的方法,其特征在于,所述方法还包括:根据所述第二应用优化文件,运行更新后的第一应用;

根据所述第二插件优化文件,加载运行所述第一插件。

10.一种插件优化装置,其特征在于,所述装置包括:更新模块,用于更新第一应用;

处理模块,用于删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;

优化模块,用于生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。

11.根据权利要求10所述的装置,其特征在于,所述处理模块,还用于运行所述第一应用时加载运行至少一个第二插件;

所述优化模块,还用于对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。

12.根据权利要求11所述的装置,其特征在于,所述处理模块用于删除第一插件优化文件,具体为:

所述处理模块,用于运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件优化文件。

13.根据权利要求11所述的装置,其特征在于,所述处理模块用于删除第一插件优化文件,具体为:

所述处理模块,用于删除所有第三插件优化文件。

14.根据权利要求11所述的装置,其特征在于,所述装置还包括:存储模块,用于存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。

15.根据权利要求14所述的装置,其特征在于,所述处理模块用于删除第一插件优化文件,具体为:

所述处理模块,用于:

运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;

如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。

16.根据权利要求10至15任意一项所述的装置,其特征在于,所述处理模块,还用于删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;

所述优化模块,还用于生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。

17.根据权利要求16所述的装置,其特征在于,所述优化模块用于生成第二插件优化文件,具体为:

所述优化模块,用于:

根据所述第二应用优化文件,运行更新后的第一应用;

加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。

18.根据权利要求17所述的装置,其特征在于,所述处理模块还用于:根据所述第二应用优化文件,运行更新后的第一应用;

根据所述第二插件优化文件,加载运行所述第一插件。

19.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序或指令,当所述计算机程序或指令被执行时,如权利要求1至9中任意一项所述的方法被执行。

说明书 :

插件优化方法及装置

技术领域

[0001] 本申请涉及终端设备技术领域,尤其涉及一种插件优化方法及装置。

背景技术

[0002] 为了减小Android应用程序包(android application package,APK)的大小,可以将应用的某些功能模块单独设置为插件APK,运行应用时可以动态加载这些插件APK,根据
插件APK加载运行插件,从而可以实现相应的功能。
[0003] 运行应用时加载运行插件之后,可以对加载运行中提取的插件的可执行文件进行编译优化,得到插件优化文件。之后再次在运行应用的过程中加载运行插件时,可以加载运
行插件优化文件。此外,在运行应用的过程中,也可以对应用的可执行文件进行编译优化,
得到应用优化文件。之后再次运行应用时,可以运行应用优化文件,可以提高运行速度。
[0004] 不过,在更新应用之后,运行更新后的应用时,如果需要加载插件,而插件需要反调应用,并且之前运行应用时已经生成该插件的插件优化文件,则会发生闪退的现象。

发明内容

[0005] 本申请提供了一种插件优化方法及装置,以解决运行更新后的应用时,如果需要加载的插件需要反调应用,且之前运行应用时已经生成该插件的插件优化文件,会发生闪
退现象的问题。
[0006] 第一方面,本申请提供了一种插件优化方法,该方法包括:更新第一应用;删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对
本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;生成第二插
件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件
后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。
[0007] 本实现方式中,用户设备更新第一应用后,可以删除之前生成的第一插件的第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可
执行文件进行编译优化,生成第二插件优化文件。可见,采用该插件优化方法,更新应用后,
可以删除之前生成的插件对应的插件优化文件,然后在运行更新后的应用的过程中,需要
加载运行该插件时,可以根据更新后的应用加载运行该插件的过程,重新生成该插件的新
的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新
后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退
现象。
[0008] 一种可能的实现方式中,更新第一应用之前,所述方法还包括:运行所述第一应用时加载运行至少一个第二插件;对加载运行中提取的每一个第二插件的可执行文件进行编
译优化,生成该第二插件的第三插件优化文件。
[0009] 本实现方式中,在运行第一应用时,加载运行任意一个第二插件之后,可以对加载运行中提取的该第二插件的可执行文件进行编译优化,得到该第二插件的第三插件优化文
件。之后再次运行第一应用的过程中,需要加载运行该第二插件时,可以运行该第二插件的
第三插件优化文件,可以提高运行速度,用户体验更好。
[0010] 一种可能的实现方式中,所述删除第一插件优化文件,包括:运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件
优化文件。
[0011] 本实现方式中,运行更新后的第一应用时,如果需要加载运行第一插件,可以删除与第一插件相同的第二插件的第三插件优化文件,然后生成第二插件优化文件。采用本实
现方式的插件优化方法,运行更新后的应用的过程中,需要加载运行插件时,可以针对性地
删除该插件对应的之前生成的插件优化文件,系统操作较为简单,效率较高。
[0012] 一种可能的实现方式中,所述删除第一插件优化文件,包括:删除所有第三插件优化文件。
[0013] 本实现方式中,更新第一应用之后,可以删除所有第三插件优化文件。所以,采用本实现方式的插件优化方法,在更新应用之后,可以删除应用对应的所有之前生成的插件
优化文件,可以确保之后运行更新后的应用的过程中,不会出现闪退现象,运行更加稳定,
用户体验更好。
[0014] 一种可能的实现方式中,所述方法还包括:存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
[0015] 本实现方式中,在生成每一个第二插件的第三插件优化文件后,可以存储该第二插件的优化状态信息,用于表征已经生成该第二插件的第三插件优化文件,从而可以为后
续运行过程提供参考,以便后续运行更新后的应用的过程中,需要加载运行插件时,可以根
据存储的优化状态信息分析是否已经生成了该插件对应的插件优化文件,进而可以确保运
行更新后的应用时不会出现闪退现象,使得运行更加稳定,用户体验更好。
[0016] 一种可能的实现方式中,所述删除第一插件优化文件,包括:运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状
态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;如果存储的优化状
态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文
件。
[0017] 本实现方式中,运行更新后的第一应用时,如果需要加载运行第一插件,可以首先确定存储的优化状态信息中是否包括与第一插件对应的第一优化状态信息,如果包括第一
优化状态信息,可以删除第一优化状态信息对应的第三插件优化文件。可见,采用本实现方
式的插件优化方法,在运行更新后的应用的过程中,需要加载插件时,可以根据存储的优化
状态信息确定是否已经生成该插件对应的插件优化文件,并在确定生成的情况下,删除已
经生成的该插件对应的插件优化文件,确保运行更新后的应用时不会出现闪退现象,使得
运行更加稳定,用户体验更好。
[0018] 一种可能的实现方式中,运行更新后的第一应用之前,所述方法还包括:删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取
的第一应用的可执行文件进行编译优化得到的文件;生成第二应用优化文件,所述第二应
用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行
编译优化得到的文件。
[0019] 本实现方式中,在更新第一应用之后,运行更新后的第一应用之前,可以删除运行第一应用时生成的第一应用优化文件,重新获得更新第一应用的过程中生成的第二应用优
化文件。采用该插件优化方法,更新应用之后,运行更新后的应用之前,可以自动删除该应
用之前生成的应用优化文件,重新生成新的应用优化文件,之后运行更新后的应用时,可以
运行新的应用优化文件,从而可以提高运行速度,用户体验更好。
[0020] 一种可能的实现方式中,所述生成第二插件优化文件,包括:根据所述第二应用优化文件,运行更新后的第一应用;加载运行所述第一插件,对本次加载运行中提取的所述第
一插件的可执行文件进行编译优化,生成所述第二插件优化文件。
[0021] 本实现方式中,在生成第二插件优化文件的过程中,可以根据第二应用优化文件,运行更新后的第一应用,可以提高第一应用的运行速度,用户体验更好。
[0022] 一种可能的实现方式中,所述方法还包括:根据所述第二应用优化文件,运行更新后的第一应用;根据所述第二插件优化文件,加载运行所述第一插件。
[0023] 本实现方式中,在运行更新后的第一应用时,可以运行第二应用优化文件,并且在加载运行第一插件时,可以运行第二插件优化文件,运行速度更高,用户体验更好。
[0024] 第二方面,本申请提供了一种插件优化装置,该装置包括:更新模块,用于更新第一应用;处理模块,用于删除第一插件优化文件,所述第一插件优化文件为运行所述第一应
用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译
优化得到的文件;优化模块,用于生成第二插件优化文件,所述第二插件优化文件为运行更
新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可
执行文件进行编译优化得到的文件。
[0025] 本实现方式的装置,更新第一应用后,可以删除之前生成的第一插件的第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可执行
文件进行编译优化,生成第二插件优化文件。可见,采用该装置,更新应用后,可以删除之前
生成的插件对应的插件优化文件,然后在运行更新后的应用的过程中,需要加载运行该插
件时,可以根据更新后的应用加载运行该插件的过程,重新生成该插件的新的插件优化文
件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹
配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
[0026] 一种可能的实现方式中,所述处理模块,还用于运行所述第一应用时加载运行至少一个第二插件;所述优化模块,还用于对加载运行中提取的每一个第二插件的可执行文
件进行编译优化,生成该第二插件的第三插件优化文件。
[0027] 本实现方式的装置,在运行第一应用时,加载运行任意一个第二插件之后,可以对加载运行中提取的该第二插件的可执行文件进行编译优化,得到该第二插件的第三插件优
化文件。之后再次运行第一应用的过程中,需要加载运行该第二插件时,可以运行该第二插
件的第三插件优化文件,可以提高运行速度,用户体验更好。
[0028] 一种可能的实现方式中,所述处理模块用于删除第一插件优化文件,具体为:所述处理模块,用于运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第
一插件相同的第二插件的第三插件优化文件。
[0029] 本实现方式的装置,运行更新后的第一应用时,如果需要加载运行第一插件,可以删除与第一插件相同的第二插件的第三插件优化文件,然后生成第二插件优化文件。采用
本实现方式的装置,运行更新后的应用的过程中,需要加载运行插件时,可以针对性地删除
该插件对应的之前生成的插件优化文件,系统操作较为简单,效率较高。
[0030] 一种可能的实现方式中,所述处理模块用于删除第一插件优化文件,具体为:所述处理模块,用于删除所有第三插件优化文件。
[0031] 本实现方式的装置,更新第一应用之后,可以删除所有第三插件优化文件。所以,采用本实现方式的装置,在更新应用之后,可以删除应用对应的所有之前生成的插件优化
文件,可以确保之后运行更新后的应用的过程中,不会出现闪退现象,运行更加稳定,用户
体验更好。
[0032] 一种可能的实现方式中,所述装置还包括:存储模块,用于存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
[0033] 本实现方式的装置,在生成每一个第二插件的第三插件优化文件后,可以存储该第二插件的优化状态信息,用于表征已经生成该第二插件的第三插件优化文件,从而可以
为后续运行过程提供参考,以便后续运行更新后的应用的过程中,需要加载运行插件时,可
以根据存储的优化状态信息分析是否已经生成了该插件对应的插件优化文件,进而可以确
保运行更新后的应用时不会出现闪退现象,使得运行更加稳定,用户体验更好。
[0034] 一种可能的实现方式中,所述处理模块用于删除第一插件优化文件,具体为:所述处理模块,用于:运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的
优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所
述第一插件相同;如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一
优化状态信息对应的第三插件优化文件。
[0035] 本实现方式的装置,运行更新后的第一应用时,如果需要加载运行第一插件,可以首先确定存储的优化状态信息中是否包括与第一插件对应的第一优化状态信息,如果包括
第一优化状态信息,可以删除第一优化状态信息对应的第三插件优化文件。可见,采用本实
现方式的装置,在运行更新后的应用的过程中,需要加载插件时,可以根据存储的优化状态
信息确定是否已经生成该插件对应的插件优化文件,并在确定生成的情况下,删除已经生
成的该插件对应的插件优化文件,确保运行更新后的应用时不会出现闪退现象,使得运行
更加稳定,用户体验更好。
[0036] 一种可能的实现方式中,所述处理模块,还用于删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件
进行编译优化得到的文件;所述优化模块,还用于生成第二应用优化文件,所述第二应用优
化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译
优化得到的文件。
[0037] 本实现方式的装置,在更新第一应用之后,运行更新后的第一应用之前,可以删除运行第一应用时生成的第一应用优化文件,重新获得更新第一应用的过程中生成的第二应
用优化文件。采用该装置,更新应用之后,运行更新后的应用之前,可以自动删除该应用之
前生成的应用优化文件,重新生成新的应用优化文件,之后运行更新后的应用时,可以运行
新的应用优化文件,从而可以提高运行速度,用户体验更好。
[0038] 一种可能的实现方式中,所述优化模块用于生成第二插件优化文件,具体为:所述优化模块,用于:根据所述第二应用优化文件,运行更新后的第一应用;加载运行所述第一
插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二
插件优化文件。
[0039] 本实现方式的装置,在生成第二插件优化文件的过程中,可以根据第二应用优化文件,运行更新后的第一应用,可以提高第一应用的运行速度,用户体验更好。
[0040] 一种可能的实现方式中,所述处理模块还用于:根据所述第二应用优化文件,运行更新后的第一应用;根据所述第二插件优化文件,加载运行所述第一插件。
[0041] 本实现方式的装置,在运行更新后的第一应用时,可以运行第二应用优化文件,并且在加载运行第一插件时,可以运行第二插件优化文件,运行速度更高,用户体验更好。
[0042] 第三方面,本申请提供了一种通信装置,该通信装置包括处理器,当所述处理器执行存储器中的计算机程序或指令时,如第一方面所述的方法被执行。
[0043] 第四方面,本申请提供了一种通信装置,该通信装置包括处理器和存储器;所述存储器用于存储计算机程序或指令;所述处理器用于执行所述存储器所存储的计算机程序或
指令,以使所述通信装置执行如第一方面所述的方法。
[0044] 第五方面,本申请提供了一种通信装置,该通信装置包括处理器、存储器和收发器;所述收发器,用于接收信号或者发送信号;所述存储器,用于存储计算机程序或指令;所
述处理器,用于从所述存储器调用所述计算机程序或指令执行如第一方面所述的方法。
[0045] 第六方面,本申请提供了一种计算机存储介质,所述计算机存储介质用于存储计算机程序或指令,当所述计算机程序或指令被执行时,使得第一方面所述的方法被实现。
[0046] 第七方面,本申请提供了一种包括计算机程序或指令的计算机程序产品,当所述计算机程序或指令被执行时,使得第一方面所述的方法被实现。
[0047] 为解决运行更新后的应用时,如果需要加载的插件需要反调应用,且之前运行应用时已经生成该插件的插件优化文件,会发生闪退现象的问题,本申请实施例提供了一种
插件优化方法及装置。该方法中,用户设备更新第一应用后,可以删除之前生成的第一插件
的第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插
件的可执行文件进行编译优化,生成第二插件优化文件。可见,采用该插件优化方法,更新
应用后,可以删除之前生成的插件对应的插件优化文件,然后在运行更新后的应用的过程
中,需要加载运行该插件时,可以根据更新后的应用加载运行该插件的过程,重新生成该插
件的新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,
与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发
生闪退现象。

附图说明

[0048] 图1为本申请提供的插件优化方法的一种实施方式的流程示意图;
[0049] 图2为本申请提供的插件优化方法的另一种实施方式的流程示意图;
[0050] 图3为本申请提供的插件优化方法的另一种实施方式的流程示意图;
[0051] 图4为本申请提供的插件优化装置的一种实施方式的结构框图。

具体实施方式

[0052] 下面结合附图,对本申请的技术方案进行描述。
[0053] 在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A
和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是
指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序
进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0054] 需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其
他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在
以具体方式呈现相关概念。
[0055] 为了便于理解本申请的技术方案,下面先对本申请涉及的技术术语进行简单介绍。
[0056] 1、插件化
[0057] 插件化,又可以称为动态加载,是指在应用程序(application,APP)的运行过程中,可以加载运行插件,从而扩展该应用程序(后续简称为应用)的功能。
[0058] 插件化具体可以包括以下步骤:首先,操作系统运行应用的过程中,在需要加载插件时,将插件的可执行二进制文件(包括dex、jar或apk等格式的文件)复制到应用中;然后,
通过调用类加载器加载可执行二进制文件;之后,按照插件中的程序指令运行。
[0059] 2、APK
[0060] APK是Android应用程序包(android application package,APK)的简称,是Android操作系统使用的一种应用程序包的文件格式。
[0061] 本申请实施例中提供了两种APK文件,一种为应用程序的APK文件,后续简称为应用APK,另一种为插件的APK文件,后续简称为插件APK。其中,插件APK实际上不是真正的APK
文件,只是打包成APK格式的非APK文件,操作系统无法直接运行插件APK,需要通过应用程
序加载插件APK,并根据插件APK加载运行插件。
[0062] 3、dex2oat优化
[0063] 操作系统在运行应用的过程中,是将应用APK的dex文件加载至内存中,然后解释性执行字节码,此过程较为复杂,用时较长。如果操作系统每次运行应用的过程中,均按照
前述方式运行,则效率会很低,用户体验较差。基于此,可以通过dex2oat优化,将应用安装
和运行过程中,从应用APK中提取的应用的可执行文件(dex文件)的字节码转化为可以运行
的机器码,生成可以直接被本地处理器执行的应用优化文件(odex文件),在后续运行应用
时,可以直接运行应用优化文件,从而可以加快应用的运行速度,提高用户的体验。
[0064] 此外,应用加载运行插件后,还可以将加载运行中从插件APK中提取的插件的可执行文件,通过dex2oat优化,生成插件优化文件,后续应用再次加载运行插件时,可以直接运
行插件优化文件,从而可以提高加载运行插件的速度,提高用户体验。
[0065] 下面结合上述技术术语对本申请提供的技术方案的应用场景进行示例性说明。
[0066] 为了减小应用APK的大小,或者,为了更好的动态扩展应用的功能,可以将应用的某些功能模块单独设置为插件APK,应用在运行时可以动态加载这些插件APK,根据插件APK
加载运行插件,从而可以实现相应的功能。
[0067] 通常,用户设备根据用户的操作下载应用APK,并且根据应用APK安装应用之后,可以将安装过程中从应用APK中提取的应用的可执行文件进行编译优化,例如,可以对安装过
程中从应用APK中提取的应用的可执行文件进行dex2oat优化,生成初始应用优化文件。
[0068] 然后,用户设备可以根据用户的操作,运行应用。运行应用的过程中,对于应用中与初始应用优化文件对应的功能,可以直接运行初始应用优化文件,无需再从应用APK中提
取相应的可执行文件,也无需再解释性执行字节码,可以提高运行速度。并且,对于运行过
程中,除初始应用优化文件对应功能之外的新增功能,还可以将新增功能对应的可执行文
件进行编译优化,从而更新初始应用优化文件,得到新的应用优化文件。以此类推,用户设
备可以根据用户的操作,不断更新应用的应用优化文件,以便下次运行应用时,可以根据更
新后的应用优化文件运行应用,从而可以提高应用的运行速度,提高用户的体验。
[0069] 用户设备在运行应用的过程中,还可以加载插件APK,根据插件APK加载运行插件,从而扩展应用的功能。加载运行插件后,还可以对加载运行过程中从插件APK中提取的插件
的可执行文件进行编译优化,例如,可以对加载运行过程中从插件APK中提取的插件的可执
行文件进行dex2oat优化,生成初始插件优化文件。之后,再次运行应用,需要加载运行插件
时,可以直接运行初始插件优化文件,可以加快加载运行插件的速度,用户体验更好。
[0070] 不过,当用户设备更新应用后,用户设备会将更新前的应用优化文件删除,重新对本次更新过程中提取的应用的可执行文件进行编译优化,生成新的应用优化文件。而初始
插件优化文件由于存储于应用目录下,用户设备不会删除初始插件优化文件,当更新后的
应用需要加载运行插件时,更新后的应用还是会运行初始插件优化文件,此过程中,如果插
件需要反调应用的话,初始插件优化文件需要获取更新前的应用的程序指令,而应用由于
更新,程序指令的存储位置发生变化,插件无法获取到更新前的应用的程序指令,导致更新
后的应用无法正常运行,发生闪退。
[0071] 为了在更新应用之后,运行更新后的应用时可以正常加载运行插件,不会发生闪退现象,本申请提供了一种插件优化方法。
[0072] 本申请的用户设备可以是诸如手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra‑mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personal 
digital assistant,PDA)、可穿戴设备、虚拟现实设备、监控设备、车载设备等电子设备。本
申请涉及的电子设备可以搭载 或者其它操作系统,本申请
对此不进行限制。
[0073] 下面对本申请提供的插件优化方法的实施例进行说明。
[0074] 参见图1,图1为本申请提供的插件优化方法的一种实施方式的流程示意图。该插件优化方法的执行主体可以为用户设备,该插件优化方法可以包括以下步骤:
[0075] 步骤S101、更新第一应用。
[0076] 其中,第一应用为用户设备根据用户的操作安装的应用。用户设备接收到用户下载第一应用的操作后,可以下载第一应用的应用程序包(下文中可以将第一应用的应用程
序包简称为第一应用程序包),然后根据第一应用程序包安装第一应用。例如,用户设备可
以从应用市场下载第一应用的应用APK,然后可以根据第一应用的应用APK安装第一应用。
[0077] 在安装第一应用之后,用户设备可以对安装过程中从第一应用程序包中提取的第一应用的可执行文件进行编译优化,生成第一应用的初始应用优化文件(下文中可以将第
一应用的初始应用优化文件简称为第三应用优化文件)。例如,可以对安装过程中从第一应
用的应用APK中提取的第一应用的可执行文件进行dex2oat优化,生成第一应用的odex文
件,即第三应用优化文件可以为该odex文件。
[0078] 安装第一应用之后,用户设备可以根据用户的操作,运行第一应用。在运行第一应用的过程中,用户设备可以直接运行第三应用优化文件,对于本次运行第一应用过程中第
三应用优化文件对应功能之外的新增功能,用户设备可以对从第一应用程序包中提取的新
增功能对应的可执行文件进行编译优化,生成新增功能对应的应用优化文件,从而更新第
三应用优化文件为第四应用优化文件,第四应用优化文件包括新增功能对应的应用优化文
件和第三应用优化文件。
[0079] 以此类推,用户设备每次根据用户的操作运行第一应用时,都可以直接运行第一应用对应的当前的应用优化文件,并且,对于当前的应用优化文件对应功能之外的新增功
能,用户设备还可以对新增功能对应的可执行文件进行编译优化,从而更新当前的应用优
化文件。直至用户设备接收到用户输入的更新第一应用的操作后,将第一应用对应的当前
的应用优化文件确定为第一应用优化文件。
[0080] 此外,运行第一应用的过程中,还可以加载运行插件,本申请中,将第一应用运行过程中加载运行的插件简称为第二插件。第二插件的数量可以为一个或多个。也就是说,运
行第一应用的过程中,可以加载运行至少一个第二插件。
[0081] 运行第一应用的过程中,首次加载运行任意一个第二插件后,用户设备可以对本次加载运行该第二插件过程中,从该第二插件的安装包中提取的该第二插件的可执行文件
进行编译优化,生成该第二插件的初始插件优化文件(下文中可以将该第二插件的初始插
件优化文件简称为该第二插件的第三插件优化文件)。例如,运行第一应用的过程中,可以
根据第二插件的插件APK加载运行第二插件,首次加载运行第二插件后,可以对本次加载运
行第二插件过程中,从第二插件的插件APK中提取的第二插件的可执行文件进行dex2oat优
化,生成第二插件的odex文件,即第二插件的第三插件优化文件可以为该odex文件。
[0082] 之后,用户设备每次运行第一应用的过程中,需要加载运行任意一个第二插件时,都可以加载运行该第二插件的第三插件优化文件,无需重新加载该第二插件的可执行文
件,可以提高加载运行该第二插件的速度,用户体验更好。
[0083] 用户设备接收到用户输入的更新第一应用的操作后,可以更新第一应用。更新第一应用后,用户设备可以删除第一应用优化文件,并且对本次更新过程中从用于更新第一
应用的应用程序包中提取的第一应用的可执行文件进行编译优化,生成更新后的第一应用
的初始优化文件(下文中可以将更新后的第一应用的初始优化文件简称为第二应用优化文
件)。
[0084] 之后,用户设备可以根据用户的操作运行更新后的第一应用,在运行更新后的第一应用时,可以运行第二应用优化文件,可以提高更新后的第一应用的运行速度,用户体验
更好。
[0085] 步骤S102、运行更新后的第一应用时,如果需要加载运行第一插件,删除第一插件优化文件。
[0086] 用户设备在运行更新后的第一应用的过程中,也可以加载运行插件。本申请实施例中,将运行更新后的第一应用的过程中,加载运行的插件简称为第一插件。
[0087] 需要说明的是,运行更新后的第一应用的过程中加载运行的插件与运行第一应用的过程中加载运行的插件可以相同,也可以不同。所以,第一插件可以与第二插件相同。第
一插件也可以与第二插件不同。基于此,第一插件优化文件可以为与第一插件相同的第二
插件的第三插件优化文件。
[0088] 所以,删除第一插件优化文件,可以按照下述方式实现:确定运行第一应用过程中加载运行的与第一插件相同的第二插件,删除该第二插件的第三插件优化文件。
[0089] 步骤S103、加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成第二插件优化文件。
[0090] 用户设备运行更新后的第一应用的过程中,在加载运行第一插件时,可以首先删除第一插件优化文件,然后加载运行第一插件,并且,可以对本次加载运行第一插件过程中
提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。之后,用户设备根据
用户的操作再次运行更新后的第一应用,并且需要加载运行第一插件时,可以运行第二插
件优化文件,加载运行的速度更快,用户体验更好。
[0091] 需要说明的是,步骤S102至步骤S103以第一插件为一个为例,对本申请的实施例进行说明。而实际应用场景中第一插件的数量可以为一个,也可以为多个。也就是说,运行
更新后的第一应用的过程中,可以加载运行一个或多个第一插件。当第一插件的数量为多
个时,可以按照步骤S102至步骤S103的方式,在加载运行每一个第一插件时,删除该第一插
件对应的第一插件优化文件,然后生成该第一插件对应的第二插件优化文件。
[0092] 本实施例提供的插件优化方法中,用户设备更新第一应用后,运行更新后的第一应用时,如果需要加载运行第一插件,首先删除第一插件优化文件,然后加载运行第一插
件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插
件优化文件。可见,采用该插件优化方法,更新应用后,在运行更新后的应用的过程中,需要
加载插件时,首先删除之前生成的该插件对应的插件优化文件,然后根据更新后的应用加
载运行该插件的过程,重新生成该插件的新的插件优化文件,当该插件反调应用时,新的插
件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件
优化文件加载运行该插件时,不会发生闪退现象。
[0093] 参见图2,图2为本申请提供的插件优化方法的另一种实施方式的流程示意图。该插件优化方法的执行主体可以为用户设备,该插件优化方法可以包括以下步骤:
[0094] 步骤S201、更新第一应用。
[0095] 步骤S201的具体实现方式可以参考图1所示实施例的内容,此处不再赘述。
[0096] 步骤S202、删除所述第一应用对应的所有第三插件优化文件。
[0097] 结合前述实施例的内容可知,运行第一应用的过程中,可以加载运行一个或多个第二插件。在加载运行每一个第二插件后,可以对加载运行中提取的该第二插件的可执行
文件进行编译优化,生成该第二插件的第三插件优化文件。基于此,当第二插件为一个时,
第一应用对应的所有第三插件优化文件为该第二插件的第三插件优化文件。当第二插件为
多个时,第一应用对应的所有第三插件优化文件为该多个第二插件的第三插件优化文件。
[0098] 步骤S203、运行更新后的第一应用时,加载运行第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成第二插件优化文件。
[0099] 需要说明的是,步骤S203以第一插件为一个为例,对本申请的实施例进行说明。而实际应用场景中第一插件的数量可以为一个,也可以为多个。也就是说,运行更新后的第一
应用的过程中,可以加载运行一个或多个第一插件。当第一插件的数量为多个时,可以按照
步骤步骤S203的方式,在加载运行每一个第一插件时,生成该第一插件对应的第二插件优
化文件。
[0100] 本实施例提供的插件优化方法中,用户设备更新第一应用后,首先删除第一应用对应的所有第三插件优化文件,然后运行更新后的第一应用,并且在加载运行第一插件后,
对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文
件。可见,采用该插件优化方法,更新应用后,可以首先删除之前生成的与该应用对应的所
有插件优化文件,然后运行更新后的应用时,在加载运行插件后,根据更新后的应用加载运
行插件的过程,重新生成新的插件优化文件,当插件反调应用时,新的插件优化文件依据更
新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行
插件时,不会发生闪退现象。
[0101] 参见图3,图3为本申请提供的插件优化方法的另一种实施方式的流程示意图。该插件优化方法的执行主体可以为用户设备,该插件优化方法可以包括以下步骤:
[0102] 步骤S301、运行第一应用时,加载运行至少一个第二插件,对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
[0103] 结合前述实施例的内容可知,第一应用为用户设备根据用户的操作安装的应用。用户设备接收到用户下载第一应用的操作后,可以下载第一应用程序包,然后根据第一应
用程序包安装第一应用。
[0104] 在安装第一应用之后,用户设备可以对安装过程中从第一应用程序包中提取的第一应用的可执行文件进行编译优化,生成第三应用优化文件。
[0105] 安装第一应用之后,用户设备可以根据用户的操作,运行第一应用。在运行第一应用的过程中,用户设备可以运行第三应用优化文件,对于本次运行第一应用过程中第三应
用优化文件对应功能之外的新增功能,用户设备可以对从第一应用程序包中提取的新增功
能对应的可执行文件进行编译优化,生成新增功能对应的应用优化文件,从而更新第三应
用优化文件为第四应用优化文件,第四应用优化文件包括新增功能对应的应用优化文件和
第三应用优化文件。
[0106] 以此类推,用户设备每次根据用户的操作运行第一应用时,都可以直接运行第一应用对应的当前的应用优化文件,并且,对于当前的应用优化文件对应功能之外的新增功
能,用户设备还可以对新增功能对应的可执行文件进行编译优化,从而更新当前的应用优
化文件。直至用户设备接收到用户输入的更新第一应用的操作后,将第一应用对应的当前
的应用优化文件确定为第一应用优化文件。
[0107] 此外,运行第一应用的过程中,还可以加载运行插件,本申请中,将第一应用运行过程中加载运行的插件简称为第二插件。第二插件的数量可以为一个或多个。也就是说,运
行第一应用的过程中,可以加载运行至少一个第二插件。
[0108] 运行第一应用的过程中,首次加载运行任意一个第二插件后,用户设备可以对本次加载运行中,从该第二插件的安装包中提取的该第二插件的可执行文件进行编译优化,
生成该第二插件的第三插件优化文件。之后,用户设备每次运行第一应用的过程中,需要加
载运行该第二插件时,都可以加载运行该第二插件的第三插件优化文件,无需重新加载该
第二插件的可执行文件,可以提高加载运行该第二插件的速度,用户体验更好。
[0109] 步骤S302、存储每一个第二插件的优化状态信息。
[0110] 运行第一应用的过程中,加载运行每一个第二插件,生成该第二插件的第三插件优化文件后,用户设备可以存储该第二插件的优化状态信息。
[0111] 其中,每一个第二插件的优化状态信息可以用于表征已经生成该第二插件的第三插件优化文件。每一个第二插件的优化状态信息可以包括第一应用的信息和该第二插件的
信息。第一应用的信息可以包括第一应用的包名、第一应用的应用版本号、第一应用的应用
更新时间和第一应用需要加载的插件的信息等。第二插件的信息可以包括该第二插件的安
装包名称、该第二插件的插件目录(该第二插件被加载至第一应用中的目录)、该第二插件
的插件优化文件目录(该第二插件的第三插件优化文件存储至第一应用中的目录)和已经
生成该第二插件的第三插件优化文件的信息等。
[0112] 步骤S303、更新第一应用。
[0113] 结合前述实施例的内容可知,用户设备可以根据接收到的用户输入的更新第一应用的操作,更新第一应用。更新第一应用后,用户设备可以删除第一应用优化文件,并且对
本次更新过程中从用于更新第一应用的应用程序包中提取的第一应用的可执行文件进行
编译优化,生成第二应用优化文件。
[0114] 步骤S304、运行更新后的第一应用时,如果需要加载运行第一插件,确定存储的优化状态信息中是否包括第一优化状态信息。
[0115] 结合前述实施例的内容可知,用户设备运行更新后的第一应用时,可以运行第二应用优化文件,可以提高运行速度,用户体验更好。
[0116] 此外,用户设备在运行更新后的第一应用的过程中,也可以加载运行插件。本申请实施例中,将运行更新后的第一应用的过程中,加载运行的插件简称为第一插件。
[0117] 需要说明的是,运行更新后的第一应用的过程中加载运行的插件与运行第一应用的过程中加载运行的插件可以相同,也可以不同。所以,第一插件可以与第二插件相同。第
一插件也可以与第二插件不同。其中,第一优化状态信息对应的第二插件与第一插件相同。
[0118] 基于此,确定存储的优化状态信息中是否包括第一优化状态信息,可以按照下述方式实现:将存储的优化状态信息对应的第二插件与第一插件进行匹配,如果存在与第一
插件相同的第二插件,则确定存储的优化状态信息中包括第一优化状态信息;或者,如果不
存在与第一插件相同的第二插件,则确定存储的优化状态信息中不包括第一优化状态信
息。
[0119] 步骤S305、如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件,然后加载运行所述第一插件,对加载运行中提
取的所述第一插件的可执行文件进行编译优化,生成第二插件优化文件。
[0120] 如果存储的优化状态信息中不包括第一优化状态信息,说明运行第一应用的过程中,没有生成第一插件优化文件,此种情况下,可以加载运行所述第一插件,对加载运行所
述第一插件中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。需要
说明的是,本申请对于运行第一应用的过程中,没有加载运行与第一插件相同的第二插件,
没有生成第一插件优化文件的方案,不做具体讨论。
[0121] 对加载运行中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件的具体实现方式,可以参考前述实施例的内容,此处不再赘述。
[0122] 需要说明的是,步骤S304至步骤S305以第一插件为一个为例,对本申请的实施例进行说明。而实际应用场景中第一插件的数量可以为一个,也可以为多个。也就是说,运行
更新后的第一应用的过程中,可以加载运行一个或多个第一插件。当第一插件的数量为多
个时,可以按照步骤S304至步骤S305的方式,在加载运行每一个第一插件时,确定存储的优
化状态信息中是否包括该第一插件对应的第一优化状态信息,并在包括的情况下,删除该
第一优化状态信息对应的第三插件优化文件,然后生成该第一插件对应的第二插件优化文
件。
[0123] 本实施例提供的插件优化方法中,用户设备运行第一应用的过程中,加载运行至少一个第二插件后,可以对加载运行中提取的每一个第二插件的可执行文件进行编译优
化,生成该第二插件的第三插件优化文件,并且会存储每一个第二插件的优化状态信息,然
后更新第一应用后,运行更新后的第一应用时,如果需要加载运行第一插件,首先确定存储
的优化状态信息中是否包括第一优化状态信息,第一优化状态信息对应的第二插件与第一
插件相同,如果包括,删除第一优化状态信息对应的第三插件优化文件,然后加载运行第一
插件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二
插件优化文件。
[0124] 可见,采用该插件优化方法,在运行应用的过程中,加载运行插件后,可以生成插件的插件优化文件,并且存储插件的优化状态信息。在更新应用后,运行更新后的应用的过
程中,需要加载插件时,可以根据存储的优化状态信息确定是否存在该插件对应的插件优
化文件,存在的话,可以首先删除之前生成的该插件对应的插件优化文件,然后根据更新后
的应用加载运行该插件的过程,重新生成该插件的新的插件优化文件。当该插件反调应用
时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据
新的插件优化文件加载运行该插件时,不会发生闪退现象。
[0125] 本文中描述的各个方法实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
[0126] 可以理解的是,上述各个方法实施例中,由用户设备实现的方法和操作,也可以由可用于用户设备的部件(例如芯片或者电路)实现。
[0127] 上述实施例对本申请提供的插件优化方法进行了介绍。可以理解的是,用户设备为了实现上述功能,其包含了执行每一个功能相应的硬件结构和/或软件模块。本领域技术
人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本
申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机
软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本申请的范围。
[0128] 本申请实施例可以根据上述方法示例对用户设备进行功能模块的划分,例如,可以对应每一个功能划分每一个功能模块,也可以将两个或两个以上的功能集成在一个处理
模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实
现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,
实际实现时可以有另外的划分方式。
[0129] 以上,结合图1至图3详细说明了本申请实施例提供的方法。以下,结合图4详细说明本申请实施例提供的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因
此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
[0130] 参见图4,图4为本申请提供的插件优化装置的一种实施方式的结构框图。如图4所示,该插件优化装置400可以包括:更新模块401、处理模块402和优化模块403。该插件优化
装置400可以执行上述图1至图3所示实施例中任意一个实施例中用户设备执行的操作。
[0131] 例如,在本申请一种可选的实施例中,更新模块401,可以用于更新第一应用;处理模块402,可以用于运行更新后的第一应用时,如果需要加载运行第一插件,删除第一插件
优化文件,所述第一插件优化文件为运行所述第一应用时加载运行所述第一插件后,对本
次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;优化模块403,
可以用于生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载
运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化
得到的文件。
[0132] 一种可能的实现方式中,所述处理模块402,还可以用于运行所述第一应用时加载运行至少一个第二插件;所述优化模块403,还可以用于对本次加载运行中提取的每一个第
二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
[0133] 一种可能的实现方式中,所述第一插件优化文件为与所述第一插件相同的第二插件的第三插件优化文件。
[0134] 一种可能的实现方式中,所述处理模块402用于删除第一插件优化文件,具体为:所述处理模块402,用于删除所有第三插件优化文件。
[0135] 一种可能的实现方式中,所述插件优化装置400还可以包括:存储模块,用于存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插
件优化文件。
[0136] 一种可能的实现方式中,所述处理模块402用于删除第一插件优化文件,具体为:所述处理模块402,用于:确定存储的优化状态信息中是否包括第一优化状态信息,所述第
一优化状态信息对应的第二插件与所述第一插件相同;如果存储的优化状态信息中包括所
述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。
[0137] 一种可能的实现方式中,所述处理模块402,还可以用于删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可
执行文件进行编译优化得到的文件;所述优化模块403,还可以用于生成第二应用优化文
件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的
可执行文件进行编译优化得到的文件。
[0138] 一种可能的实现方式中,所述优化模块403用于生成第二插件优化文件,具体为:所述优化模块403,用于:根据所述第二应用优化文件,运行更新后的第一应用;加载运行所
述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所
述第二插件优化文件。
[0139] 一种可能的实现方式中,所述处理模块402还可以用于:根据所述第二应用优化文件,运行更新后的第一应用;根据所述第二插件优化文件,加载运行所述第一插件。
[0140] 也就是说,该插件优化装置400可以实现对应于图1至图3所示插件优化方法实施例中任意一个实施例中用户设备所执行的步骤或者流程,该插件优化装置400可以包括用
于执行图1至图3所示插件优化方法实施例中任意一个实施例中用户设备执行的方法的模
块。应理解,各模块执行上述相应步骤的具体过程在上述插件优化方法实施例中已经详细
说明,为了简洁,在此不再赘述。
[0141] 根据本申请实施例提供的方法,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括:计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该
计算机执行图1至图3所示实施例中任意一个实施例的方法。
[0142] 根据本申请实施例提供的方法,本申请实施例还提供一种计算机存储介质,该计算机存储介质存储有计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得
该计算机执行图1至图3所示实施例中任意一个实施例的方法。
[0143] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件
和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的
特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所
描述的功能,但是这种实现不应认为超出本申请的范围。
[0144] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0145] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
[0146] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
[0147] 另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
[0148] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(read‑only memory,ROM)、随机存取存
储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0149] 上述本申请实施例提供的插件优化装置、计算机存储介质、计算机程序产品均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的
有益效果,在此不再赘述。
[0150] 应理解,在本申请的各个实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成限定。
[0151] 本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于插件优化
装置、计算机存储介质、计算机程序产品的实施例而言,由于其基本相似于方法实施例,所
以描述的比较简单,相关之处参见方法实施例中的说明即可。
[0152] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优
选实施例以及落入本申请范围的所有变更和修改。
[0153] 以上所述的本申请实施方式并不构成对本申请保护范围的限定。