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
블로그 이미지

민둥

,