Arquitectura Android
Android posee una arquitectura de cuatro capas con una caratcteristica interesante, todas las capas se basan en tecnologías libres, iniciando con su núcleo Unix, sus librerías de presentación de gráficos como OpenGL, FreeType, SurfaceManager, su administración de datos con SQLite, la API de desarrollo sobre Java, etc. El siguiente gráfico muestra la arquitectura de Android.

El núcleo Linux
El núcleo de Android está formado por el sistema operativo Linux versión 2.6. Esta capa roporciona la comunicación entre el hardware y el software, el manejo de procesos, memoria, etc.
Runtime de Android
Se basa en el copncepto de máquina virtual de Java, es una máquina virtual mejorada (Dalvik) que se utiliza debido a los limitados recursos de un telefono al compararl con una computadora.
Librerías nativas
Incluye varias librerías nativas escritas en C/C++, muchas de ellas están compiladas en codigo nativo del procesador.
Entorno de aplicación
Proporciona la mayoría de las capacidades del entorno de ejecución de Java (JRE) junto con otros beneficios como el manejo de sensores, la creación de vistas y actividades todo orientado a la reutilización de componentes.
Aplicaciones
En esta capa se encuentran las aplicaciones desarrolladas, todas corren sobre la máquina virtual Dalvik para garantizar la seguridad del sistema, la mayría de estas aplicaciones están escritas en lenguaje Java junto con el Android SDK, también es posible desarrollar usando C/C++ utilizando el Android NDK (Native Development Kit).