본문 바로가기

안드로이드

Android SDK 설정 이후 사용예시

새로 생성된 모듈인 Android Lib에서, 기존과 동일하게 Java Class를 생성.

 

이름은 자유로 하되, 예시에서는 NativeCode로 지정.

 

static {
        System.loadLibrary("ndklib");
}

ndklib는 생성한 Android Lib의 이름을 설정.

public native String nativeString();

사용할 함수의 설정을하면 된다. 여기서는 String 타입을 리턴하는 Argument가 없는 간단한 코드.

 

작성이 완료된 후에 이전에 설정해 둔 External Tools를 사용하려 하면 인식이 안된다.

[Ctrl+Shift+F10]이나 오른쪽 클릭을 통해 build를 하자.

 

이후 헤더파일을 생성하면 작동이 잘 되는것을 알 수 있다.

 

 

Function의 name은 Java_[패키지 명]_[lib 이름을 포함한 클래스 이름]_[native function 이름]

으로 구성된다.

Argument는 다음과 같다.

JNIEnv : JNI의 환경정보가 담긴다.

Jobject : 현재 클래스를 가리킴

이후에 생성되는 Argument는 사용할 함수의 Argument와 동일하다.

 

 

헤더파일의 생성이 끝나면, jni 폴더에 .cpp파일을 생성하고 코드를 작성하면 된다.

여기서, 헤더의 include는 방금 생성된 헤더파일, 함수명은 위 헤더의 15-16번째 줄과 동일하게 작성한다.

 

 

 

 

이후 작업은 gradle과 연동이다.

jni폴더에 Android.mk 라는 File을 생성 후 다음과 같이 작성한다.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := ndklib

FILES := NativeCode.cpp

LOCAL_SRC_FILES := $(FILES)

LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)

LOCAL_MODUL에는 생성한 Android Lib의 이름을 작성

FILES에는 작성한 cpp코드의 이름을 작성

이후, Java>(lib 이름) 안에있는 Java클래스 파일을  오른쪽 클릭하고, gradle 연동을 한다.

 

Bulid System은 이전 External Tools인 ndk-build를, Project Path는 방금 작성한 Android.mk파일이다.

 

이작업을 완료하면, 해당 lib의 gradle에 설정된 것을 알 수 있다.

 

 

이후 Java클래스 파일을 오른쪽 클릭하고, External Tools인 ndk-build를 실행한다.

 

 

 

 

Nation Lib 사용법은 다음과 같다.

 

방금 만든 Lib 객체를 생성하고, [ALT+ENTER]으로 추가해준다.

 

여기서 Add dependency on module을 클릭.

 

app의 gradle에 추가된 것을 볼 수 있다.

'안드로이드' 카테고리의 다른 글

Android NDK Bitmap에 대한 Description  (0) 2020.04.18
Android NDK 사용법  (0) 2020.04.14