¿Qué es un kit de desarrollo nativo?
En programación de computadoras y desarrollo de software, un kit de desarrollo nativo (NDK) generalmente es una interfaz de programación abstracta (API) que proporciona a un desarrollador la capacidad de usar funciones o ejecutar código directamente a través del sistema operativo central. Este método para ejecutar un programa es claramente diferente de ejecutar código administrado o programas interpretados, en los que el código que está escrito es ejecutado por una máquina virtual o intérprete que actúa como una capa de software entre las funciones del sistema operativo central y el código redactado por el usuario. El uso de un kit de desarrollo nativo puede ser esencial en aplicaciones que requieren los tiempos de ejecución y procesamiento más rápidos posibles, ya que puede proporcionar acceso directo a hardware y bibliotecas que utiliza el sistema operativo. Dependiendo del tipo de programa que se está escribiendo y al sistema operativo objetivo, el uso de un kit de desarrollo nativo podría no aumentar la velocidad del programa, y podría hacer un código que sea difícil de mantener, leer y puerto a OTsus sistemas.
Las aplicaciones que están escritas para algunos dispositivos, como teléfonos inteligentes, o usan lenguajes informáticos interpretados, no se ejecutan directamente por los procesos del sistema operativo central, o el núcleo. En cambio, el código del programa es ejecutado por un programa separado conocido como Máquina Virtual (VM) o intérprete. La máquina virtual lee el código, expande y resuelve comandos e interfaces con el núcleo para ejecutar el código. Esto puede ser beneficioso para algunos desarrolladores, ya que proporciona una buena capa de abstracción para la portabilidad y deja muchos detalles complejos, como la gestión de recursos y el manejo de archivos, a los creadores de la máquina virtual.
En algunos casos, sin embargo, la máquina virtual puede ser un obstáculo para algunos tipos de programas. La VM puede retrasar la ejecución o no proporcionar acceso a algunas funciones dentro del núcleo host. Un kit de desarrollo nativo para el sy operativo objetivoEl vástago o el dispositivo expone las funciones del núcleo a la aplicación que se está escribiendo. Dependiendo de la extensión del kit, esto puede permitir que un programa acceda directamente al hardware, cargue sus propias bibliotecas personalizadas en el núcleo o use optimizaciones específicas del sistema.
Un kit de desarrollo nativo se usa con mayor frecuencia solo para porciones críticas en el tiempo de un programa. Estos pueden ser cálculos de procesamiento de gráficos, salida a la pantalla o la entrada y salida de archivo. No todos los programas que usan funciones o rutinas nativas verán un beneficio de velocidad, porque la máquina virtual ya puede hacer optimizaciones al código administrado, por lo que el código de la máquina resultante es idéntico, independientemente de si se utilizan funciones nativas. Además, el código nativo vincula un programa con una implementación específica de un sistema operativo y, a veces, una versión específica de un dispositivo, lo que significa que el código que usa un kit de desarrollo nativo podría no ser fácilmente portado a otros sistemas.