装在
第一步:创建一个Android project:
package com.test; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class JNITestActivity extends Activity { TextView textView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)findViewById(R.id.textView); String myString =getText();//调用native方法 textView.setText(myString); } static { System.loadLibrary("mylib"); //导入链接库 } public native String getText();//声明native 方法 }
第二步:创建文件夹jni包含两个文件source.c(这里可以先在eclipse中安装cdt插件:cdt - http://update.eclipse.org/tools/cdt/releases/new)、Android.mk。
source.c
#include <string.h> #include <stdio.h> #include <jni.h> jstring Java_com_test_JNITestActivity_getText (JNIEnv* env, jobject obj) { return (*env)->NewStringUTF(env, "Test Android NDK!"); }
Android.mk:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := mylib LOCAL_SRC_FILES := source.c include $(BUILD_SHARED_LIBRARY)
第三步:然后用cygwin编译source.c文件(操作如下):
这时候项目的目录变成了:
第四步:创建文件夹<project>/libs/armeabi,将obj/armeai/libmylib.so文件拷到<project>/libs/armeabi下面。
运行项目,结果如下: