루트 권한이나 기기 내 앱 설치 없이 USB 또는 TCP/IP로 Android 기기를 컴퓨터에 미러링하고 제어합니다.
facebookincubator/fbjni
Java Native Interface(JNI)를 통해 네이티브 코드에서 Java 코드를 간편하게 호출할 수 있도록 돕는 C++ 라이브러리입니다.
- 스타
- 337
- 포크
- 53
- 열린 이슈
- 17
- 마지막 커밋
- 4시간 전
어떤 프로젝트인가요?
fbjni는 Java Native Interface의 저수준 기능을 C++ 헬퍼로 감싸 네이티브 코드에서 Java 메서드, 필드, 생성자를 적은 보일러플레이트로 호출할 수 있게 합니다. JNI 로컬 및 전역 참조의 수명을 자동으로 관리하고 Java와 C++ 간에 예외를 양방향으로 변환하므로, 개발자는 호출할 때마다 예외 상태를 확인할 필요가 없습니다.
타입 변환도 라이브러리에서 처리합니다. 메서드 디스크립터는 C++ 시그니처에서 추론되며, std::string 같은 일반적인 타입은 Java 타입과 서로 변환됩니다. Java 클래스는 Java 디스크립터를 선언하는 JavaClass 템플릿을 상속한 C++ 구조체로 매핑됩니다.
이 헬퍼는 Android에서 크로스 플랫폼 모바일 코드를 지원하기 위해 만들어졌지만, Android에 종속된 요소가 없어 JNI를 지원하는 모든 Java VM에서 사용할 수 있습니다. 프로젝트에는 Android 빌드 설정, 기능 빠른 참조, JNI 래퍼를 사용하는 이유를 다룬 문서가 포함되어 있습니다.
핵심 기능
- 01JNI 로컬 및 전역 참조를 자동으로 관리합니다.
- 02Java 예외와 C++ 예외를 양방향으로 변환합니다.
- 03C++ 함수 시그니처에서 메서드 디스크립터를 추론합니다.
- 04std::string과 Java 문자열 간 변환을 자동으로 처리합니다.
- 05JavaClass 템플릿을 통해 Java 클래스를 C++ 타입으로 매핑합니다.
활용 사례
- Android 앱의 공유 C++ 코드베이스에서 Java API를 호출합니다.
- JNI를 사용하는 모든 JVM 애플리케이션에 네이티브 C++ 모듈을 임베드합니다.
- 기존 JNI 코드에서 수동 참조 카운팅과 예외 확인을 줄입니다.
빠른 시작
- 1
복사하여 붙여넣어 사용할 수 있는 예시는 docs/quickref.md의 빠른 참조를 확인하세요
- 2
docs/android_setup.md의 Android 빌드 설정 가이드를 따르세요
토픽
자주 묻는 질문
- fbjni은(는) 무엇인가요?
- Java Native Interface(JNI)를 통해 네이티브 코드에서 Java 코드를 간편하게 호출할 수 있도록 돕는 C++ 라이브러리입니다. fbjni는 Java Native Interface의 저수준 기능을 C++ 헬퍼로 감싸 네이티브 코드에서 Java 메서드, 필드, 생성자를 적은 보일러플레이트로 호출할 수 있게 합니다. JNI 로컬 및 전역 참조의 수명을 자동으로 관리하고 Java와 C++ 간에 예외를 양방향으로 변환하므로, 개발자는 호출할 때마다 예외 상태를 확인할 필요가 없습니다.
- fbjni은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- fbjni은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- fbjni은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. fbjni의 마지막 커밋은 2026년 10월 22일입니다.
- fbjni은(는) 어디에 사용할 수 있나요?
- Android 앱의 공유 C++ 코드베이스에서 Java API를 호출합니다. JNI를 사용하는 모든 JVM 애플리케이션에 네이티브 C++ 모듈을 임베드합니다. 기존 JNI 코드에서 수동 참조 카운팅과 예외 확인을 줄입니다.
- fbjni는 어떻게 설치하나요?
- 복사하여 붙여넣어 사용할 수 있는 예시는 docs/quickref.md의 빠른 참조를 확인하세요 docs/android_setup.md의 Android 빌드 설정 가이드를 따르세요
- fbjni은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/facebookincubator/fbjni
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
외부 의존성 없이 단일 소스 파일로 배포되는 C 오디오 재생 및 캡처 라이브러리입니다.
OpenGL/ES에서 작동하며 뷰티 및 얼굴 기반 효과를 제공하는 크로스 플랫폼 C++ 이미지·동영상 필터 라이브러리입니다.
데스크톱, Android, 웹, iOS 게임을 위한 OpenGL ES 기반 크로스 플랫폼 Java 게임 개발 프레임워크입니다.
Google의 오픈소스 SDK로, 하나의 Dart 코드베이스에서 네이티브 컴파일 모바일·웹·데스크톱 앱을 빌드합니다.
React와 JavaScript로 Android 및 iOS 네이티브 앱을 만들고, UI를 각 플랫폼의 네이티브 컴포넌트로 렌더링하는 프레임워크입니다.