Android StudioでのJNI環境作成覚え書き|Android開発
JNIのビルド用環境構築覚え書き。ndk-build
でライブラリファイルを作成するための基本的な手順です。
Android StudioプロジェクトでのJNIフォルダ
app/src/main
配下にjni
フォルダを作成する。
フォルダ内には以下のようなファイル・フォルダを用意。
- ヘッダフォルダ(必要に応じて)
- ソースフォルダ(必要に応じて)
- ライブラリフォルダ(必要に応じて)
事前にビルドしたスタティックライブラリなどを格納 - Android.mk
- Application.mk
- jniヘッダ
javah
などで作成 - ソースファイル
Android.mk
項目はAPIガイドのAndroid.mkを参照。
最小構成
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libsamplejni
LOCAL_SRC_FILES := sample.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
特にinclude
するファイルがないなら、LOCAL_C_INCLUDES
の行も不要。
LOCAL_SRC_FILES
、LOCAL_C_INCLUDES
はスペースで区切って複数指定可能。または改行で区切る。改行の場合は行末に「\」を記述する。
LOCAL_SRC_FILES := sample.c \
sample2.c \
sample3.c
事前に作成したスタティックライブラリを含める
下記はlibmystatic.a
を含める場合
LOCAL_PATH := $(call my-dir)
# libmystatic.a を PREBUILT_STATIC_LIBRARY で指定
include $(CLEAR_VARS)
LOCAL_MODULE := mystatic
LOCAL_SRC_FILES := $(LOCAL_PATH)/lib/libmystatic.a
include $(PREBUILT_STATIC_LIBRARY)
#;
include $(CLEAR_VARS)
LOCAL_MODULE := libsamplejni
LOCAL_SRC_FILES := sample.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
# PREBUILT_STATIC_LIBRARY として定義した mystatic をリンク
LOCAL_STATIC_LIBRARIES := mystatic
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
Application.mk
項目はAPIガイドのApplication.mkを参照。
APP_SHORT_COMMANDS := true
APP_PLATFORM := android-21
APP_ABI := armeabi-v7a