Support for 64-bit x86

The Android NDK supports the x86_64 ABI. This ABI allows native code to run on Android-based devices using CPUs that support the 64-bit x86 instruction set.

Overview

Binaries targeting x86_64 will be built by default. If you have set APP_ABI in your Application.mk file, ensure that it is either set to "all" or includes "x86". For example:

APP_ABI := arm64-v8a x86_64

For more information on how to specify values for APP_ABI, see Application.mk.

The build system places libraries generated for the x86_64 ABI into $PROJECT/libs/x86_64/ on your host machine, where $PROJECT is the root directory of your project. It also embeds them in your APK, under /lib/x86_64/.

The Android package manager extracts these libraries when installing your APK on a compatible 64-bit, x86-powered device, placing them under your app's private data directory.

In the Google Play Store, the server filters applications so that a consumer sees only the native libraries that run on the CPU powering their device.

Compatibility

The NDK provides native versions of Android APIs for 64-bit x86 machine code starting from Android 5.0 (Android API level 21). If your project targets an older API level, but includes x86_64 as a targeted platform, ndk-build automatically selects the API level 21 headers and libraries for you when building x86-64.