Cómo comenzar a usar el NDK

El kit de desarrollo nativo (NDK) es un conjunto de herramientas que te permite usar código C y C++ con Android, y proporciona bibliotecas de plataforma que puedes usar para administrar actividades nativas y acceder a componentes de dispositivos físicos, como sensores y entrada táctil. Es posible que el NDK no sea adecuado para la mayoría de los programadores principiantes de Android que solo necesitan usar código Java y API de marco de trabajo fin de desarrollar sus apps. Sin embargo, el NDK puede resultar útil en los casos en los que necesites realizar una o varias de las siguientes acciones:

  • Lograr rendimiento adicional de un dispositivo para lograr una latencia baja o ejecutar aplicaciones intensivas a nivel computacional, como juegos o simulaciones físicas
  • Volver a usar tus propias bibliotecas C o C++, o las de otros desarrolladores

Con Android Studio 2.2 y versiones posteriores, puedes usar el NDK para compilar código C y C++ en una biblioteca nativa y empaquetarlo en tu APK con Gradle, el sistema de compilación integrado de IDE. Tu código Java puede, luego, llamar a funciones en tu biblioteca nativa por medio del marco de trabajo de la interfaz nativa de Java (JNI). Para obtener más información sobre Gradle y el sistema de compilación de Android, consulta Cómo configurar tu compilación.

La herramienta de compilación predeterminada de Android Studio para compilar bibliotecas nativas es CMake. Android Studio también es compatible con ndk-build debido a la gran cantidad de proyectos existentes que usan el paquete de herramientas de compilación. Sin embargo, si creas una biblioteca nativa nueva, debes usar CMake.

En esta guía, encontrarás la información que necesitas para comenzar a usar el NDK en Android Studio. Si no tienes la versión más reciente de Android Studio, puedes descargarla y también instalarla ahora.

Información importante para usuarios experimentales de Gradle: Considera realizar la migración a la versión 2.2.0 del complemento o a una posterior, y usar CMake o ndk-build para compilar las bibliotecas nativas si se cumple alguna de las siguientes afirmaciones: el proyecto nativo ya usa CMake o ndk-build, prefieres usar una versión estable del sistema de compilación de Gradle o deseas tener compatibilidad con herramientas del complemento, como CCache. De lo contrario, puedes seguir usando la versión experimental de Gradle y el complemento de Android.

Cómo descargar NDK y herramientas

Para compilar y depurar el código nativo de tu app, necesitas los siguientes componentes:

  • El kit de desarrollo nativo (NDK) de Android es un conjunto de herramientas que te permite usar código C y C++ con Android.
  • CMake es una herramienta de compilación externa que funciona junto con Gradle para compilar tu biblioteca nativa. No necesitas este componente si solo planeas usar ndk-build.
  • LLDB: Es el depurador que usa Android Studio para depurar código nativo.

Si deseas obtener información para instalar estos componentes, consulta Cómo instalar y configurar el NDK y CMake.

Cómo crear o importar un proyecto nativo

Una vez que configures Android Studio, simplemente puedes Crear un proyecto nuevo compatible con C y C++. Sin embargo, si quieres agregar o importar código nativo en un proyecto de Android Studio existente, deberás seguir este proceso básico:

  1. Crea nuevos archivos fuente nativos y agrégalos a tu proyecto de Android Studio.
    • Puedes omitir este paso si ya tienes código nativo o si deseas importar una biblioteca nativa ya compilada.
  2. Crea una secuencia de comandos de compilación de CMake para indicarle a CMake cómo compilar tus fuentes nativas en una biblioteca. También necesitas esta secuencia de comandos de compilación si realizas importaciones y vinculaciones en bibliotecas ya compiladas o de plataforma.
    • Puedes omitir este paso si tu biblioteca nativa existente ya tiene una secuencia de comandos de compilación CMakeLists.txt o usa ndk-build e incluye una secuencia de comandos de compilación Android.mk.
  3. Vincula Gradle a tu biblioteca nativa proporcionando una ruta de acceso a tu archivo de secuencia de comandos de CMake o ndk-build. Gradle usa la secuencia de comandos de compilación para importar el código fuente en el proyecto de Android Studio y a fin de empaquetar la biblioteca nativa (el archivo del SO) en el APK.

    Nota: Si tu proyecto existente utiliza la herramienta obsoleta ndkCompile, deberás abrir tu archivo build.properties y quitar la siguiente línea de código antes de configurar Gradle para que use CMake o ndk-build:

    // Remove this line
    android.useDeprecatedNdk = true
    
  4. Compila y ejecuta tu app haciendo clic en Ejecutar ejecutar y luego ejecutar la app desde el menú principal. Gradle agrega el proceso CMake o ndk-build como una dependencia para compilar, generar y empaquetar la biblioteca nativa con el APK.

Una vez que tu app se ejecute en un dispositivo físico o en el emulador, podrás usar Android Studio para depurar tu app. De lo contrario, para obtener más información sobre el NDK y sus componentes, consulta la página Conceptos.