1、先去官网上下载NDK,最新的是android-ndk-r8d-windows:
http://developer.android.com/tools/sdk/ndk/index.html#Downloads
2、将下载后的tar包解压至任意文件目录下,例如D:\android-ndk-r8d
3、将此路径增加至系统环境变量中:
4、貌似NDK从v6还是几开始就继承了linux部分功能了,所以这里不再安装类似cywin
5、新建一个Android工程
6、在工程下,新建文件夹jni,在该目录下新建Android.mk、first-jni.c文件,具体代码如下:
first-jni.c
#include<String.h>
#include<jni.h>
jint
Java_com_amanda_firstjni_MainActivity_addint(JNIEnv* env,jobject thiz, jint a, jint b){
return a+b;
}
jint
Java_com_amanda_firstjni_MainActivity_plusint(JNIEnv* env,jobject thiz, jint a, jint b){
return a-b;
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := first-jni
LOCAL_SRC_FILES := first-jni.c
include $(BUILD_SHARED_LIBRARY)
7、修改Android工程中的代码
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />
</RelativeLayout>
MainActivity.java
package com.amanda.firstjni;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView mText;
//load .so
static{
System.loadLibrary("first-jni");
}
public native int addint(int a,int b);
public native int plusint(int a, int b);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mText = (TextView)this.findViewById(R.id.text);
int aa = addint(5,4);
int bb = plusint(5,4);
mText.setText("5+4="+aa+",5-4="+bb);
}
}
8、接着打开cmd,依次输入下述命令:
android update –p . –s
ndk-build
9、接着将Android clean,重新编译,运行后,即可看到设备上显示如下:
哈哈,我的第一个JNI测试程序完成了...