The invention discloses a code processing device and a code processing method, which includes the first code layer, the second code layer, the middle layer, coupled with the first code layer and the second code layer; the first code layer is based on the first code implementation in the host environment of the virtual machine, including the installation of the code processing device. Application, used to invoke the second code method formed by second code to the middle layer; the middle layer, based on the second code implementation, is used to connect the first code layer and the second code layer, and in response to the call to the second code method, the second code method is called to the second code layer; the second code layer is based on the ability to be processed in a specific process. The second code implementation is compiled and run directly on the device to invoke the second code method formed by the second code to the middle layer; the first code method is executed in response to the call of the middle layer against the second code method. By implementing the invention, the calling logic of the method can be simplified and the difficulty of maintaining the code is reduced.
【技术实现步骤摘要】
代码处理装置及代码处理方法
本专利技术涉及计算机技术,尤其涉及一种代码处理装置及代码处理方法。
技术介绍
互联网特别移动互联网快速发展,智能手机、平板电脑等终端作为互联网访问互联网的入口而得到广泛使用,终端提供种类丰富的应用供用户选择、安装使用,而应用的代码使用的计算机语言往往与终端的操作系统代码所使用的用的计算机语言不同。以安卓(Android)系统的终端为例,安卓系统中安装的应用是基于Java代码实现,而安卓系统是基于C/C++代码实现。由于Java代码是基于Java虚拟机的宿主环境中运行,能够轻易地在不同处理器的终端中运行,对于开发者来说,可以忽略终端的处理器平台导致的差异而专注于应用自身功能的开发,提升应用的开发效率。使用Java代码开发应用时并不能满足全部开发需求,为了提高应用的开发效率,或者实现Java代码所不具有的功能,需要在应用的Java代码中调用安卓系统的本地代码(对于安卓系统来说,本地代码为C/C++代码)所实现的方法,也称为调用本地(Native)方法。Java平台提供了Java本地接口(JNI,JavaNativeInterface),用以支持在应用的Java代码中调用Native方法。同时,为了满足在本地代码中实现某些Java方法的功能,在本地代码中也存在调用Java方法的需求,为此,Java本地接口还支持在安卓系统的本地代码中反向调用Java方法,从而,实现Java代码和本地代码的互通。然而,为了实现Java代码和本地代码的互通,对于本地代码来说,不仅要响应来自Java代码的调用,还要响应来自安卓系统本地的调用,导致代码的调用逻 ...
【技术保护点】
1.一种代码处理装置,其特征在于,包括:第一代码层;第二代码层;中间层,与所述第一代码层耦合,并与所述第二代码层耦合;其中,所述第一代码层,基于在虚拟机的宿主环境中运行的第一代码实现,包括安装的应用,用于向所述中间层调用由第二代码形成的第二代码方法;所述中间层,基于所述第二代码实现,用于连接所述第一代码层和所述第二代码层,响应针对所述第二代码方法的调用,向所述第二代码层调用所述第二代码方法;所述第二代码层,基于能够在特定处理器上直接编译运行的所述第二代码实现,用于向所述中间层调用由所述第二代码形成的所述第二代码方法;以及,响应所述中间层针对所述第二代码方法的调用,执行所述第一代码方法。
【技术特征摘要】
1.一种代码处理装置,其特征在于,包括:第一代码层;第二代码层;中间层,与所述第一代码层耦合,并与所述第二代码层耦合;其中,所述第一代码层,基于在虚拟机的宿主环境中运行的第一代码实现,包括安装的应用,用于向所述中间层调用由第二代码形成的第二代码方法;所述中间层,基于所述第二代码实现,用于连接所述第一代码层和所述第二代码层,响应针对所述第二代码方法的调用,向所述第二代码层调用所述第二代码方法;所述第二代码层,基于能够在特定处理器上直接编译运行的所述第二代码实现,用于向所述中间层调用由所述第二代码形成的所述第二代码方法;以及,响应所述中间层针对所述第二代码方法的调用,执行所述第一代码方法。2.如权利要求1所述的装置,其特征在于,所述第二代码层,还用于向所述中间层反向调用由所述第一代码实现的第一代码方法;所述中间层,还用于响应所述第二代码层针对所述第一代码方法的反向调用,向所述第一代码层反向调用所述第一代码方法;所述第一代码层,还用于响应所述中间层针对所述第一代码方法的反向调用,执行所述第一代码方法。3.如权利要求1所述的装置,其特征在于,所述中间层,还用于在所述第一代码方法包括返回操作时,向调用所述第一代码方法的所述第一代码层以及所述第二代码层返回结果。4.如权利要求1所述的装置,其特征在于,所述第一代码层,还用于在向所述中间层调用所述第二代码方法之前,封装本地声明有所述第二代码方法的第一代码类,调用所述第一代码类的初始化方法;所述中间层,还用于响应所述第一代码层针对所述初始化方法的调用,对所述第一代码类在所述中间层对应的全局性数据进行静态初始化形成所述第一代码类的对象,并调用与所述第一代码类对应的第二代码类的静态初始化方法;所述第二代码层,还用于响应所述中间层针对所述静态初始化方法的调用,对所述第二代码层中所述第二代码类进行静态初始化,形成所述第二代码类的对象。5.如权利要求4所述的装置,其特征在于,所述中间层,还用于初始化所述第一代码类的相关联域的标识;初始化所述第一代码类在所述中间层的全局性的数据,初始化所述第一代码类相关方法的标识。6.如权利要求4所述的装置,其特征在于,所述第二代码层,还用于在所述第二代码层初始化所述第二代码类的全局变量、以及初始化所述第二代码类的静态成员变量。7.如权利要求4所述的装置,其特征在于,所述第一代码层,还用于调用所述第一代码类的构造函数中的创建方法;所述中间层,还用于响应针对所述创建方法的调用,创建与所述第一代码类对应的中间对象、以及与所述第一代码类对应的第二代码类,将所述中间对象的地址返回所述第一代码类的对象存储,调用初始化所述第二代码类的初始化方法;所述第二代码层,还用于响应针对所述第二代码类的初始化方法的调用,对所述第二代码类进行初始化。8.如权利要求7所述的装置,其特征在于,所述第二代码层,还用于初始化所述第二代码类的成员变量和分配内存。9.如权利要求7所述的装置,其特征在于,所述中间层,还用于在所述第一代码层调用所述第二代码方法时,通过所述第一代码类的对象存储的所述中间对象的地址,获取到所述地址指向的所述第二代码类的对象的地址,根据获取到的所述第二代码类的对象的地址调用所述第二代码方法。10.如权利要求1所述的装置,其特征在于,所述第一代码为Java代码,所述第二代码为操作系统的本地代码。11.一种代码处理方法,其特征在于,包括:中间层与...
【专利技术属性】
技术研发人员:边肖翔,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。