64 ビット x86 のサポート

Android NDK は x86_64 ABI をサポートします。ABI を使用すると、64 ビット x86 命令セットをサポートする CPU を備えた Android ベースの端末でネイティブ コードを実行することができます。

概要

x86 向けの 64 ビット マシンコードを生成するには、Application.mk ファイルの APP_ABI 定義に x86_64 を追加します。 次に例を示します。

APP_ABI := x86_64
APP_ABI の値を指定する方法の詳細については、Application.mk をご覧ください。

ビルドシステムにより、x86_64 ABI 向けに生成されたライブラリがホストマシンの $PROJECT/libs/x86_64/ に配置されます。ここで、$PROJECT はプロジェクトのルート ディレクトリです。 また、これらのライブラリは /lib/x86_64/ の配下の APK に埋め込まれます。

Android Package Manager は、互換性のある 64 ビット x86 対応の端末に APK をインストールするときに、これらのライブラリを抽出して、アプリのプライベート データ ディレクトリに配置します。

Google Play ストアでは、サーバーでアプリをフィルタリングするため、ユーザーに対しては、端末の CPU で実行されるネイティブ ライブラリのみが表示されます。

スタンドアロン ツールチェーン

NDK では、64 ビット x86 ツールチェーンをスタンドアロン モードで使用できます。スタンドアロン モードでの使用に関する詳細については、スタンドアロン ツールチェーンの「高度な方法」をご覧ください。

互換性

NDK は、Android 5.0(Android API レベル 21)以降の 64 ビット x86 マシンコード向けのネイティブ バージョンの Android API を提供します。 プロジェクト ファイルが古い API レベルを対象にしているが、x86_64 を対象プラットフォームとして含んでいる場合は、NDK ビルド スクリプトによって、ネイティブ プラットフォーム ヘッダー / ライブラリが自動的に選択されます。