NDK(Native Development Kit) 는 Android 환경에서 JNI 기술을 사용할 수 있게 한다.
기본적인 원리와 사용방법은 JNI 와 같고 추가로 Native 코드가 Android 환경에서 빌드되어야 한다.
윈도우에서 NDK 사용하기
1. NDK 다운로드
http://developer.android.com/tools/sdk/ndk/index.html2. NDK 파일을 압축 풀기 (예 C:\android-ndk-r9)
3. ndk-build 가 있는 경로 환경변수에 등록
Path=%Path%;C:\android-ndk-r9
NDK_PROJECT_PATH=.
4. javah 로 .h 생성하기
안드로이드 프로젝트(예 com.Android_ServerMon.JNIManager)
JNIManager 클래스를 만들고 (package com.Android_ServerMon; 명시)
안드로이드 루트(예 D:\ysoftmanCode\Android_ServerMon) 위치에서
classpath 를 명시하여 다음과 같이 생성해야 된다.
javah -classpath .\bin\classes -jni com.Android_ServerMon.JNIManager
를 하면 com_Android_ServerMon_JNIManager.h 가 생성된다.
5. D:\ysoftmanCode\Android_ServerMon에서 jni 디렉토리 생성
6. D:\ysoftmanCode\Android_ServerMon\jni\에서 .h 에 대한 .cpp 구현(자세한 내용은 JNI 포스트 참고)
7. D:\ysoftmanCode\Android_ServerMon\jni\Android.mk (대소문자구분)작성
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := JNIImpl
LOCAL_SRC_FILES := JNIImpl.cpp
include $(BUILD_SHARED_LIBRARY)
8. D:\ysoftmanCode\Android_NDKTest\jni\Application.mk (대소문자구분)작성
APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-8
9. D:\ysoftmanCode\Android_NDKTest\ 에서 ndk-build 로 빌드
libs 에 Application 에서 지정한 APP_ABI 값의 디렉토리가 생기고
그 안에 빌드된 Native .so 파일이 생성된다.
10. java 소스에서 .so 로드하여 사용(자세한 내용은 JNI 포스트 참고)
참고로 안드로이드를 빌드하게 되면 .apk 내의 lib\플랫폼\.so 가 포함된다.