System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及软件,尤其涉及一种应用开发的方法、装置、电子设备及存储介质。
技术介绍
1、应用开发时一般使用静态编译语言,例如在操作系统为ios的移动设备上开发应用时,可以使用objective-c或者swift等语言。在使用静态编译语言进行应用开发时,每修改一次应用代码就需要对代码整体重新编译一次才能使修改的代码生效。当不需要大量修改代码,例如只是验证一个小功能,如修改应用的某个控件的坐标或者颜色,或者获取某个类对象的某个值并打印日志(log)时,还是需要在修改代码后对代码整体进行重新编译才能看到效果。因此,亟需一种在应用开发阶段即可动态运行代码的方法。
技术实现思路
1、本申请实施例提供一种应用开发的方法、装置、电子设备及存储介质,能够实现在应用开发阶段即可动态运行代码,提高应用开发的效率,以及提高代码调试(debug)的便利性。
2、第一方面,本申请实施例提供了一种应用开发的方法,应用于主机服务,包括:
3、从客户端获取采用动态语言编写的源代码,所述源代码用于操作宿主应用;其中,所述主机服务为运行于所述宿主应用的进程;
4、将所述源代码解析为抽象语法树;
5、通过调用操作系统的运行时运行所述抽象语法树以执行对所述宿主应用的操作,以及获取所述运行时返回的运行结果;
6、向所述客户端发送所述运行结果。
7、第二方面,本申请实施例提供了一种应用开发的方法,应用于客户端,包括:
8、向主机服务发送采
9、接收所述主机服务发送的运行结果,其中,所述运行结果是所述主机服务调用操作系统的运行时运行抽象语法树以执行对所述宿主应用的操作,并获取所述运行时返回的所述运行结果,所述抽象语法树是对所述源代码进行解析得到的。
10、第三方面,本申请实施例提供了一种应用开发的装置,应用于主机服务,包括:
11、获取单元,用于从客户端获取采用动态语言编写的源代码,所述源代码用于操作宿主应用;其中,所述主机服务为运行于所述宿主应用的进程;
12、解析单元,用于将所述源代码解析为抽象语法树;
13、运行单元,用于通过调用操作系统的运行时运行所述抽象语法树以执行对所述宿主应用的操作,以及获取所述运行时返回的运行结果;
14、发送单元,用于向所述客户端发送所述运行结果。
15、第四方面,提供了一种应用开发的装置,应用于客户端,包括:
16、发送单元,用于向主机服务发送采用动态语言编写的源代码,所述源代码用于操作宿主应用;其中,所述主机服务为运行于所述宿主应用的进程;
17、接收单元,用于接收所述主机服务发送的运行结果,其中,所述运行结果是所述主机服务调用操作系统的运行时运行抽象语法树以执行对所述宿主应用的操作,并获取所述运行时返回的所述运行结果,所述抽象语法树是对所述源代码进行解析得到的。
18、第五方面,本申请实施例提供了一种电子设备,其包括:处理器和存储器;
19、所述存储器,用于存储计算机程序;
20、所述处理器,用于执行所述计算机程序以实现第一方面所述的方法。
21、第六方面,本申请实施例提供了一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如第一方面或第二方面所述的方法。
22、第七方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如第一方面或第二方面所述的方法。
23、第八方面,本申请实施例提供了一种计算机程序产品,包括计算机程序指令,当计算机程序指令在计算机上运行时,使得计算机执行第一方面或第二方面所述的方法。
24、基于以上技术方案,通过将主机服务作为运行于宿主应用中的进程嵌入到宿主应用中运行,该主机服务在将从客户端接收的采用动态语言编写的源代码解析为抽象语法树ast后,通过调用操作系统的运行时runtime运行该ast实现执行对宿主应用的操作,获取并向客户端发送runtime返回的运行结果,从而能够在应用开发阶段即可动态运行代码,提高应用开发的效率,以及提高代码调试(debug)的便利性。
本文档来自技高网...【技术保护点】
1.一种应用开发的方法,其特征在于,所述方法应用于主机服务,包括:
2.根据权利要求1所述的方法,其特征在于,所述通过调用操作系统的运行时运行所述抽象语法树以执行对所述宿主应用的操作,包括:
3.根据权利要求1所述的方法,其特征在于,所述主机服务包括虚拟机,所述虚拟机包括JavaScript引擎或动态语言引擎;
4.根据权利要求3所述的方法,其特征在于,所述动态语言引擎支持面向过程的语法。
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权利1所述的方法,其特征在于,所述运行结果包括所述宿主应用的对象的属性和所述宿主应用的运行状态中的至少一种。
7.一种应用开发的方法,其特征在于,所述方法应用于客户端,包括:
8.根据权利要求7所述的方法,其特征在于,还包括:
9.一种应用开发的装置,其特征在于,应用于主机服务,包括:
10.一种应用开发的装置,其特征在于,应用于客户端,包括:
11.一种电子设备,其特征在于,包括:处理器和存储器;
12
13.一种计算机程序产品,其特征在于,包括计算机程序代码,当所述计算机程序代码被电子设备运行时,使得所述电子设备执行权利要求1~8中任一项所述的方法。
...【技术特征摘要】
1.一种应用开发的方法,其特征在于,所述方法应用于主机服务,包括:
2.根据权利要求1所述的方法,其特征在于,所述通过调用操作系统的运行时运行所述抽象语法树以执行对所述宿主应用的操作,包括:
3.根据权利要求1所述的方法,其特征在于,所述主机服务包括虚拟机,所述虚拟机包括javascript引擎或动态语言引擎;
4.根据权利要求3所述的方法,其特征在于,所述动态语言引擎支持面向过程的语法。
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权利1所述的方法,其特征在于,所述运行结果包括所述宿主应用的对象的属性和所述宿主应用的运行状态中的至少一种。
7.一种应用开发...
【专利技术属性】
技术研发人员:梁志远,
申请(专利权)人:腾讯数码深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。