Bienvenida, y presentación como parte del equipo de Herramientas para la Comunidad de la UOC
Nucleo: el núcleo del sistema operativo Android está basado en el kernel de Linux, similar al que puede incluir cualquier distribución de Linux, solo que adaptado a las características del hardware en el que se ejecutará Android, es decir, para dispositivos móviles. El núcleo actúa como una capa de abstracción entre el hardware y el resto de las capas de la arquitectura. Librerías: La componen las bibliotecas nativas de Android. Están escritas en C/C++ y compiladas para la arquitectura hardware específica del teléfono. Estas normalmente están hechas por el fabricante, quien también se encarga de instalarlas en el dispositivo antes de ponerlo a la venta. Android Runtime: Como podemos apreciar en el diagrama, el entorno de ejecución de Android no se considera una capa en sí mismo, dado que también está formado por librerías. Aquí encontramos las librerías con la funcionalidades habituales de Java así como otras específicas de Android (como la máquina virtual Dalvik.) Framework: Esta capa es la que nos interesa, proporciona los bloques de construcción que se utiliza para crear aplicaciones. Las partes más interesantes de esta capa son los siguientes: Activity Manager: Este controla el ciclo de vida de aplicaciones y mantiene un "Backstack" para que el usuario pueda utilizar otras aplicaciones mientras otras siguen ejecutandose. Content providers: Estos objetos encapsular los datos que hay que compartidos entre las aplicaciones, como los contactos. Resource Manager: Los recursos son algo que va con su programa que no es código Location Manager: Android siempre sabe tu localización. Notification manager: Eventos como mensajes recibidos, citas, alertas de proximidad, las invasiones exóticas, y más se pueden presentar en una manera discreta para el usuario. Aunque tampoco hay que olvidar la gestión de llamadas, gestor de paquetes y el gestor de pantallas. Aplicaciones: En la última capa se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, las nativas (programadas en C o C++) y las administradas (programadas en Java), las que vienen preinstaladas en el dispositivo y aquellas que el usuario ha instalado. En esta capa encontramos también la aplicación principal del sistema: Inicio (Home) o lanzador (launcher)...etc.
Activity: Son los puntos entrantes de la aplicación y puede haber más de una Activity por proyecto.Google la define una Activity como un objecto que cumple un objetivo determinado que el usuario puede hacer. Services: Un servicio es un conjunto de código que se ejecuta en segundo plano. Broadcast Recivers: Un broadcast receiver es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: “Batería baja”, “SMS recibido”, “Tarjeta SD insertada”, …) o por otras aplicaciones (cualquier aplicación puede generar mensajes (intents, en terminología Android) broadcast, es decir, no dirigidos a una aplicación concreta sino a cualquiera que quiera escucharlo). Content Provider: Un ContentProvider es un almacén de datos que proporciona acceso a los datos en el dispositivo. La aplicación puede tener acceso a datos de otras aplicaciones que tienen creado su ContentProvider. Intents: Una intención es un mensaje simple objeto que representa una "intención" de hacer algo. Por ejemplo, si su aplicación necesita para mostrar una página web, expresa su "intención" para ver la URI de Intención mediante la creación de una instancia y que la entrega fuera del sistema. El sistema detecta algún otro fragmento de código (en este caso, el navegador) que sabe cómo manejar esa intención, y lo ejecuta. Intenta también se puede utilizar para transmitir eventos interesantes (por ejemplo, una notificación) en todo el sistema.