안드로이드(Android) NDK 실행파일 프로젝트 예제

얼마 전에 안드로이드(Android) NDK로 실행파일을 만드는데 사용되는 BUILD_EXECUTABLE 이라는 변수를 소개 드렸습니다. 하지만 잘 되지 않는다고 말씀하시는 분들이 있어서 예제 파일을 제공해드립니다. 여기 있습니다.

hello.zip 파일을 NDK의 apps 디렉토리에 푸시면 됩니다. 디렉토리가 apps/hello/project 이런 식으로 되면 됩니다. 이제 Cygwin 에서 다음과 같은 명령을 통해 결과를 확인하실 수 있습니다. 저는 1.6 NDK를 사용했습니다. 생성되는 실행파일은 1.5 용입니다. 미리 1.5 버전의 에뮬레이터를 띄워두세요.

cd /your/ndk/root
make APP=hello
adb push apps/hello/project/libs/armeabi/hello /data
adb shell chmod 0775 /data/hello
adb shell /data/hello

  hello 라는 글자가 인쇄되면 정상입니다.  1.6 NDK로 만들어진 실행파일의 몇 가지 중요한 특성에 대해 부연 설명하겠습니다.

  •  1.5 버전의 API 를 사용합니다. 1.6 버전을 사용하시려면 옵션을 설정하셔야 합니다.
  • Release 모드로 빌드 되었습니다. 디버깅이 가능하기는 하지만 최적화 옵션이 동작 중이라 디버깅에는 적당하지 않습니다.
  • Thumb 코드가 생성되었고, Arm 코드와 혼용할 수 있도록 설정되어 있습니다.
  • 하드웨어 VFP를 사용하지 않습니다.

 참고로, 최근 릴리즈한 android-gcc 를 사용하면 좀 더 간단히 실행파일을 빌드 하실 수 있습니다. 다음 한 줄로 동일한 결과를 얻으실 수 있습니다.

android-gcc -DNDEBUG hello.c -o hello

관련 포스트: