root化や端末へのアプリのインストールなしで、USBまたはTCP/IP経由でAndroid端末をPCにミラーリングして操作できます。
facebookincubator/fbjni
Java Native Interface(JNI)経由でネイティブコードからJavaを呼び出す処理を簡素化するC++ヘルパーライブラリ。
- スター
- 337
- フォーク
- 53
- 未解決の Issue
- 17
- 最終コミット
- 8 時間前
これは何?
fbjniはJava Native Interfaceの低レベルなAPIをC++ヘルパーでラップし、ネイティブコードからJavaのメソッド、フィールド、コンストラクターを少ない定型コードで呼び出せるようにします。JNIのローカル参照とグローバル参照のライフタイムは自動で管理され、JavaとC++間の例外も双方向に変換されるため、呼び出しのたびに例外状態を確認する必要がありません。
型変換もライブラリが処理します。メソッドのシグネチャはC++の関数シグネチャから推論され、std::stringなどの一般的な型はJavaの型との相互変換に対応しています。Javaのクラスは、JavaClassテンプレートを継承してJavaのクラス記述子を宣言する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の低レベルなAPIを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、Web、iOS向けゲームを開発できる、OpenGL ESベースのクロスプラットフォームJavaゲーム開発フレームワーク。
Googleが提供する、単一のDartコードベースからネイティブコンパイルされたモバイル、Web、デスクトップアプリを構築するためのオープンソースSDK。
Reactを使って、JavaScriptのUIをネイティブのプラットフォームコンポーネントで描画するAndroid・iOSアプリを構築するフレームワーク。