APKのネイティブライブラリが構築されているアーキテクチャを確認する(かなり大雑把な)方法の1つは、それを解凍し(zipファイルのみです)、libsフォルダーを確認することです。アプリケーションにネイティブライブラリが含まれている場合、それらは分割されます。以下のサブフォルダー(コンパイルされたライブラリーがこれらの中にある):
APKの構造と上記のリストのソースの詳細については、Androidアプリケーションパッケージを参照してください。より完全な(MIPS64を含む)リストは、アーキテクチャ固有のものに関するいくつかの情報とともに、2016年4月18日にキャプチャされたアーカイブ済みバージョンのAndroid Developer ABI Managementページにあります。
興味深いことに、1つのABI(アプリに1つのアーキテクチャ用に設計されたネイティブライブラリが含まれている)をターゲットにしても、他のアーキテクチャを使用するデバイスでアプリが実行されないわけではありません。たとえば、ARMv8-aはARMおよびARMv7-aと下位互換性があり、Intelのx86 Androidデバイスには、ARMコードをx86デバイスで実行できる独自の変換レイヤーが含まれています(ARM専用アプリをx86プラットフォームで実行できます)。Androidデバイスが実行できるABIのリストはro.product.cpu.abilist
プロパティにあります。これは、次のコマンドを使用して、シェルで(たとえば、デバイスのターミナルアプリを介して、またはadbを使用してadb shell
)取得できます。getprop
getprop ro.product.cpu.abilist