参考 https://developer.android.com/ndk/index.html
配置
下载android-ndk-r10d-linux-x86_64.bin ,运行自解压。
~/.bashrc中加入
export ANDROID_NDK=/home/james/android/android-ndk-r10d
export PATH=$ANDROID_NDK:$PATH
配置eclipse
Window > Preferences> android
选择NDK. 路径
https://developer.android.com/ndk/guides/setup.html
测试编译是否成功
命令行:
cd android-ndk-r10d/samples/hello-jni && ndk-build
或是
ndk-build -C android/android-ndk-r10d/samples/hello-jni
eclipse中:
import_> android –> existing android code into workspace 才可以。
builder添加 newbuiler,参照下文 《Eclipse自动编译NDK/JNI的三种方法》 中的第二种方法
自己编写:
参考learning android 第15章 ndk开发
和书中不同,要cd到 bin/classes目录中,执行
javah -jni com.marakana.FibLib
创建相应的JNI头文件
两种注册jni的方法:静态注册(java代码生成class,javah生成头文件)、动态注册(JNINativeMethod, JNI_OnLoad注册)
深入学习参考: 《深入理解android 卷一》第2章 深入理解jni
【Android】Eclipse自动编译NDK/JNI的三种方法
SkySeraph Sep. 18th 2014
Email:[email protected]
一、Eclipse关联cygwin
1. 工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program
2. 参数配置
二、Eclipse关联ndk-build(自建Builder方法)
1. Project->Properties->Builders->New,新建一个Builder
2. 参数配置
2.1 Main
①Name:NDK_Builder
②Location为ndk-build.cmd的路径,可以如图所示绝对路径,也可以以环境变量的形式,即 ${ANDROID_NDK}\ndk-build.cmd,其中ANDROID_NDK为配置的NDK路径
③Working Directory,为当前的工程下。
这里的${}的表达是使用了EC的环境变量,可以使用Variables...按钮找到一些3 EC的环境变量。
对于Linux上的配置,和这里的配置一样,只是把Location的地址改为ndk-build即可
2.2 Refresh
2.3 Build Options
注:Linux环境下只需修改ndk-build.cmd为ndk-build即可
三、Eclipse关联ndk-build(利用CDT的方法)
1. 前期准备:Eclipse环境+Android环境+Eclipse C/C++环境
2. 编写Android JAVA/JNI代码,可参考OpenCV实例1
3. 将Android项目转换为C/C++项目(使其具备C++属性),如下图,New -> Other -> C/C++ -> Convert to a C/C++ Project.
4. 配置NDK编译路径,Project->Properties,如下图,其中Build-Command中ANDROID_NDK为环境变量中配置的Android-NDK路径;Build-Directory为当前工程目录
5. 配置工程属性,Project->Properties,如下图,本例以OpenCV为例,其中CNU C和GNU C++中配置的是OpenCV的链接库
========