Qué es el Android NDK [Parte 1]

Qué es el Android NDK [Parte 1]
android ndk que es introducción tutorial

¡Hola! Os presento una nueva serie de tutoriales que voy a redactar en Geeky Theory. Esta vez voy a hablaros sobre Android, más concretamente sobre el Android NDK. Dividiré esta serie en varios tutoriales. Empezaremos con una introducción, que será en este mismo artículo, y luego nos pondremos manos a la obra con la instalación del NDK y su configuración en el entorno de desarrollo, que será Eclipse. La verdad, no sabía si explicarlo con Eclipse o con Android Studio, pero finalmente me he decidido por Eclipse porque es más sencillo y estoy seguro de que la mayoría de vosotros ya lo habéis utilizado, incluso si ahora mismo estais con Android Studio. Aún así, en un futuro hablaremos de Android Studio.

Qué es el Android NDK

El Android NDK (Native Development Kit) permite a los desarrolladores reutilizar código escrito en C/C++ introduciéndolo en las aplicaciones a través de JNI (Java Native Interface). El NDK hace que la ejecución de la aplicación sea en cierto modo más rápida, ya que pasará a ejecutarse directamente en el procesador y no es interpretado por una máquina virtual.

El NDK puede ser útil y beneficioso para ciertos tipos de aplicaciones, pero no para otros. El uso de código nativo en Android no se traduce en una notable mejora de rendimiento, pero de lo que sí estoy seguro, es de que aumenta la complejidad de la aplicación hasta límites insospechados. No os asustéis, pero depende de la aplicación que estéis desarrollando, puede ser realmente complejo. No va a ser el caso de estos tutoriales, puesto que el objetivo es aprender, no espantaros.

Se debe utilizar el NDK si es esencial para la aplicación, no porque queramos programar en C/C++.

Las aplicaciones que suelen utilizar el NDK son aquellas que harán un uso intensivo de la CPU, como por ejemplo motores de videojuegos o procesado de señal. En general, se trata de optimizar al máximo costosas operaciones matemáticas.

Algunas de las aplicaciones más conocidas utilizan el Android NDK, ya sea por la necesidad de eficiencia, la reutilización de código C, o ambas cosas. WhatsApp, Instagram, Skype o TuneIn Radio son aplicaciones que utilizan el Android NDK. ¡Y yo sin saberlo! Muchas de ellas, hacen uso de librerías ya desarrolladas en lenguaje C/C++ y aprovechan el NDK para no tener que escribirlas de nuevo en Java.

Antes de pasar al siguiente tutorial, os recomiendo encarecidamente que os leáis dos tutoriales:

  • Introducción a Java Native Interface: en este artículo, os damos una introducción a los fundamentos de JNI. No es necesario que hagáis todos los pasos, pero sí que es muy importante que lo entendáis, porque los siguientes tutoriales de esta serie se van a basar en JNI y, es primordial saber de qué estamos hablando.
  • Tutorial de instalación de Android Developer Tools (Eclipse y Android SDK): si el tutorial anterior era importante, este lo es más, ya que en él aprendememos a instalar Eclipse y el SDK de Android en nuestro equipo. Estas dos herramientas serán imprescindibles para seguir con los siguientes tutoriales de esta serie.

Nos vemos en el siguiente capítulo. ¡Un saludo!