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 componentes 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 para 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 apps 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 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.

Atención, usuarios experimentales de Gradle: Consideren realizar la migración a la versión 2.2.0, o una posterior, del complemento, y usar de CMake o ndk-build para compilar sus bibliotecas nativas si alguna de las siguientes declaraciones se cumple: Su proyecto nativo ya usa CMake o ndk-build; prefieren usar una versión estable del sistema de compilación de Gradle; o desean admitir herramientas de complemento, como CCache. De lo contrario, pueden seguir usando la versión experimental de Gradle y el complemento de Android.

Descarga de NDK y herramientas

Si quieres compilar y depurar el código nativo para tu app, necesitarás los siguientes componentes:

  • El kit de desarrollo nativo (NDK) de Android, un conjunto de herramientas que te permite utilizar código C y C++ con Android.
  • CMake, 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, el depurador que usa Android Studio para depurar código nativo.

Puedes instalar estos componentes con SDK Manager:

  1. Desde un proyecto abierto, selecciona Herramientas > Android > SDK Manager desde el menú principal.
  2. Haz clic en la pestaña Herramientas de SDK.
  3. Selecciona las casillas de verificación junto a LLDB, CMake y NDK, como se muestra en la Figura 1.

    Figura 1: Instalación de LLDB, CMake y del NDK desde SDK Manager.

  4. Haz clic en Aplicar y, luego, haz clic en Aceptar en el siguiente diálogo.
  5. Cuando finalice la instalación, haz clic en Finalizar y, luego, haz clic en Aceptar.

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 de origen 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 compilada previamente.
  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 de plataforma o compiladas previamente.
    • Puedes omitir este paso si tu biblioteca nativa existente ya tiene una secuencia de comandos de compilación CMakeLists.txt o usa ndk-build y, además, incluye una secuencia de comandos de compilación Android.mk.
  3. Vincula Gradle a tu biblioteca nativa al proporcionar una ruta de acceso a tu archivo de secuencia de comandos de CMake o ndk-build. Gradle la usa para importar el código fuente en tu proyecto de Android Studio y empaquetar tu biblioteca nativa (el archivo de 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 al hacer 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 tu APK.

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