Android JNIシリーズの詳細説明:指定CPU用のライブラリファイルの生成

1. 前提

今回は主に Android の CPU アーキテクチャの種類と、CMake ツールを使用するときに生成するライブラリ ファイルの種類を指定する方法を理解します。

上の図に示すように、CMake ツールを使用して、デフォルトで 4 つの CPU アーキテクチャ (arm64-v8a、armeabi-v7a、x86、x86_64) のダイナミック ライブラリ ファイルを生成しました。これらはそれぞれ、4 つの異なる CPU タイプのサポートに対応します。

 上の図に示すように、携帯電話ごとに異なる CPU が使用され、CPU ごとにサポートされる命令セットが異なります。各命令セットには、対応するバイナリ インターフェイス ABI があります (arm64-v8a、armeabi-v7a、x86、および x86_64 が 4 つの ABI タイプです)。 、これはバイナリ ライブラリ ファイルです。このうち、arm64-v8a と armeabi-v7a は携帯電話でよく使用され、x86 と x86_64 はタブレットや仮想マシンでよく使用されます。

1. 一般的に使用される CPU の ABI 互換性:

 携帯電話の CPU アーキテクチャが armv7 の場合、プロジェクトでは armeabi-v7a のみを構成できます。これは、armv7、armv8、および x86 の 3 つの CPU を搭載した携帯電話と互換性があります。これにより、インストール パッケージのサイズを節約でき、互換性の利点が得られます。

2. adb コマンドを使用して、電話機の CPU メカニズムを確認します。

adbシェル

猫/proc/cpuinfo

 2. 指定したCPU用のライブラリファイルを設定および生成する方法

gradle で設定する 2 つの方法:

1. 以下に示すように、Android クロージャの下のdefaultConfig クロージャの下に ndk クロージャを追加します。これは cmake と ndk-build に使用できます。

 2. gradle の cmake 構成で構成します。これは cmake ツールにのみ適用されます。

 これら 2 つの方法でコンパイルした後、対応するディレクトリにファイルが生成されます (カンマを使用した複数の追加をサポートします: abiFilters "arm64-v8a"、"x86")

 

Supongo que te gusta

Origin blog.csdn.net/sunbinkang/article/details/132528551
Recomendado
Clasificación