티스토리 뷰
이전에 NDK를 리눅스에서 빌드하는 방법을 올린적이 있습니다. 최근 다시 NDK를 제대로 해야할 일이 생겨 Eclipse를 통해 NDK 빌드하는 방법을 올리게 되었습니다. 이후 NDK에서 로그 찍는 방법이나 NDK에서 C++을 컴파일하는 아주 간단한 방법의 글들을 작성하려고 합니다. 우선 Eclipse에서 NDK 빌드하는 방법을 작성합니다.
최근 NDK가 업데이트 되면서 굳이 SDK를 사용하지 않고, UI까지 모두 NDK에서 처리하는 방식을 사용할 수 있게되었지만 아직 시도 해본적이 없어 이글을 우선 작성합니다.
NDK 다운로드
안드로이드 개발자 사이트로 접속하여 NDK를 다운 받습니다. NDK는 윈도우, 맥, 리눅스에서 다운 받을 수있으면 모두 32 bit와 64 bit용으로 분리되어 있습니다.
NDK 적용
이클립스에서 안드로이드 어플리케이션 프로젝트를 생성합니다. 생성 후 해당 프로젝트에 폴더인 jni 폴더를 생성합니다. libs 폴더는 자동으로 생성되니 추가할필요는 없지만 없다면 libs 폴더 역시 추가 생성해주시면 됩니다.
프로젝트 명위에서 오른쪽 마우스를 클릭하거나 alt+Enter(단축키)를 통해 프포젝트 설정으로 이동합니다. 프로젝트 설정 중에 수정할 부분은 없고, Builders를 선택합니다. 선택하면 아래와 같이 기본 4개의 빌드가 표시됩니다. 여기에 New 버튼을 눌러 추가를 해주면 됩니다.
2개의 type이 있는데 이 중 Program을 선택합니다.
NDK build를 설정하기 위해서 3가지를 추가해주어야 합니다. 1번째로 Main에서 ndk-build와 프로젝트를 선택합니다. Location에 아래와 같이 ndk-build를 추가합니다. 메뉴 중에 Browse File System을 선택하여 다운받아 압축을 푼 ndk 폴더의 ndk-build를 선택해 줍니다. 다음으로 Working Directory에 현재 프로젝트를 선택합니다. Browse Wrokspace...를 선택하여 현재 프로젝트를 지정하면 됩니다.
Refresh 탭에서 jni폴더를 지정해야 합니다. 아래 순서대로 클릭을 하면 됩니다. 그리고 3번의 Specify Resources... 버튼을 눌러 jni폴더를 지정해야 합니다.
다른 폴더는 선택할 필요 없고, 현재 프로젝트의 jni폴더만 지정하면 됩니다.
Build Options 역시 아래 번호 순서대로 누르면 됩니다. 단, 1번의 자동빌드는 선택사항이지만 작업의 편리성을 돕기위해서 적용해주는것도 나쁘진 않지만 속도가 느린 경우에는 적용하지 않는게 좋습니다. 3번을 클릭하여 libs 폴더를 지정하면 됩니다.
이번엔 libs 폴더를 지정합니다.
JNI 빌드
JNI 빌드를 위해서 간단한 테스트 코드를 작성하고 빌드를 하면 됩니다. 빌드 방법은 컨트롤 + F11번을 누르거나 안드로이드 실행을 하시면 됩니다. 아니면 Clean...을 선택하셔도 됩니다. 안드로이드로 바로 실행하면 ndk 빌드가 바로 진행되지 않는 경우가 있기에 아래와 같은 단계를 사용하는것을 추천드립니다. Clean...을 단축키가 지정되어 있지 않으므로 지정하여 편리하게 사용할 수 있습니다.
단축키 지정 방법
Window -> Preferences를 실행하고, General 탭의 Keys로 이동하여 검색탭에 Build clean을 검색하고 Binding 단축키 지정하시면 됩니다.
프로젝트만 선택하여 클린하시면 됩니다.
자동으로 build되고 so가 생성됩니다.
마무리
설정하는 부분이 조금 필요하지만 이후에는 이클립스만으로도 모든 빌드가 가능하기에 편리하게(?) 빌드가 가능합니다. 다음 글에는 NDK 빌드시 NDK에서 로그 작성하는 방법을 작성해보겠습니다. 이상으로 이클립스에서 빌드하는 방법에 대한 글을 마치겠습니다.
'Android Develop' 카테고리의 다른 글
NDK C++ 사용하기위한 Application.mk 정의 (0) | 2013.05.01 |
---|---|
Android NDK 작업 시 Log 찍기 (2) | 2013.04.07 |
Android SoftKeyboard 정보 불러오는 간단한 예제 (0) | 2013.03.25 |
Android 네비게이션 버튼 컨트롤 하기(View setSystemUiVisibility 사용) (0) | 2013.02.21 |
Android Swipe Views 예제 (30) | 2013.02.11 |
댓글