본문으로 바로가기
728x90

JNI 개발 프로젝트 생성 방법은 크게 2가지가 있습니다.

 

1. Android studio에서 제공해주는 JNI템플릿 프로젝트 사용하기

2. 기본 Android 프로젝트에 JNI라이브러리를 추가하여 사용하기

1. Android studio에서 제공해주는 JNI템플릿 프로젝트 사용하기

File > New > New Project > Native C++을 선택합니다.

이후, 프로젝트 이름, 패키지명, 언어, 버전 등을 선택해주면 Android studio에서 자동으로 템플릿 프로젝트를 만들어줍니다.

 

이 방법은 Java코드와 Native코드가 하나의 어플리케이션으로 동작합니다. 간단한 테스트 앱을 만들 때 좋습니다.

관련하여 다양한 샘플앱을 찾고 있으시다면 다음 저장소를 추천합니다.

이미지, 사운드, 카메라 등 멀티미디어 예제들이 풍부합니다.

 

NDK Samples (github.com/android/ndk-samples)

 

android/ndk-samples

Android NDK samples with Android Studio. Contribute to android/ndk-samples development by creating an account on GitHub.

github.com

다음 방법은 Native코드는 따로 라이브러리로 관리하고, Java에서는 이 라이브러리를 import하여 사용하는 방법입니다.

2. 기본 Android 프로젝트에 JNI라이브러리 형태로 사용하기

보통 대규모 프로젝트에서는 각자 개발하는 파트가 있기 때문에, 개발한 내용을 라이브러리 형태로 배포하는게 일반적입니다.

다시말해, 기능 구현은 라이브러리에서 하고, 테스트 및 UI 개발은 Java에서 하는 형태가 이상적이죠.

라이브러리를 빌드해서 aar 파일을 만들고, 이를 복사해서 프로젝트에 넣어주고 테스트하는 방식이 되는데,

문제는 이러한 개발 방법은 시간을 꽤 많이 잡아먹는다는 것입니다.

다음은 개발 시간을 줄이고, 프로젝트를 관리하기 용이한 방법을 소개합니다.

 

File > New > New Project > Empty Activity를 선택합니다.

프로젝트명을 입력하고, 사용할 언어를 선택합니다.

요새는 Kotlin이 대세라고는 하는데, 아직 익숙하지 않아서 Java를 선택하였습니다.

Finish를 선택하여 프로젝트가 생성되면 NDK경로를 설정합니다.

자세한 사항은 이전에 작성한 글을 참고하시길 바랍니다.

2020/12/13 - [Android] - [Android Studio] Android NDK(CMake)로 JNI(Java Native Interface) 개발하기 - 1

 

[Android Studio] Android NDK(CMake)로 JNI(Java Native Interface) 개발하기 - 1

0. 용어 설명 JNI Java Native Interface의 약자로 Java에서 Native(C/C++)로 작성된 프로그램을 연결하기 위한 코드 JNI를 통해 Java에서 Native 함수를 사용할 수 있고, 반대로 Native에서 Java 함수를 호출할..

naemo-naemo.tistory.com

NDK가 설정되었다면 다음과 같이 local.properties에 경로가 잡힙니다.

이제 app우클릭 > New > Module을 선택해서 라이브러리를 추가합니다.

모듈명을 적어주고, Finish를 선택합니다.

이후 settings.gradle에 모듈이 include 된 것을 볼 수 있습니다.

추가한 모듈 우클릭 > New > Folder > JNI Folder을 선택해서 JNI파일을 저장할 폴더를 추가합니다.

 

이제 작성해야 할 것은 다음 4가지입니다.

1. Java 코드(*.java)

2. JNI 코드(*.cpp, *.h)

3. C/C++ 코드(*.cpp, *.h)

4. CMake 코드(*.txt)

 

아래와 같은 구조를 만들기 위해서죠.

다음장에서는 각각의 코드를 어떻게 작성해야하는지 설명합니다.

728x90