¿Por qué se usa Android NDK?

Android es un sistema operativo basado en el kernel de Linux. El SDK de Android es un contenedor basado en Java para ayudar a desarrollar aplicaciones para ejecutarse en el sistema operativo Android. Si tiene una razón por la que necesita eliminar la abstracción del SDK de Android y la máquina virtual de Java debajo, entonces el NDK se convierte en su solución.

Android NDK se usa generalmente para programación gráfica o sensores de baja latencia que realmente necesitan esa optimización y velocidad adicionales.

Si su objetivo es tomar una sola foto y enviarla a la nube, entonces el SDK estará totalmente bien. Si su objetivo es tomar 30 fotos por segundo y ejecutar algoritmos de reconocimiento facial en él, entonces el NDK comienza a convertirse en la única forma de obtener un SoC de 1-3 vatios ejecutando su teléfono para tener la oportunidad de hacerlo.

La regla general es usar el SDK hasta que se dé cuenta de que su aplicación es lenta hasta el punto en que Java y la JVM son el cuello de botella.

Se utiliza para comunicar y programar directamente el núcleo subyacente en el que se ejecuta Android. Java que utiliza el programado de Android tiene una sobrecarga de tiempo de compilación y ejecución y no es muy personalizable a las necesidades (por ejemplo, bucles de juego, etc.). Así que usando NDK uno puede optimizar el núcleo y haz las cosas a tu manera.

NDK le permite ejecutar el código escrito en otros idiomas como c ++ en su aplicación de Android. Es lo mismo que JNI para Java.