一、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外部使用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. team geek

    1. 转载自http://book.douban.com/review/6007037/,版权归丸子(^.^)v所有. New Google employees (we call “Nooglers” ...

  3. 【转】Android4.4 之Bluetooth整理

    原文网址:http://www.cnblogs.com/shed/p/3737016.html Android 4.4上蓝牙协议栈采用的是BRCM和Google共同开发的bluedroid,代替了之前 ...

  4. HDOJ/HDU 1982 Kaitou Kid - The Phantom Thief (1)(字符串处理)

    Problem Description Do you know Kaitou Kid? In the legend, Kaitou Kid is a master of disguise, and c ...

  5. 如何让虚拟目录里面的webconfig不继承网站的设置

    在一个网站 中国红木网 下 建一个虚拟目录,结果虚拟目录系统会调用 中国红木网 上的web.config, 在网上找到以下解决方案 在(如根目录)所在的Web.config加上 如:<locat ...

  6. Codeforces 264B 数论+DP

    题目链接:http://codeforces.com/problemset/problem/264/B 代码: #include<cstdio> #include<iostream& ...

  7. 前端自动生成/加载CSS

    前言: 1.我很懒! 2.写样式时,很多时候需要单独设置长度.宽度.内间距.外间距等.于是,就会有很多CSS代码会出现很多类似以下的代码: .w20: { width: 20px; } .mt10: ...

  8. C语言宏与单井号(#)和双井号(##)

    C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操 ...

  9. 【oracle】初学jobs

    含义:job是oracle的一种对象,可以理解为定时执行的程序 目的:定时自动执行特定代码 照猫画虎--创建job 1.创建测试表JOB_TEST create table JOB_TEST(a da ...

  10. springsecurity4+springboot 实现remember-me 发现springsecurity 的BUG

    前言:现在开发中,记住我这个功能是普遍的,用户不可能每次登录都要输入用户名密码.昨天准备用spring security的记住我功能,各种坑啊,吐血 . 先看下具体实现吧. spring securi ...