Android Native – ¿Cuándo utilizar NDK de 64 bits?

Según la página de descarga oficial de NDK: http://goo.gl/vI7Oek hay dos versiones de destino:

  • X86 Target
  • X64 Target

Y me preguntaba (como un novato en la materia NDK), esto significa que debo utilizar el x64 NDK al compilar una aplicación para dispositivos equipados con procesadores x64?

Y si sólo necesito un archivo ".apk", cómo hacer que contenga tanto x86 y x64 construye? (Si es posible por supuesto)

Actualización: La pregunta es un poco anticuada ahora. A partir de la versión 10c NDK se distribuye en un único paquete para todas las plataformas de destino de nuevo . La respuesta ha sido actualizada para reflejar este hecho.


En primer lugar, debe distinguir entre la arquitectura del dispositivo donde se ejecutará su aplicación (que puede ser ARM (varios tipos) 32 o 64 bits, MIPS 32 o 64 bits e Intel x86 / x64) y la arquitectura / OS de Su máquina de construcción (que puede ser Windows, Linux o Mac, todo funcionando en procesadores Intel x86 / x64).

Así que supongamos que tiene Windows 64 bits. Entonces (como ahora la última versión es 10d ) debe descargar android-ndk-r10d-windows-x86_64.exe . Le permitirá construir para todas las plataformas de destino soportadas por NDK (32 y 64 bits).

Si crea un dispositivo de destino de 32 bits, la aplicación también se ejecutará en un dispositivo de 64 bits, ya que todas las arquitecturas de 64 bits son compatibles con sus equivalentes de 32 bits.

Pero si desea utilizar las características específicas de 64 bits de la arquitectura de destino, debe utilizar los toolchains de 64 bits. Si construye sólo para 64 bits, la aplicación no se ejecutará en arquitectura de 32 bits.

Si tiene que soportar varios objetivos (como ARM e Intel x86), en Application.mk puede especificar los destinos para los que desea que se construya su código nativo (google para APP_ABI ), por lo que APP_ABI varias versiones de la biblioteca nativa Y el sistema cargará el correspondiente en tiempo de ejecución. También de esta manera puede proporcionar binarios independientes para las versiones de 32 y 64 bits de la misma familia de arquitectura, por lo que puede afinarlas.

Usted puede leer más allá de los documentos dentro del paquete de NDK, son bastante exhaustivos.

  • Creación rápida de Android app - Java o nativo?
  • Errores al ejecutar el constructor 'CDT Builder' al intentar crear OpenCV para muestras de Android
  • Cómo compilar un programa C para Genymotion (Android x86)
  • Incluye uuid.h en el proyecto de Android NDK
  • Convertir archivos C ++ (.h y .cpp) existentes en java para Android
  • Problemas al escalar una imagen YUV utilizando la biblioteca libyuv
  • Fopen en el código JNI C falla en el archivo colocado en la carpeta de activos en la aplicación android
  • .NET Framework en Android
  • ¿Cómo crear una biblioteca nativa de C ++ en Android?
  • Cómo escribir y leer bytebuffer pasar de java a jni
  • Convertir de YUV a RGB en c + + (android-ndk)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.