参考 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

ubuntu ndk 开发-LMLPHP

2. 参数配置

ubuntu ndk 开发-LMLPHP


二、Eclipse关联ndk-build(自建Builder方法)

1. Project->Properties->Builders->New,新建一个Builder

ubuntu ndk 开发-LMLPHP

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即可

ubuntu ndk 开发-LMLPHP

2.2 Refresh

ubuntu ndk 开发-LMLPHP

2.3 Build Options

ubuntu ndk 开发-LMLPHP

ubuntu ndk 开发-LMLPHP

注: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.

ubuntu ndk 开发-LMLPHP

4. 配置NDK编译路径,Project->Properties,如下图,其中Build-Command中ANDROID_NDK为环境变量中配置的Android-NDK路径;Build-Directory为当前工程目录

ubuntu ndk 开发-LMLPHP

ubuntu ndk 开发-LMLPHP

5. 配置工程属性,Project->Properties,如下图,本例以OpenCV为例,其中CNU C和GNU C++中配置的是OpenCV的链接库

ubuntu ndk 开发-LMLPHP


========

05-21 11:13