티스토리 뷰
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가 직접 실행한다. 따라서 빠르다.
'Development > Mobile' 카테고리의 다른 글
[Android JNI/NDK] C/C++에서 Java 함수 호출 하기 / 멤버 변수 사용하기 (0) | 2015.09.21 |
---|---|
[Android JNI/NDK] JNI를 이용해 Java에서 C 함수 호출하기 (0) | 2015.09.21 |
[Android JNI/NDK] JNI에서 C와 C++의 차이 (0) | 2015.09.18 |
[Android JNI/NDK] JNI의 변수 타입과 시그니처 (1) | 2015.09.18 |
[Android] 각 View들의 setBackground... setImage..등등의 사항이 다르다. (0) | 2013.12.21 |
[android] Logcat의 filter(필터)가 제대로 동작하지 않는다. (0) | 2013.12.15 |
[android/php] 안드로이드에서 서버에 사진 이미지 전송하기 (3) | 2013.06.11 |
[android] 안드로이드 메모리 누수 줄이기 (0) | 2013.04.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- linux
- db
- it
- algorithm
- java
- kering
- 음악
- jni강좌
- 리눅스
- 안드로이드
- C
- gcc
- android
- MFC
- API
- AWS
- Python
- 드라이버
- 프로그래밍
- Quiz
- jni
- winapi
- NDK
- Cloud
- driver
- Visual C++
- C++
- source
- database
- Troubleshooting
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함