1.和java的不同
- 本地方法声明不同
//java声明方式
public static native void testJNI();
//kotlin声明方式
external fun testJNI()
- 生成c头文件方式不同
JAVA
在AS中java声明的native方法会直接提示未声明头文件,直接Alt+Enter就能生成,也可以点击下方的Terminal通过命令
生成

//格式 javah -d 存放头文件的目录 完整包名和类名 一般到app/src/main路径下执行
//示例
javah -d cpp com.example.firstjni.NDKUtil
Kotlin
kotlin代码AS不会提醒创建头文件,而且一开始不会生出class文件,需要先执行编译再使用javah,生成的class文件路径为

//格式 javah -d 存放头文件的目录 -cp 加载类的目录 完整包名和类名
//示例
javah -d src/main/cpp -cp /app/build/tmp/kotlin-classes/debug/ com.example.firstjni.NDKUtil
这样就可以看到cpp目录下生成了头文件

本文对比了Java和Kotlin在本地方法声明和生成C头文件过程中的不同。详细介绍了两种语言在JNI调用时的声明方式及如何生成对应的C头文件,对于跨语言编程和移动应用开发具有参考价值。
652

被折叠的 条评论
为什么被折叠?



