前言
- 在
Android
开发中,使用NDK
开发的需求正逐渐增大 - 但很多人却搞不懂
JNI
与NDK
到底是怎么回事 - 今天,我将先介绍
JNI
与NDK
& 之间的区别,手把手进行NDK
的使用教学,希望你们会喜欢
目录
1. JNI介绍
1.1 简介
定义:Java Native Interface,即 Java本地接口
作用: 使得Java 与 本地其他类型语言(如C、C++)交互
即在 Java代码 里调用 C、C++等语言的代码 或 C、C++代码调用 Java 代码
特别注意:
JNI是 Java 调用 Native 语言的一种特性
JNI 是属于 Java 的,与 Android 无直接关系
1.2 为什么要有 JNI
背景:实际使用中,Java 需要与 本地代码 进行交互
问题:因为 Java 具备跨平台的特点,所以Java 与 本地代码交互的能力非常弱
解决方案: 采用 JNI特性 增强 Java 与 本地代码交互的能力
1.3 实现步骤
在Java中声明Native方法(即需要调用的本地方法)
编译上述 Java源文件javac(得到 .class文件)
通过 javah 命令导出JNI的头文件(.h文件)
使用 Java需要交互的本地代码 实现在 Java中声明的Native方法
如 Java 需要与 C++ 交互,那么就用C++实现 Java的Native方法
编译.so库文件
通过Java命令执行 Java程序,最终实现Java调用本地代码
未完待续……