【Android】第一个JNI测试程序

1、先去官网上下载NDK,最新的是android-ndk-r8d-windows:

http://developer.android.com/tools/sdk/ndk/index.html#Downloads

2、将下载后的tar包解压至任意文件目录下,例如D:\android-ndk-r8d

3、将此路径增加至系统环境变量中:

05r2e02i.nl4

qmxxns1a.f2o

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

2xwhh3uk.3ir

9、接着将Android clean,重新编译,运行后,即可看到设备上显示如下:

image

哈哈,我的第一个JNI测试程序完成了...

原文地址:https://www.cnblogs.com/Amandaliu/p/2971257.html