JNI (Java Native Interface)
- Java와 C/C++간의 인터페이스를 가능하게 해주는 매개체
- Java class에서 C언어로 작성된 라이브러리에 포함된 함수를 사용하고 싶다거나, 반대로 C에서 자바 클래스 라이브러리를 사용하고 싶은 경우
(1) 빠른 처리 속도를 요구하는 루틴 작성
(2) 하드웨어 제어
(3) 기존 C/C++ 프로그램의 재사용
JNI 개발 순서
(1) Java 코드 작성
- method 선언은 Java에서, 선언된 method의 실제 구현은 C/C++에서 이루어 진다.
- native keyword로 native method 선언
- System.loadLibrary()에서 C 라이브러리를 로딩
(윈도우: hellojni.dll / 리눅스: libhellojni.so)
(2) Java 코드 컴파일
(3) C header 파일 생성
(4) C 코드 작성
(5) C shared library 생성
(6) Java 프로그램 실행
Camera
frameworks/base/core/jni/android/graphics/Camera.cpp
frameworks/base/graphics/java/android/graphics/Camera.java
AlarmManagerServie
frameworks/base/services/jni/com_android_server_AlarmManagerService.cpp
frameworks/base/services/java/com/android/server/AlarmManagerService.java
참고: http://blog.naver.com/PostView.nhn?blogId=iflowerpot&logNo=80119729013
http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=20
http://blog.naver.com/PostView.nhn?blogId=oh4zzang&logNo=40111762322
'Android' 카테고리의 다른 글
Monkey Test 옵션 정리 (0) | 2012.02.20 |
---|---|
인사이드 안드로이드 Chapter5 (0) | 2012.02.02 |
인사이드 안드로이드 Chapter3 (1) (0) | 2011.12.08 |
인사이드 안드로이드 Chapter3 (0) | 2011.12.08 |
인사이드 안드로이드 Chapter1-2 (0) | 2011.12.08 |