티스토리 뷰

Android JNI와 NDK 라는 말을 들어봤을 것이다.

나는 이 둘을 대충 안드로이드에서 JAVA가 아닌 C/C++로 개발 할 때 필요한 방법? 쯤으로 알고 있었다. 하지만 그 둘의 정확한 차이가 무엇인지는 정확히 알지 못했다.

일단 용어 설명부터 하자면

JNI

 

Java Native Interface의 약자. 자바에서 C/C++의 함수를 호출하거나, 반대로 C/C++에서 자바의 클래스와 메소드를 사용할 수 있게 해주는 인터페이스. 참고로 이게 Android를 위해 있는게 아니고 기본 Java에도 있음. 책방에 갔다가 1997년에 나온 JNI책을 보고 깜짝 놀란 기억이...

 

NDK

 

Android SDK 와 같은 개발 키트임. SDK가 Software Development Kit 이듯이, NDK는 Native Development Kit이다. 안드로이드 NDK는 안드로이드 환경에서 JNI를 구성하는데 도움을 주는 개발 키트다.

 

 

 

자바로 만든 Application은 DalvikVM이 해석할 수 있는 바이트코드가 포함된 실행파일이다. 애플리케이션이 실행될 때 이 실행파일은 Dalvik VM안에 있는 컴파일러(JIT)에 의해 네이티브 코드로 변환된 후 CPU에 의해 실행된다.(안드로이드 2.2 이후부터..)

 

NDK로 만들어진 라이브러리는 달빅VM을 거치지 않고, CPU가 직접 실행한다. 따라서 빠르다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함