http://yueguc.iteye.com/blog/494016 下载NDK
http://cygwin.com/install.html 下载cygwin
安装cygwin
安装完成以后 运行cygwin 输入make -v gcc-v检查cygwin是否安装成功
下载NDK
http://cygwin.com/install.html 下载cygwin
安装cygwin
安装完成以后 运行cygwin 输入make -v gcc-v检查cygwin是否安装成功 如下图所示
如果安装成功在cygwin的安装目录里找到/home/username下的.bash_profile文件,用UE打开
在文件末尾加上
NDKROOT=/cygdrive/+"ndk的安装路径"(即下载的ndk解压的位置)
exprort NDKROOT
配置成功后重启cygwin,进入NDKROOT目录(cd $NDKROOT) 运行build/host-setup.sh 查看安装配置情况
如果看到这个画面,则win下ndk开发环境配置完成。
(2)建立测试NDK项目
在ndk安装目录下的apps新建一个目录为testNDK,然后用eclipse新建一个android项目,项目的location指向新建的testNDK目录,
1.新建一个类,里面有native方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package cn.test.testNDK;
2
3
4 public class MyJNI {
5 public native String getCString();
6 }
2.运行cygwin,进入项目bin目录,运行javah -jni cn.test.testNDK.MyJNI,生成cn_test_testNDK_MyJNI.h
3.在项目中新建jni目录,把cn_test_testNDK_MyJNI.h拷贝到jni目录里面
4.在jni目录里建立cn_test_testNDK_MyJNI.c文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <stdio.h>
#include <stdlib.h>
#include <cn_test_testNDK_MyJNI.h>
JNIEXPORT jstring JNICALL Java_cn_test_testNDK_MyJNI_getCString
(JNIEnv *env, jobject thiz){
(*env)->NewStringUTF(env,"HelloNDK----------HelloWorld");
}
5.建立Android.mk文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestNDK
LOCAL_SRC_FILES := cn_test_testNDK_MyJNI.c
include $(BUILD_SHARED_LIBRARY)
6.在TestNDK目录里建立application.mk文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := TestNDK
运行cygwin,进入NDKROOT目录,运行make APP=TestNDK
生产so文件。
在android中的activity中使用so
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.test.testNDK;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
static{
System.loadLibrary("TestNDK");
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView view = new TextView(this);
MyJNI j = new MyJNI();
view.setText(j.getCString());
this.setContentView(view);
}
}
运行android application