NDKのハローワールド
2368 ワード
1. helloworld.c
2.Android.mk
3.NativeHelloworld.java
4.ndkでプロジェクトディレクトリにhelloをコンパイルする.so
本人はlinuxシステムの下でコンパイルして、eclipseのlibs/armeabiの下に置きます
5.メソッドの呼び出し、実行
#include <string.h>
#include <jni.h>
/*
* Class: com_example_ndk_NativeHelloworld
* Method: hello
* Signature: ()Ljava/lang/String;
*/
jstring JNICALL Java_com_example_ndk_NativeHelloworld_hello(JNIEnv * env, jclass thiz) {
return (*env)->NewStringUTF(env, "HelloWorld! I am from JNI !");
}
2.Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#LOCAL_MODULE
LOCAL_MODULE := hello
LOCAL_SRC_FILES := helloworld.c
include $(BUILD_SHARED_LIBRARY)
3.NativeHelloworld.java
package com.example.ndk;
import android.util.Log;
public class NativeHelloworld {
public static native String hello();
static {
Log.i("NativeClass","before load library");
System.loadLibrary("hello");// .so , lib ,
Log.i("NativeClass","after load library");
}
}
4.ndkでプロジェクトディレクトリにhelloをコンパイルする.so
本人はlinuxシステムの下でコンパイルして、eclipseのlibs/armeabiの下に置きます
5.メソッドの呼び出し、実行