本发明涉及计算机,特别地,提供一种插件安装的优化方法和控制装置。
背景技术:
1、在android环境下应用程序开发过程中,开发人员编写java源文件,经过java编译器将java源文件编译成class文件,再经过dex编译器将class文件编译成dex文件,最后根据dex文件生成apk文件。当前,android开发过程中会采用插件化这一方案,即把不同的业务拆分成不同的插件,这样既能做到解耦,也能做到独立更新,以此来解决业务增长及业务需要频繁更新的需求。
2、但是,对于android q以下的系统,在下载完插件之后,不会对插件代码做dex编译优化,而是在运行插件代码时,检测该插件是否经过dex编译优化,如果没有,则会马上做这一编译优化,从生成的odex文件,能加快下次启动的速度和流畅度。但是由于做dex编译优化需要占用大量的cpu和i/o等系统资源,从而拖慢app的启动速度,甚至出现卡顿的现象。
3、对于android q及以上的系统,在下载完插件后,也并不会对插件做任何的dex编译优化,在运行插件时检测是否有dex编译优化后的文件,若没有,则通过jit即时编译器编译出机器码来运行。而把dex编译优化这一操作放到系统idle状态时才运行。该方式解决了app启动过程中由于做dex编译导致的卡顿、启动慢等问题,但是也失去了dex编译所带来的在启动速度、流畅性上的优化体验,并且在系统经过dex优化编译之前,运行插件时都是走jit即时编译器的流程。
4、相应地,本领域需要一种新的插件安装的优化方法来解决上述问题。
技术实现思路
1、为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决插件或热修复代码安装之后运行性能较低的技术问题的一种插件安装的优化方法和控制装置。
2、在第一方面,本发明提供一种插件安装的优化方法,包括如下步骤:
3、从服务器获取待安装的插件,其中所述插件包括待编译的dex文件;
4、根据预设判断标准选择dex编译模式;
5、基于所选择的dex编译模式对所述待编译的dex文件进行编译。
6、在一个具体实施例中,所述根据预设判断标准选择dex编译模式,包括:
7、判断是否存在前端用户行为;
8、若存在前端用户行为,则从预设dex编译模式中选择编译速度高的dex编译模式;和/或
9、若不存在前端用户行为,则从预设dex编译模式中选择性能效率高的dex编译模式。
10、在一个具体实施例中,所述方法还包括:
11、检测所述插件安装所在终端的硬件负载状态;
12、若所述硬件的负载率小于预设负载率,则执行所述判断是否存在前端用户行为的步骤;和/或
13、若所述硬件的负载率不小于预设负载率,则从预设dex编译模式中选择编译速度高的dex编译模式。
14、在一个具体施例中,所述根据预设判断标准选择dex编译模式,包括:
15、判断是否存在前端用户行为或检测所述插件安装所在终端的硬件负载状态;
16、若存在前端用户行为或所述硬件的负载率不小于预设负载率,则从预设dex编译模式中选择编译速度高的dex编译模式;
17、若不存在前端用户行为或所述硬件的负载率小于预设负载率,则从预设dex编译模式中选择性能效率高的dex编译模式。
18、在一个具体实施例中,
19、所述预设dex编译模式包括speed编译模式、speed-profile编译模式、quicken编译模式以及verify编译模式;
20、所述编译速度高的dex编译模式为verify编译模式;
21、所述性能效率高的dex编译模式为speed编译模式。
22、在一个具体实施例中,所述判断是否存在前端用户行为,包括:
23、调用状态监听接口获取前端是否存在用户行为;
24、若监听到存在所述用户行为,则判断存在前端用户行为。
25、在一个具体实施例中,所述硬件包括cpu和/或输入输出接口。
26、在一个具体实施例中,在从服务器获取待安装的插件之前,所述方法还包括:
27、比较本地已安装的应用和所述服务器上存储的插件,判断所述服务器上是否存在可更新的插件。
28、在一个具体实施例中,所述基于所选择的dex编译模式对所述待编译的dex文件进行编译,包括:
29、将所选择的dex编译模式作为参数传入可执行文件;
30、执行所述可执行文件将所述dex文件转换为oat文件,以用于解析。
31、在第二方面,本发明提供一种控制装置,该控制装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行第一方面中任一项技术方案所述的插件安装的优化方法。
32、在第三方面,本发明提供一种计算机可读存储介质,存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行第一方面中任一项技术方案所述的插件安装的优化方法。
33、在第四方面,本发明提供一种终端设备,包括第二方面的控制装置。
34、本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
35、通过实施本发明的技术方案中,在插件或热修复代码(形成为插件形式)更新后,在运行该代码时能尽可能享有dex编译所带来的更好性能优化体验,启动速度能更快,流畅度能更好。
1.一种插件安装的优化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据预设判断标准选择dex编译模式,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述根据预设判断标准选择dex编译模式,包括:
5.根据权利要求2-4中任一项所述的方法,其特征在于,
6.根据权利要求2-4中任一项所述的方法,其特征在于,所述判断是否存在前端用户行为,包括:
7.根据权利要求3或4所述的方法,其特征在于,
8.根据权利要求1所述的方法,其特征在于,在从服务器获取待安装的插件之前,所述方法还包括:
9.根据权利要求1所述的方法,其特征在于,所述基于所选择的dex编译模式对所述待编译的dex文件进行编译,包括:
10.一种控制装置,包括处理器和存储装置,所述存储装置适于存储多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并运行以执行权利要求1至9中任一项所述的方法。