Programación en 'C' para Android
Normalmente, los desarrolladores que quieran crear aplicaciones para la plataforma Android de Google tienen que escribir sus programas en Java. La plataforma en sí está escrita en Java y la arquitectura de software de Android está construida alrededor de la máquina virtual de Java o JVM, que genera código de máquina de bytecode de Java. Sin embargo, los desarrolladores que quieren escribir aplicaciones en C pueden descargar un conjunto especial de las bibliotecas de Google para hacer esto posible.
Android SDK
Google proporciona un conjunto estándar de herramientas que permiten a los programadores crear aplicaciones para la plataforma Android en la forma de su equipo de desarrollo de software o SDK. Esto incluye un simulador del sistema Android para proyectos de pruebas y las herramientas de empaquetado para crear un archivo que Android pueda ejecutar a partir del código fuente del proyecto. El SDK también incluye bibliotecas para permitir que las aplicaciones escritas en Java interactúen con las características avanzadas del sistema operativo Android.
Android NDK
Los desarrolladores que quieran crear aplicaciones o componentes de aplicaciones, en el lenguaje de programación C pueden descargar el equipo de desarrollo nativo de Google, o NDK. Esta es una colección de bibliotecas similares a las contenidas en el SDK. Sin embargo, están en el lenguaje de programación C en lugar de Java. Los desarrolladores pueden usar estas bibliotecas para desarrollar para Android en C de la misma manera que las bibliotecas del SDK permiten el desarrollo en Java.
Uso de NDK
El NDK no es funcional como un equipo de desarrollo independiente. En cambio, es una extensión del SDK. Los desarrolladores tienen que instalar el SDK como una plataforma dentro de la cual descargar, utilizar y actualizar otros componentes de desarrollo. Estos incluyen la NDK. Los desarrolladores todavía utilizan las herramientas del SDK para crear los paquetes ".apk" que Android ejecuta como aplicaciones, el simulador SDK para probar las aplicaciones y las herramientas del SDK para la transferencia de los paquetes .apk en un verdadero dispositivo Android.
C o Java
El lenguaje Java funciona mediante la compilación de código fuente en una forma intermedia llamada bytecode, cuyos sistemas JVMs se traducen en el código de la máquina que el dispositivo en realidad ejecuta. En este proceso, la JVM optimizará automáticamente el código de máquina que produce. Esto ahorra tiempo al programador para intentar optimizar el código. Sin embargo, los programadores que trabajan en el lenguaje C directamente controlan cómo se verá el código compilado de la máquina. Esto permite que los desarrolladores de aplicaciones que quieran ejercer este nivel detallado de control sobre su código lo hagan así. Además, permite a los desarrolladores quienes han escrito una gran cantidad de códigos para un proyecto en C presentarlos a Android de forma rápida.