[Android] Android Studio에서 NDK 빌드하기

http://blog.naver.com/chc07ktm/220198738523 참고

eclipse에서 Android studio로 옮긴뒤, ndk를 빌드해야할 일이 생겼습니다.

( 역어샘블링을 힘들게 하기위해서 🙂

기본 안드로이 개발자 사이트에는 Comming soon으로 되어 있어 불가능한줄 알았지만, :)구글선생님 덕분에 아주 쉽게 셋팅했습니다.

설명은 ndk에 기본 샘플인 hello-jni를 기준으로 하겠습니다.

먼저 android studio에서 hello-jni프로젝트를 오픈합니다.

소스를 담기위한 기본 폴더를 위와 같이생성해줍니다.

– src/main 폴더 밑에 jni폴더와 libs폴더를 만들어 줍니다.

local.properties파일에 다음과 같이 ndk경로를 추가해 줍니다.

ndk.dir=/Users/youngchilcho/Documents/Development/android/ndk/android-ndk-r10c

마지막으로 build.gradle파일내에 jni컴파일을 위한 작업을 추가합니다.

————————————————————————————————————————————

ndk {

moduleName “hello-jni”

}

sourceSets.main{

jni.srcDirs = []

jniLibs.srcDir ‘src/main/libs’

}

task buildNative(type: Exec, description: ‘Compile JNI source via NDK’) {

def ndkDir = project.plugins.findPlugin(‘com.android.application’).getNdkFolder()

commandLine “$ndkDir/ndk-build”,

‘-C’, file(‘src/main/jni’).absolutePath,

‘-j’, Runtime.runtime.availableProcessors(),

‘all’,

‘NDK_DEBUG=1’

}

task cleanNative(type: Exec, description: ‘Clean JNI object files’) {

def ndkDir = project.plugins.findPlugin(‘com.android.application’).getNdkFolder()

commandLine “$ndkDir/ndk-build”,

‘-C’, file(‘src/main/jni’).absolutePath,

‘clean’

}

clean.dependsOn ‘cleanNative’

tasks.withType(JavaCompile) {

compileTask -> compileTask.dependsOn buildNative

}

————————————————————————————————————————————

혹시나 소스가 필요한 분들을위해 컴파일 가능한 (ndk 경로는 사용자의 설정에 맞게 셋팅하세요 🙂 소스를 첨부합니다.

참고로 샘플에 사용된 ndk 경로는 아래와 같습니다.


Advertisements
[Android] Android Studio에서 NDK 빌드하기

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s