一、安装cygwin
1.进入http://cygwin.com/install.html
2.点击下载红色框住的setup.exe
3.下载好,如图,双击安装,下一步,如图
4.下一步,选择安装目录,如图
5.点击下一步,选择下载本地包目录(以后在安装时,不用再下载了),如图:
6.点击下一步,需要联网(花费一定时间)。
7.点击红线选项,将Default变为Install,如图:
8.点击下一步,安装(需要联网,花费一定时间)
9.等待安装完成
二、配置cygwin路径以及android NDK环境
1.下载NDK,android-ndk-r5b(现在最新版本是android-ndk-r5c),解压到任意目录(如D:/android-ndk-r5b)
2.打开目录D:/cygwin/home/电脑用户名(我的是D:/cygwin/home/Administrator),编辑.bash_profile文件,在最后加入两行:
ANDROID_NDK_ROOT=/cygdrive/d/android-ndk-r5b
export ANDROID_NDK_ROOT
三、配置hello-jni项目
1.将D:/android-ndk-r5b/samples/hello-jni项目拷贝到其他目录
2.打开Eclipse新建Android工程,选择Create project from exiting source,并选择拷贝的hello-jni项目
3.如图,新建一个libs目录
4.右击项目-属性,如图
5.点击New…,如下图配置Main标签
D:/cygwin/bin/bash.exe
D:/cygwin/bin
--login -c "cd /cygdrive/E/workspace/hello-jni/jni&&$ANDROID_NDK_ROOT/ndk-build"
6.配置Refresh标签,如图
点击Specify Resources…,选中libs
7.配置Build Options标签
四、编辑、编译、运行hello-jni项目
1.hello-jni是C编写的,改为C++,打开jni/Android.mk文件,将内容改为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
include $(BUILD_SHARED_LIBRARY)
2.将hello-jni.c文件名改为hello-jni.cpp,修改内容为:
#include<jni.h>
class CTest {
private:
int mId;
char* mName;
public:
CTest(int id, char* name) {
mId = id;
mName = name;
}
int getId() {
return mId;
}
char* getName() {
return mName;
}
void setId(int id) {
mId = id;
}
void setName(char* name) {
mName = name;
}
};
extern "C" {
JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(
JNIEnv* env, jobject thiz);
}
JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(
JNIEnv* env, jobject thiz) {
CTest* test = new CTest(0, (char*) "abc----0000");
char* cha = test->getName();
return env->NewStringUTF(cha);
}
3.CTest类完全是C++的代码了
4. HelloJni.java的代码不用修改
5.clean项目就可以运行了,如图: