您的位置:首页 > 其它

NDK学习笔记

2015-06-17 10:27 274 查看
命令:ndk-build 编译项目

ndk-build clean 清除项目



创建NDK项目的步骤

1 创建一个jni目录 (用于放置c/c++代码)

2 编写nativejava层的方法 public static native String getStringFromC();

3 生成jni的头文件

使用javah命令生成头文件 例如 javah -classpath bin/classes;"F:\Program Files\Android\sdk\platforms\android-16\android.jar" -d jni com.example.hellondk.MainActivity

4 编写c/c++代码来实现生成的getStringFromC的c代码

5 编译项目ndk-build,需要有android.mk文件,LOCAL_SRC_FILES要编译的文件,LOCAL_MODULE编译后的名称

6 在静态代码块中加载本地库 System.loadLibrary("LOCAL_MODULE填写这个值")

7 直接可以调用。

交叉编译:就一个平台上生成另一个平台上可执行的代码

jni:java native interface 标准称为java平台的一部分,它允许java代码和其他语言写的代码进行交互。

jni的实现过程

编写java代码 .java --> 字节码 .class --> 生成c头文件 .h --> 编写c代码 .c --> 编译链接库文字 .dll或.os

链接库:

1 静态链接库 把所有依赖的库全部编译到一个文件中,文件大

2 动态链接库

Eclipse配置jni的配置

1 自动生成c 的头文件

菜单Run --> External Tools --> External Tools Configuration --> 左侧的Program右键 new --> Name填写名称generale_c++_header_file(可以自己随意填写) --> Location填写 ${system_path:javah} --> Working Directory填写${project_loc}\jni --> Argument 填写 -classpath ${project_loc}\bin\classes;"F:\Program Files\Android\sdk\platforms\android-16\android.jar" -d ${project_loc}\jni -jni ${java_type_name} --> 选择需要生成头文件的,进行run External Tools 选择刚刚generale_c++_header_file的选项就可以生成了

2 自动编译 preference --> Android --> NDK --> 填写ndk目录 之后关闭--> 右键你所需要自动编译的项目选择 Properties --> Builders --> 点击New选择Program --> 在选项卡Main中的Location 填写 F:\NDK\android-ndk-r9d-windows-x86_64\android-ndk-r9d\ndk-build.cmd ;Working Directory ${workspace_loc:/你项目名称} --> Build Options选项卡中勾选During auto builds

3 c++的代码提示 右键项目 Android Tools 选择Add Android Native Support选项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: