게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안드로이드 NFC 관련 질문입니다.
게시물ID : it_1500짧은주소 복사하기
작성자 : 색시몽리턴즈
추천 : 0
조회수 : 1834회
댓글수 : 1개
등록시간 : 2014/06/25 16:59:24

안녕하세요

현재 안드로이드 리눅스 포팅관련 업무를 하고 있습니다.


여기서 NFC에 관련하여 궁금한 점이 있습니다.


사용하는 NFC 모듈은 NXP사의 NP544 입니다.

커널 드라이버도 driver/nfc/np544.c 로 사용중입니다.


그리고 안드로이드 부분에서 궁금한 점이 많이 생깁니다.

우선 안드로이드 유저 영역에서 커널로 접근 하기 위해 HAL을 거쳐야 할텐데,


NFC의 HAL 이라고 생각되는 것으로는, ROOT_DIR/hardware/libhardware/include/hardware/nfc.h

하나만 보입니다.


그래서 찾아보니, ROOT_DIR/externals/libnfc-nxp/ 경로에 nfc 관련 소스들이 있고

이 파일들 중에 ioctl, read, write 등을 사용하는 것으로 보아

여기가 HAL인가보다 라고 추측 중입니다.


그리고 안드로이드 APP에서 NFC를 사용하기 위한 java api (jar)는

frameworks/base/core/java/android/nfc/ 에 위치하고 있고요.


자, 이제 궁금해 미칠거 같은게 시작됩니다.

안드로이드 소스 packages/apps/ 경로에 보면 기본 APP들이 있지요,


NFC도 이 경로에 기본 APP으로 있습니다.

그런데 이 NFC APP은 jni를 포함하고 있더군요.


소스 코드를 살펴보니, framework에 있던 nfc 관련 java api를 사용하여 구현하며,

하드웨어로 접근하기 위하여 jni를 사용하는데

jni에서 open()를 사용하는 것은, 위에서 언급했던 hardware/libhardware/include/hardware/nfc.h 의 내용을 사용하고

기타 read, wrire, ioctl은 externals/libnfc-nxp 에 있는 소스를 사용합니다.


질문의 결론!

지금 보고있는 안드로이스 소스의 경우 NFC APP에 jni가 직접 구현되어, nfc 모듈까지 제어가 가능한데,

이 과정을 모르는 일반 APP 개발자의 경우 jni없이 nfc java api만을 사용하여 APP을 개발하는 것으로 알고 있습니다.


jni 없이 어떻게 커널 영역으로 접근하는지,

그리고 혹시, 안드로이드 기본 APP인 packages/apps/Nfc 가 데몬 프로세스로 동작하는 것은 아닌지

알고 계시는 분은 답변을 부탁드립니다.


구글링 아무리 하고

자료 아무리 뒤져도 잘 못찾고 있습니다.


이상 초보 개발자의 질문이었습니다.


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호