언제 안쓰나?
NDK는 어플리케이션 패키지에 네이티브코드를 포함시킬 수 있도록 제공되는 도구다. 단말에 내장되는 엔진 성격의 시스템을 만드는데는 적합하지 않다. 단말에 내장되는 엔진 성격... 좀 설명이 거시기한데... 암튼 공장에서 단말을 찍어낼 때 포함되는 바이너리를 만들 때에는 NDK를 고려할 필요가 없다. 그런 모듈은 활용 가능한 모든 라이브러리를 끌어모아 최고의 성능을 추구해야 한다.
언제 쓰나?
어플리케이션을 만들 때 사용한다. NDK는 포터블을 염두에 두고 구글이 버전을 관리한다. NDK로 만든 네이티브 코드는 개념상 컴파일만 다시하면 모든 단말에서 실행을 보장한다. 포터블해야 하는 어플리케이션을 만들 때, 자바로 해결할 수 없는 성능 이슈가 있다면 NDK를 사용한다. 어쨌든 NDK를 쓰는 어플리케이션이 추구하는 목표는 성능/기능보다는 가능한 모든 안드로이드 단말에서 실행시킬 수 있는 '이식성 (portability)'이다.
NDK는 어플리케이션 패키지에 네이티브코드를 포함시킬 수 있도록 제공되는 도구다. 단말에 내장되는 엔진 성격의 시스템을 만드는데는 적합하지 않다. 단말에 내장되는 엔진 성격... 좀 설명이 거시기한데... 암튼 공장에서 단말을 찍어낼 때 포함되는 바이너리를 만들 때에는 NDK를 고려할 필요가 없다. 그런 모듈은 활용 가능한 모든 라이브러리를 끌어모아 최고의 성능을 추구해야 한다.
언제 쓰나?
어플리케이션을 만들 때 사용한다. NDK는 포터블을 염두에 두고 구글이 버전을 관리한다. NDK로 만든 네이티브 코드는 개념상 컴파일만 다시하면 모든 단말에서 실행을 보장한다. 포터블해야 하는 어플리케이션을 만들 때, 자바로 해결할 수 없는 성능 이슈가 있다면 NDK를 사용한다. 어쨌든 NDK를 쓰는 어플리케이션이 추구하는 목표는 성능/기능보다는 가능한 모든 안드로이드 단말에서 실행시킬 수 있는 '이식성 (portability)'이다.