NDK学习笔记
博客专区 > 厚德 的博客 > 博客详情
NDK学习笔记
厚德 发表于3年前
NDK学习笔记
  • 发表于 3年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

命令: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选项


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 51
码字总数 33193
×
厚德
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: