JNIの基本

質問 1: JNI とは何ですか?

回答: JNI は Java 言語のメカニズムです。Java は JNI を通じて C/C++ コードを呼び出すことができ、C/C++ コードも JNI を通じて Java コードを呼び出すことができます。

 

質問 2: NDK とは何ですか?

回答: NDK は、次の 2 つの機能を備えたコード ライブラリです。

(1) .c/.cppファイルを.soファイルに変換する

(2) .so ファイルと Android アプリケーションを一緒に apk にパッケージ化する

 

質問 3: 何をするつもりですか?

回答: 次の 5 つの手順を実行します。

(1) .cpp/.cファイルの作成

(2) NDK を使用して .cpp/.c ファイルを .so ファイルに変換します。

(3) JNI を使用して Java の .so ファイル内の C/C++ 関数を呼び出す

(4) NDK を使用して .so ファイルを .apk にパッケージ化します。

(5) 携帯電話で実行

 

質問 4: CMake および ndk-build メソッドとは何ですか?

回答: .cpp /.c を .so ファイルに変換する場合、Android Studio では次の 2 つの方法が提供されます。

1 つ目は ndk-build ツールを使用する方法で、この時点で Android.mk ファイルを編集する必要があります。

2 つ目は CMake を使用する方法で、この時点では CMakeLists.txt ファイルを編集する必要があります。

CMake メソッドはより高度ですが、Android Studio 2.2 以降のサポートが必要です。

 

質問 5: この記事で紹介されている内容は何ですか?

回答: 両方とも導入されますが、高度な CMake が最初に導入され、次に後方の ndk-build が導入されます。学生が CMake を学習している場合、ndk-build は無視できます。ただし、ある意味、ndk-build の方が適用範囲が広いため、CMake が動作しない場合に ndk-build を試すことができます。

 

3. 実践: CMake メソッド

1. C++ サポートを含むをチェックせずに新しい Android Studio プロジェクトを作成します

2. SDK Manager を開き、NDK がインストールされていることを確認します。

3. JNI フォルダーを作成します。

4. 作成した cpp フォルダーに C/C++ ソース ファイルを作成し、hello_world.cpp という名前を付けます。 

5. MainActivity に戻り、ネイティブ メソッド helloFucker(String name) を宣言します。

 

おすすめ

転載: blog.csdn.net/wzhrsh/article/details/117365975