
La plataforma de desarrollo para Android està basada en la máquina virtual Dalvik desarrollada por Google especificamente para Android y que es una versión optimizada de una máquina virtual de Java, por lo tanto las aplicaciones que corren en esta plataforma se deben escribir en el lenguaje Java de Sun Microsystems.
Para la mayoría de la situaciones, un lenguaje de alto nivel y portable como Java es suficiente, pero hay casos en los que no estaría mal tener la opción de ejecutar código nativo del procesador para implementar funcionalidades muy específicas sin pasar por la máquina virtual.
Este mes, Google ha anunciado el primer release de Android Native Development Kit (NDK). Se trata de un kit de desarrollo para Android que permite usar los lenguajes C y C++ desde aplicaciones en Java.
El NDK no está pensado para construir aplicaciones completas en C/C++, sino que para escribir aplicaciones en Java como es usual y en casos muy específicos usar bibliotecas en C/C++ que se ejecutan en código de máquina nativo.Hace poco también se anunció la disponibilidad de Android Scripting Environment o ASE. Se trata de un mecanismo que proveerá la plataforma necesaria para usar la API de Android desde lenguajes interpretados como Python.
La idea de proveer ASE es permitir a los desarrolladores usar lenguajes sencillos y bastante conocidos para crear aplicaciones o servicios que corren en background. Mediante la API de Android se puede por ejemplo:
- Iniciar actividades.
- Enviar mensajes de texto.
- Usar la información de los sensores o de ubicación.
- Usar text-to-speech, etc.
En el código publicado hay soporte para Python, Lua y BeanShell. Próximamente habrá soporte para Ruby y JavaScript.
Estos lenguajes no corren necesariamente sobre Dalvik, por ejemplo el soporte de Python no es a través de Jython, sino que el interprete ha sido compilado a código nativo. En el caso de BeanShell se han publicado los servicios de Android a través de una clase que actúa como fachada (Patrón Facade).
Para los lenguajes que no tienen acceso a clases Java como es el caso de Python y Lua se creó una proxy que publica los servicios de la fachada a través de JSON, por lo tanto esto abre la puerta para se vayan integrando nuevos lenguajes con facilidad.
Màs informaciòn:
- Introducing Android 1.5 NDK, Release 1 (Android Developers blog)
- Introducing Android Scripting Environment (Open Source at Google blog)





