Android Studio创建JNI项目
创建project
NDK 环境配置
安装CMake与NDK两个插件
问题:NDK可能会出现安装fail,需要手动下载
下载地址:https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zip?utm_source=androiddevtools&utm_medium=website
下载后解压,配置到指定路径:
配置完成后,local.properties文件会显示如下内容(未显示可手动添加)
sdk.dir=C\:\\Users\\torres09\\AppData\\Local\\Android\\Sdk
ndk.dir=D\:\\gudaoweiji\\android-ndk-r15c-windows-x86_64\\android-ndk-r15c
JNI简介
JNI文档:JNI说明文档
JNI是一个java程序调用native程序的编程接口,native程序像c,c++等
为什么要使用JNI ?
java并不能进行所有的编程,此时需要和其他编程语言协作完成任务,例如:
- 标准Java类库不支持依赖于平台的功能。例如,linux下一切皆文件,访问文件节点支持最多的是c/c++语言
- 已经用其它语言编写的库,希望使其通过JNI的Java代码访问
JNI可以做哪些事情?
- 在java层,可以实现对native函数调用
- 在native层,可以创建,检查和更新Java对象(包括数组和字符串),调用Java方法。捕捉和抛出异常等
JNI设计
JNI实现架构如下: java层(Java VM) ------- JNI interface ------ Native层
JNI拥有一套机制来实现 java层与native层的相互调用。 例如:(源码均在frameworks\base\media里面)在frameworks\base\media里面,有java(java代码)和jni(c++代码)两个目录,jni目录编译可生成libmedia_jni.so库,java可以链接libmedia_jni.so从而实现对c++代码的调用。
Java