[发明专利]应用程序运行方法、装置、终端设备及介质在审
申请号: | 201911156475.9 | 申请日: | 2019-11-22 |
公开(公告)号: | CN112947927A | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 肖继伟;窦泽飞;王小建 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53;G06F9/445 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 左婷兰 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 运行 方法 装置 终端设备 介质 | ||
本申请实施例适用于信息技术领域,提供了一种应用程序运行方法、装置、终端设备及介质,所述方法适用于终端设备,包括:当检测到应用程序启动时,获取与所述应用程序相对应的类列表文件;识别所述类列表文件中的目标类;启动目标线程,并采用所述目标线程初始化所述目标类。本实施例通过识别程序中可以提前初始化的类,不需要在指定编译器重新编译应用程序就能够更快地生成操作系统可以直接执行的指令,有助于提高应用程序的运行性能。
技术领域
本申请属于信息技术领域,尤其涉及一种应用程序运行方法、装置、终端设备及介质。
背景技术
为了提高编程效率,Java、Python等面向对象的跨平台编程语言非常流行。相较于传统编程语言需要在对应的操作系统平台进行编译后才能执行,跨平台编程语言经过一次编译即可在不同操作系统平台执行。为了实现该特性,应用程序不直接运行在操作系统,而是运行在指定的虚拟机中,如Java虚拟机、Python虚拟机等。如图1所示,是现有技术中的一种虚拟机架构图。按照图1所示的架构,应用程序运行在指定的虚拟机中,虚拟机屏蔽了与具体操作系统平台相关的各类信息。应用程序在虚拟机中的运行过程如图2所示,其源代码首先被编译成虚拟机能够理解的字节码,再由虚拟机转换成不同硬件平台能够理解的机器码,然后再执行。但是,虚拟机将字节码转换成机器码这一过程会导致运行效率相对降低。针对这种情况,如何更快地生成操作系统能够直接执行的指令,成为提高系统性能的关键。现有技术中,可以通过编译阶段优化和执行阶段优化两种方式提高应用程序的运行效率。
编译阶段优化通过识别部分代码在编译阶段进行处理,从而可以减少等待虚拟机转换的数据量,提高运行效率。如图3所示,是现有技术中编译阶段优化的过程示意图。针对图3所示的原始伪码,若在编译时识别到Source2对应的代码可以提前执行,则这部分代码不再编译为字节码,而是可以直接抽取出来编译成可直接执行的机器码。在应用程序运行时,当执行到Source2对应的代码逻辑时,可以直接执行已抽取出的编译结果。执行阶段优化则不要求在编译阶段对代码进行特殊处理,而是全部编译成字节码,待应用程序被安装到对应的操作系统平台后,再在指定时间将程序重新编译成系统能够直接执行的指令。如图4所示,是现有技术中执行阶段优化的过程示意图。针对图4所示的原始伪码,在编译阶段将其全部编译成字节码,然后在应用程序运行时,当执行到ByteCode2对应的代码逻辑时,直接执行已编译的机器码,省略将ByteCode2由虚拟机转换成RunCode2产生的开销,从而提升性能。
编译阶段优化要求开发者使用指定的虚拟机环境编译,并在指定的虚拟机上运行才能获得相应的性能收益。但市面上存在多种不同的虚拟机,如果要求开发者使用指定虚拟机重新编译将会带来额外的工作量的增加,提高了编译的成本。另一方面,应用程序本身通常都具有打补丁、热更新等修改原始应用程序文件的行为,也会访问应用程序内的文件。采用执行阶段优化的方式将字节码编译成机器码,仍然不能删除原应用程序文件,相当于新增了文件,将会带来额外的磁盘开销。
发明内容
本申请实施例提供了一种应用程序运行方法、装置、终端设备及介质,可以提高应用程序的运行性能。
第一方面,本申请实施例提供了一种应用程序运行方法,适用于终端设备,所述方法包括:
当检测到应用程序启动时,获取与所述应用程序相对应的类列表文件;
识别所述类列表文件中的目标类;
启动目标线程,并采用所述目标线程初始化所述目标类。
示例性的,终端设备可以是基于Android系统的设备,可以通过获取所述应用程序的源代码,识别所述源代码中的静态类;然后基于所述静态类,生成与所述应用程序相对应的类列表文件。上述类列表文件可以包括能够提前初始化的各个类的类名。
应理解,能够提前初始化的各个类可以通过解析源代码中的各个类,找出源代码中包含以预设字符标记的变量和代码段,且该类对应的初始化代码未包括其他任务执行逻辑的那些类作为能够提前初始化的类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911156475.9/2.html,转载请声明来源钻瓜专利网。