JNIを使った 最小構成
OpenCVとか触っていきたいので、ちょっとずつ学んでいきます。
ほぼメモ書きです。
とりあえず
MainActivity.java
Android.mk
hello-jni.c
の3ファイルが有り、ちゃんとEclipseの設定がしてあれば動く模様です。
JNIから文字列を取得してトーストに出す例です。
ほぼサンプルから持ってきただけです。
src/Packageへのパス/MainActivity.java
package com.example.ndksample; import android.app.Activity; import android.os.Bundle; import android.widget.Toast; import com.example.ndk_sample.R; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toast.makeText(this, stringFromJNI(), Toast.LENGTH_LONG).show(); } public native String stringFromJNI(); static { System.loadLibrary("hello-jni"); } }
jni/Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY)
jni/hello-jni.c
#include <string.h> #include <jni.h> jstring Java_com_example_ndksample_MainActivity_stringFromJNI( JNIEnv* env, jobject thiz ) { return (*env)->NewStringUTF(env, "Hello from JNI !"); }
takam