NDK Maping 发布啦
-
-
类目:知识大全
-
联系人:
-
微信号:
-
Q Q 号:
-
手机号:
-
浏览量:
327
【商户信息】
【货源详情】
前言何老师又来发福利了。做NDK开发的朋友们有福了~首先感谢博士。如果不是你的催命符,真的不会有这篇文章。作为催促我的代价,可口可乐不见了。)主要工作是完成c。
序
何老师又来送福利了。做NDK开发的朋友有福了~
首先谢谢你,医生。如果不是你的催命符,真的不会有这篇文章。作为催促我的代价,可口可乐没有跑掉。
的主要工作是完成从JVM层到JNI层的类映射。通常,当我们开发JNI时,转班是不可避免的。但是,JNI提供的API使得代码并不简单,大量容易出错的手工劳动由此而来。看一下下面的代码:
每个人都能看懂吧?就是调用JVM层类的方法,但是要耗费这么多代码。那想象一下如果是操作或者其他复杂类型呢?十行代码可能做不到。而这也是诞生的初衷,就是帮助开发者完成类的映射。
我们举个具体的例子看看效果。特别是,接受的映射类文件必须是。原因很简单。一方面这个类解析起来足够简单,另一方面我比较懒。看这样一个类:
想象一下用JNI操作这样一个类需要多少代码。你还记得方法签名是什么样的吗?当然,现在你说不记得也没关系。在的帮助下,开发人员不需要记住任何与类操作相关的内容。
简单看一下命令参数。当您直接输入命令时,可以看到以下参数提示:
指示目标语言。目前可以生成C和Pascal的类映射,也就是生成Makefile,数组作为参数传入时数组的最大下标,生成文件的输出位置。如果没有这样的目录,将创建一个新目录。当然,你最后要跟上的目录会自动映射所有文件。
完整的命令如下:
是的,你没有看错。生成的代码可以不做任何修改直接编译。此时,在JNI层的代码中,有一个与JVM层形式相同的类,可以直接操作。
而最关键的是产生了两种方法:
也很清楚,一个是把JobProject对应的类翻译成JNI的类,一个是把JNI的类翻译回JobProject。通过这两种方法,可以实现映射。在实际开发中,基本上只需要调用这两个方法,其他所有操作都与平台和语言本身有关。
下面是映射表。参考这个表,可以知道生成代码时的规则。
科特林
C
帕
调用
(同Internationalorganizations)国际组织
(同Internationalorganizations)国际组织
整数
精英特
字节
无符号字符
字节
jbyte
短的
短的
短整型
jshort
长的
龙龙
Int64
金龙
浮动
漂浮物
延长
jfloat
两倍
两倍
两倍
jdouble
布尔代数学体系的
弯曲件
布尔代数学体系的
JB布尔
茶
茶
茶
jchar
线
线
线
jstring
目录
目录
FPGList
作业对象
地图
地图
FPGMap
作业对象
一组
设置
FPGList
作业对象
排列
[数组]
[数组]
jobobjectarray
对于一个生成的代码,需要对其进行验证。它还提供了验证的能力。就用吧。
参数基本和的类似,需要选择验证码的语言和原生成代码的语言,还需要JVM验证用的包名。如果需要在编译完验证库后将其复制到其他项目中,可以使用参数。
该命令的示例如下:
此时,用于Kotlin验证的代码将被生成并直接引入到项目中。
为了安全起见,还提供了更复杂的类映射示例代码,下载地址可以在项目的自述文件中找到。
八达通地址:rarnu/ndkmapping