▼Androidメモ▼
Android NDK
Android NDK
Android NDKはパフォーマンスが要求される部分をネイティブコードで実装するためのツール。
アプリケーションを部分的に高速化したい人のためのツールであり、ネイティブコードのみでのアプリケーションを作成するツールではない。
Android SDK用の補助ツールのため、先にAndroid SDKをインストールしておく必要がある。
現在のサポート対象はARMv5TE。
NDKに含まれるコンテンツは次の通り。ネイティブコードで利用できるライブラリは次の通り。
- C/C++のソースコードをビルドするためのツールおよびメイクファイル
- ドキュメント・サンプル・チュートリアル
- libc, the standard C library
- libm, the standard math library
- the JNI interface
- libz, the common ZLib compression library
- iblog, used to send logcat messages to the kernel
NDKのインストール
NDKのインストール手順は次の通り。
成功時にはHost setup completeと表示される。
- Android SDKのインストール。
- Android NDKのダウンロードした後に解凍し、任意の場所に配置。
- ターミナルから「android-ndk-1.5_r1/build/host-setup.sh」を実行。
NDKの利用手順
チュートリアル
- 自作のネイティブコードを「android-ndk-1.5_r1/sources/<my_src>/」に配置。
- ソースのメイクファイルを「android-ndk-1.5_r1/sources/<my_src>/Android.mk」に生成。
- アプリケーションのメイクファイルを「android-ndk-1.5_r1/app/<my_app>/Application.mk」に生成。
- ターミナルから「make APP=<my_app>」を実行してビルド。
ネイティブ メソッドから文字列をロードするだけのシンプルなアプリケーション「hello-jni」を作成する。
共有ライブラリとして実装し、アプリケーションの UI に表示する。
- ネイティブコード「android-ndk-1.5_r1/sources/sample/hello-jni/hello-jni.c」が存在することを確認。
hello-jni.c #includejstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ) { return (*env)->NewStringUTF(env, "Hello from JNI !"); }
- ソースのメイクファイル「android-ndk-1.5_r1/sources/sample/hello-jni/Android.mk」が存在することを確認。
Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_SRC_FILES := hello-jni.c include $(BUILD_SHARED_LIBRARY)- アプリケーションのメイクファイル「android-ndk-1.5_r1/app/hello-jni/Application.mk」が存在することを確認。
Application.mk APP_PROJECT_PATH := $(call my-dir)/project APP_MODULES := hello-jni- ターミナルから「make APP=hello-jni」を実行してビルド。
成功すると「android-ndk-1.5_r1/apps/hello-jni/project/libs/armeabi/libhello-jni.so」に出力される。- Android SDKをインストールしたEclipseを起動。
- Eclipseのメニュー「File→New→Android Project」を選択。
- 「Create project from existing...」で先ほど生成した「android-ndk-1.5_r1/apps/hello-jni/project/」を選択。
- ビルドして実行。
−戻る−