NDKのハローワールド

2368 ワード

1. helloworld.c
#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.メソッドの呼び出し、実行