本申请涉及终端,尤其涉及一种应用程序的编译方法及电子设备。
背景技术:
1、typescript(简称ts)代码与javascript(简称js)代码相比,添加了静态类型功能。ts代码的静态类型功能即为ts代码中的部分或全部语句中可以被添加数据类型标签。电子设备在启动应用程序时,会运行该应用程序对应的ts代码。在运行ts代码的过程中,电子设备需要将ts代码中的语句编译为js代码。之后,还需要将得到的js代码翻译为电子设备可以识别的机器码,运行该机器码,才能启动该应用程序。可见,启动应用程序需要经历多个过程,启动应用程序的效率低。
技术实现思路
1、本申请实施例提供一种应用程序的编译方法及电子设备,能够提高应用程序的启动效率。
2、为达到上述目的,本申请实施例采用如下技术方案:
3、第一方面,本申请实施例提供了一种应用程序的编译方法,可以应用于电子设备。该方法包括:获取第一文件,第一文件包括第一应用程序对应的至少一句ts代码。在至少一句ts代码中确定未标注有正确的数据类型的第一ts代码。在第一文件中修改第一ts代码,得到修改后的所述第一文件。其中,修改后的第一文件包括标注有正确的数据类型的ts代码。对修改后的第一文件执行编译处理,生成第二文件。第二文件包括修改后的第一文件中的ts代码对应的机器码。
4、在本申请的方法中,可以在第一应用程序启动前,获取包括第一应用程序对应的至少一句ts代码的第一文件。之后,获取各ts代码中未标注有正确数据类型的第一ts代码,并为第一ts代码标注正确的数据类型。通过对标注有正确的数据类型的ts代码执行如aot等编译处理,将所有标注有正确的数据类型的ts代码编译为机器码。当第一应用程序启动时,可以直接调用并执行这些机器码。能够加快应用程序的启动速度,提升应用程序的启动效率。
5、结合第一方面,在一种可能的设计中,在第一文件中修改第一ts代码,得到修改后的第一文件的过程中,可以基于第一文件中的各ts代码的执行顺序,生成抽象语法树。其中,抽象语法树用于表示第一文件中的各ts代码的逻辑关系,抽象语法树包括多个节点,每个节点用于表示第一文件中的一句ts代码。修改第一节点表示的第一ts代码。其中,第一节点是所述抽象语法树中满足预设条件的节点。
6、在该方案中,虽然第一文件中的第一ts代码均未被标注有正确的数据类型。但是,当某些第一ts代码被标注正确的数据类型后,可能会影响其他第一ts代码,使其可以被推导出正确的数据类型。因此,可以基于第一文件中各ts代码的执行顺序,生成抽象语法树,以获取第一文件中的各ts代码的逻辑关系。之后,可以获取并修改抽象语法树中第一节点表示的第一ts代码,以使第一文件包括的所有第一ts代码均标注有正确的数据类型,从而减少修改次数,提升修改效率。
7、结合第一方面,在一种可能的设计中,预设条件包括第一节点对应的子节点数大于或等于预设数量。
8、结合第一方面,在一种可能的设计中,预设条件包括第一节点对应的子节点数最多。
9、结合第一方面,在一种可能的设计中,预设条件包括第一节点不存在父节点。
10、结合第一方面,在一种可能的设计中,在至少一句ts代码中确定未标注有正确的数据类型的第一ts代码之后,可以提示用户修改第一ts代码。之后,接收用户输入的针对第一ts代码的修改操作。响应于该修改操作,在第一文件中修改第一ts代码,得到修改后的第一文件。
11、在该方案中,电子设备确定第一ts代码后,可以提示用户修改第一ts代码。用户可以自主为第一ts代码标注正确的数据类型标签。
12、结合第一方面,在一种可能的设计中,第一ts代码包括所述第一文件中未标注有数据类型的ts代码。
13、结合第一方面,在一种可能的设计中,第一ts代码包括所述第一文件中标注的数据类型错误的ts代码。
14、第二方面,本申请实施例提供了一种电子设备。该电子设备包括存储器和一个或多个处理器,存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行计算机指令时,使得该电子设备执行第一方面及其任一种可能的设计方式所述的方法。
15、第三方面,本申请实施例提供了一种芯片系统。该芯片系统包括一个或多个接口电路和一个或多个处理器。接口电路和处理器通过线路互联,接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令,当处理器执行所述计算机指令时,所述电子设备执行第一方面及其任一种可能的设计方式所述的方法。
16、第四方面,本申请实施例提供了一种计算机存储介质,包括计算机指令。当计算机指令在电子设备上运行时,使得电子设备执行第一方面及其任一种可能的设计方式所述的方法。
17、第五方面,本申请实施例提供了一种计算机程序产品。当计算机程序产品在计算机上运行时,使得计算机执行第一方面及其任一种可能的设计方式所述的方法。
1.一种应用程序的编译方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述第一文件中修改所述第一ts代码,得到修改后的所述第一文件,包括:
3.根据权利要求2所述的方法,其特征在于,所述预设条件包括所述第一节点对应的子节点数大于或等于预设数量。
4.根据权利要求2所述的方法,其特征在于,所述预设条件包括所述第一节点对应的子节点数最多。
5.根据权利要求2所述的方法,其特征在于,所述预设条件包括所述第一节点不存在父节点。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述在所述至少一句ts代码中确定未标注有正确的数据类型的第一ts代码之后,所述方法还包括:
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一ts代码包括所述第一文件中未标注有数据类型的ts代码。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一ts代码包括所述第一文件中标注的数据类型错误的ts代码。
9.一种电子设备,其特征在于,包括:存储器、一个或多个处理器;所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,所述电子设备执行如权利要求1-8中任一项所述的方法。
10.一种计算机存储介质,包括计算机指令,其特征在于,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
11.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-8中任一项所述的方法。