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选项
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选项
相关文章推荐
- Win10 Mobile技术预览版10136快速上手视频
- Leetcode_205_Isomorphic Strings
- Sicily|4190.Prime Palindromes
- 创建ListView的基本步骤
- 菜单之一:Menu基础内容
- 菜单之二:使用xml文件定义菜单
- SharedPreferences基础
- 使用SQLiteHelper创建数据库并插入数据
- Intent七大属性之总结
- Intent七在属性之一:ComponentName
- 如何在Eclipse中查看Android API源码以及support包源码
- Github android客户端源代码分析之一:环境搭建
- Fragment之一:Fragment入门
- Fragment之三:根据屏幕尺寸加载不同的Fragment
- Loader之一:基本原理
- Loader之二:CursorLoader基本实例
- Fragment之一:基本原理
- AdapterView及其子类之一:基本原理(ListView、ListActivity类型)
- AdapterView及其子类之二:使用ListActivity及ArrayAdapter创建列表
- AdapterView及其子类之三:基于ListView及ArrayAdapter实现列表