NDK开发

来源:互联网 发布:p图片软件大全 编辑:程序博客网 时间:2024/05/18 03:40

首先介绍下什么是JNI,JNI全名jni java native interface java本地开发接口,它是用来让java语言和c/c++的语言相互调用的一种技术。


下面介绍下NDK的开发流程:

把ndk解压到一个文件夹下, 并且在系统的环境变量path中追加ndk的根目录: C:\IDE\android-ndk-r9

1. 在java代码中声明native方法.

2. 在window -> preferences -> Android -> NDK 把ndk的根目录配置进去.
   右键工程 Android Tools -> Add Native Support 写进去一个函数库的名字.

3. 使用javah命令生成.h的头文件, 把头文件拷贝到工程的jni目录下.

4. 实现c代码: 把生成的.h头文件引入进来(使用双引号方式引入).

5. 处理错误和代码提示: 右键工程 -> Properties -> C/C++ General -> Paths and Symbols -> Includes -> Add 把android-ndk-r9\platforms\android-9\arch-arm\usr\include配置进去.

6. 把c代码对应native方法实现了.

7. 在java代码中加载.so库文件, 调用native方法.



C++开发流程.

在c的语法中JNIEnv是JNINativeInterface*结构体的一级指针变量.

(**env).NewStringUTF(env, "hello from c!!");

在c++语法中JNIEnv是_JNIEnv

(*env).NewStringUTF("hello from c++");



c端返回给java中文: 把工程所有的文件修改成utf-8的编码.

如果修改完编码之后, 工程不能运行. Scanner Configration Builder
解决方法: 把工程close project 再 open project.

0 0