1.下载最新版本NDK
http://developer.android.com/tools/sdk/ndk/index.html
笔者32位系统
当前最新版本 http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86.zip
2.解压到自定义目录
配置环境变量
我的电脑->属性->高级->环境变量
找到系统环境变量下的path
点击编辑
末尾添加上D:\Android\android-ndk-r10
3.新建Android工程DemoNDK
在该工程下新建一个Folder文件夹jni
在jni文件夹里新建File文件为Demo.c和Android.mk
Demo.c内容为:
#include <jni.h>
jstring Java_com_z_ndk_MainActivity_HelloNDK(JNIEnv *env,jobject thiz)
{
return (*env)->NewStringUTF(env,"hello world from C");
}
注意:
com_z_ndk_MainActivity为你的包名和调用此接口的Activity
Android.mk内容为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Demo
LOCAL_SRC_FILES := Demo.c
include $(BUILD_SHARED_LIBRARY)
4.打开CMD命令行cd 进入到DemoNDK工程的jni目录下输入命令:ndk-build
5.选中工程按F5刷新一下
Layout目录下的xml文件代码如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ndk"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.z.ndk.MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:layout_centerInParent="true"
android:textSize="25sp"
/>
</RelativeLayout>
MainActivity代码如下
package com.z.ndk;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private RelativeLayout ndk;
public native String HelloNDK();
static{
System.loadLibrary("Demo");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ndk = (RelativeLayout)findViewById(R.id.ndk);
ndk.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, HelloNDK(), 1).show();
}
}
效果如下: