300x250
반응형

안녕하세요.

이번에 안드로이드 개발을 시작하면서 미들웨어의 함수를 호출해야 하는 일이 생겼습니다.

백그라운드는 전부 C++코드이기 때문에 직접 호출이 필요한 경우가 있습니다.

간단하게 호출하는 방법을 소개 하려고 합니다.

 

1. 코드 이름 및 종류

- exam.kt, mw.cpp

 

2. 간단한 소스 

exam.kt

extern fun testNativeCode()

fun call() {
	testNativeCode
}

여기서 위 내용처럼 하면 Android studio에서 native code를 생성 할 것인지 묻는다.
그때 만들어질 위치를 선택해주면 자동으로 생성 한다.

 

mw.cpp

#include "exam.h"

extern "C"
JNIEXPORT void JNICALL
Java_com_mobipintech_zui_MobileMainDialog_testNativeCode(JNIEnv *env, jobject thiz) {
    // TODO: implement at3NativeTestFunc()
    at3NativeTestFunc();
}

위 내용은 Java_com_mobipintech_zui_MobileMainDialog까지는 경로.
TestNativeCode는 함수 이름이다.

 

exam.cpp

void atNativeTestFunc()
{
	printf("TEST 코드 입니다.\n")
}

 

exam.h

void atNativeTestFunc();

 

이렇게 사용할 내용을 c++에 정의 해놓고 코틀린 내부에서 호출해서 직접 사용 하면 됩니다.

 

728x90

+ Recent posts