一、android NDK编程步骤

  • java文件中声明native方法。
  • android工程根目录新建jni文件夹。
  • 调用javah命令为第一步声明的native方法生成相应的.h头文件。

    通过windows命令行窗口进入到该工程根目录下执行如下语句,便可生成对应的.h头文件:

    javah -classpath bin/classes;D:\yinz\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar -d jni com.example.hellondk.MainActivity

    javah命令的相关参数可在命令行输入:javah,然后回车即可查看

    该命令执行后将在工程根目录下的jni文件夹下生成对应的.h头文件。

  • jni目录下新建.c源文件,对.h中的方法进行实现。
  • 编写android.mk文件(NDK demo中拷贝即可,拷贝后需自行修改相应参数,如生成的.so文件名,需要编译的.c源文件等)。

    NDK解压包的 samples,文件夹下存放了相关的demo工程。

  • 工程根目录执行:ndk-build生成对应的.so文件(此处可配置使eclipse自动编译,则可省略该步骤)。
  • java中加载该.so文件,并调用该方法。

二、eclipse相关配置

  • 配置eclipse自动编译生成.so文件

  android工程右击-->properties,如下所示:

    

如上图所示,未配置前,Builders列表中没有“ndk-builder”选项。

此处点击“New”选项,新增一个builder,如下图所示:

选择“OK”继续:首先配置“Main”选项卡

然后再配置“Build Options”选项卡,如下:

点击“apply”-->“OK”即可。

  • eclipse中配置“javah”命令

点击“Run” -->“External Tools” -->“External Tools Configurations”,弹出如下配置框:

  • eclipse中配置“javap”命令

  方法与配置javah相识,配置参数如下:

 配置完成后便可直接在eclipse中,通过点击相应的按钮快速执行:javah生成头文件和javap查看方法签名,而不用再在命令行窗口输入一长串命令执行相应操作,其中方法签名,在jni函数中调用java对象的方法时会用到。

  • 配置JNI编码时的代码提示

  工程右击-->"Android Tools" -->"Add Native Support"-->"finish".

  然后再:工程右击-->"Properties",如下图配置:

上图中所选路径为:D:\yinz\adt-bundle-windows-x86_64-20131030\android-ndk-r10b\platforms\android-L\arch-arm\usr\include

配置完之后,在编写相应的jni方法时便可通过eclipse的代码提示功能来进行jni方法提示。

Android NDK学习总结的更多相关文章

  1. Android NDK学习(2)Windows下NDK开发环境配置

    转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817386.html 一.配置好Android开发环境 二.下载安装安卓NDK   ...

  2. Android NDK 学习之传递类对象

    本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...

  3. Android NDK学习(一):目录结构解析

    我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...

  4. Android NDK学习(1) 简介

    转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817385.html 一.What is the NDK? The Android ...

  5. Android NDK学习记录(一)

    一.NDK环境在Mac中部署 1.准备eclipse,android sdk安装包,android ndk安装包(http://dl.google.com/android/ndk/android-nd ...

  6. Android NDK 学习之在C中抛出异常

    本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...

  7. Android NDK 学习之调用Java函数

    本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...

  8. Android NDK 学习之在C中调用Java的变量和静态变量

    本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...

  9. Android NDK 学习之接受Java传入Object数组

    本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...

随机推荐

  1. Javascript水平提升

    1,学习js分几个阶段,没入门,入门初学者,中级水平,高级水平,ppt水平. 2,没入门的如何学习? 我当初是先学jquery,有css和html基础,有css基础看jq的语法很简单,就是选择符,jq ...

  2. statspack系列5

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-5/ 作者:Jonathan Lewis 前些天,有人给我发了 ...

  3. .net 与 javascript脚本的几种交互方法

    1.asp.net呼叫js Response.Write("<script language=javascript>"); Response.Write("a ...

  4. HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))

    扫雷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  5. HDOJ --- 1159 Common Subsequence

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  6. 曾经记录——asp.net中的点滴

    “<%#....%>”这是数据绑定,里面可以调用C#的方法,比如在数据控件里执行绑定某个字段<%# Eval("Name")%>这样帮顶一个Name的字段. ...

  7. Android游戏与应用开发最佳学习路线图

    Android 游戏与应用开发最佳学习路线图 为了帮助大家更好的学习 Android,并快速入门特此我们为大家制定了以下学习路线图,希望能够帮助大家. 一.路线图概括: 二.具体需要掌握知识点: 三. ...

  8. 高级IO复用应用:聊天室程序

    简单的聊天室程序:客户端从标准输入输入数据后发送给服务端,服务端将用户发送来的数据转发给其它用户.这里采用IO复用poll技术.客户端采用了splice零拷贝.服务端采用了空间换时间(分配超大的用户数 ...

  9. HDU 5750 Dertouzos

    Dertouzos Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  10. PAT 1080. Graduate Admission (30)

    It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...