Android JNI MAC OS 환경 설정

Android JNI MAC OS 환경 설정
http://whbzju.github.io/blog/2013/06/01/android-jni-config/
JUN 1ST, 2013 | COMMENTS
프롤로그 - JNI 기술 소개
JNI 는 자바 네 이 티 브 인터페이스 의 약자 인 '자바 로 컬 호출' 으로 자바 세계 와 네 이 티 브 세계 의 중개 교량 이다.그 중에서 네 이 티 브 세 계 는 일반적으로 C / C + + 의 세 계 를 가리킨다.자바 는 플랫폼 을 뛰 어 넘 는 언어 로 자바 가 작성 한 응용 은 플랫폼 과 무관 하 다 는 것 을 잘 알 고 있 습 니 다.그러나 컴퓨터 의 세 계 는 자바 가 등장 하기 전에 이미 오랫동안 발 전 했 고 우수한 건장 한 코드 를 재 활용 할 수 있 는 경우 가 많다.예 를 들 어 Linux 의 많은 구동 모듈, 파일 시스템 등 이다.자바 가 이러한 기능 을 다시 실현 하려 면 공 짜 력 이 없 으 면 좋 은 소 리 를 듣 지 못 하고 반복 적 으로 바퀴 를 만 드 는 명성 을 떨 어 뜨 린 다.JNI 기술 을 통 해 이러한 네 이 티 브 모듈 을 사용 하면 절충 하 는 방법 이 된다.이 동시에 자바 의 세 계 는 가상 컴퓨터 에 의 해 구축 되 고 가상 컴퓨터 는 native 언어 로 실현 되 며 가상 컴퓨터 는 구체 적 인 플랫폼 에서 운행 되 기 때문에 가상 컴퓨터 자체 가 플랫폼 과 무관 하 게 할 수 없다.JNI 기술 을 통 해 자바 층 의 플랫폼 과 상 관 없 이 자바 층 에서 바 텀 디 테 일이 완전히 차단 되 었 을 수 있 습 니 다.종합 적 으로 말 하면 JNI 기술 은 이 자바 세 계 를 지탱 해 왔 지만 우 리 는 평소에 접촉 하 는 것 이 비교적 적다.
Android 의 세계 에 서 는 순수 C / C + + 프로그램 이 나타 나 는 것 을 허용 하지 않 지만 JNI 를 지원 합 니 다. JNI 를 통 해 자바 와 C / C + + 의 상호작용 을 실현 합 니 다.따라서 JNI 는 Android 소스 코드, 바 텀 드라이브, 그래 픽 이미지 등 분 야 를 접 해 야 하 는 개발 자 에 게 매우 중요 하 다.
안 드 로 이 드 에서 네 이 티 브 언어 가 구현 하 는 코드 는 최종 적 으로 *. so 동적 라 이브 러 리 로 컴 파일 되 어 자바 계층 호출 을 제공 합 니 다. 현재 두 가지 경로 가 있 습 니 다.
두 가지 컴 파일 환경
  • 소스 코드 컴 파일 환경: Android 플랫폼 은 Make 기반 컴 파일 환경 을 제공 하여 App 에 Android. mk 를 정확하게 작성 하면 이 컴 파일 환경 을 사용 할 수 있 습 니 다. 이 환경 은 git 를 통 해 Android 의 공식 소스 플랫폼 에서 소스 코드 를 얻 고 컴 파일 하여 환경 을 얻어 야 합 니 다.구체 적 으로 보면:http://source.android.com/index.html
  • Android NDK 를 기반 으로 한 컴 파일 환경: NDK 의 전 칭 은 Native Development Kit 입 니 다.로 컬 JNI 컴 파일 에 사용 할 도 구 를 구 글 에서 제공 합 니 다.사실 NDK 는 원본 컴 파일 환경 과 마찬가지 로 안 드 로 이 드 컴 파일 시스템 을 사용 하고 Android. mk 를 통 해 컴 파일 을 제어 합 니 다.본문 은 이런 방식 을 중점적으로 소개 한다.

  • NDK 컴 파일 환경
    Mac 에 서 는 NDK 를 설정 하 는 환경 이 매우 간편 합 니 다. 홈 페이지 에 ndk 가방 을 다운로드 하기 만 하면 됩 니 다. 전 제 는 ndk 에 필요 한 도 구 를 설치 했다 는 것 입 니 다. 보통 xcode 를 설치 하면 기본 적 인 환경 이 있 습 니 다.임의의 디 렉 터 리 로 압축 을 풀 고 PATH 에 이 디 렉 터 리 를 추가 하면 됩 니 다.예 를 들 어 나의:
    재 ~ /. bashprofile 에서 경 로 를 PATH 에 추가 합 니 다. 없 으 면. bash 를 만 들 수 있 습 니 다.profile, 마지막 에 아래 문장 을 추가 합 니 다.
    1
    export PATH=$PATH:/Users/youpath/android-ndk-r8e

    bash 를 다시 시작 하면 ndk - build 를 사용 할 수 있 습 니 다.
    1 2
    HaibotekiMacBook-Air:jni haibowu$ source ~/.bash_profile 
    HaibotekiMacBook-Air:jni haibowu$ ndk-build 

    Hello - jni 실행
    ndk 가방 이 압축 을 풀 고 jni 의 예 를 가 져 옵 니 다. 다음은 hello - jni 를 컴 파일 하여 jni 의 세 계 를 느끼 겠 습 니 다.이 demo 의 경 로 는 ndk 설치 경로 의 sample 디 렉 터 리 에 있 습 니 다.이 경로 에 들 어가 다음 명령 을 수행 합 니 다.
    1 2 3 4 5 6
    HaibotekiMacBook-Air:jni haibowu$ ndk-build Gdbserver      : 
    [arm-linux-androideabi-4.6] libs/armeabi/gdbserver Gdbsetup       : 
    libs/armeabi/gdb.setup Compile thumb  : 
    hello-jni <= hello-jni.c SharedLibrary  : 
    libhello-jni.so Install        : 
    libhello-jni.so => libs/armeabi/libhello-jni.so

    시스템 알림 이 *. so 파일 을 생 성 할 때 컴 파일 이 성공 한 것 을 의미 합 니 다.eclipse 나 intellij 아이디어 로 이 프로젝트 를 가 져 와 서 효 과 를 볼 수 있 습 니 다.
    기타
  • 안 드 로 이 드 소스 코드 컴 파일 환경 이 있다 면 안 드 로 이 드. mk 를 작성 하여 app
  • 을 컴 파일 할 수 있 습 니 다.
  • 만약 에 window 에서 ndk 를 사용한다 면 cygwin 을 설치 하여 Liux 의 환경 을 모 의 해 야 ndk 를 성공 적 으로 설치 할 수 있 습 니 다. 그 생각 은 항상 있 습 니 다.참고:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/13/2136982.html
  • ndk 는 개발 도구 패키지 입 니 다. 원본 코드 를 보고 컴 파일 할 수 있 습 니 다. 구체 적 으로 참고 하 십시오.http://glandium.org/blog/?p=2146

  • 후속
    다음은 제 이 니 를 소개 하 는 블 로 그 를 쓰 겠 습 니 다. 간단명료 하 게 썼 으 면 좋 겠 습 니 다.
    Posted by 아폴로 Jun 1st, 2013  JNI
    http://whbzju.github.io/blog/2013/06/01/android-jni-config/

    좋은 웹페이지 즐겨찾기