Sei sulla pagina 1di 7

Arquitectura Android

Android est formado por varias capas que facilitan al desarrollador la creacin de aplicaciones. Adems, est distribucin permite acceder a las capas ms bajas mediante el uso de libreras para que as el desarrollador no tenga que programar a bajo nivel las funcionalidades necesarias para que una aplicacin haga uso de los componentes de hardware de los telfonos. Cada una de las capas, utiliza elementos de la capa inferior para realizar sus funciones, es por ello que a este tipo de arquitectura se le conoce tambin como pila.

Capas de la Arquitectura Android 1- Linux Kernel o Kernel de Linux El ncleo del sistema operativo Android est basado en el kernel de Linux versin 2.6, similar al que puede incluir cualquier distribucin de Linux, como Ubuntu, solo que adaptado a las caractersticas del hardware en el que se ejecutar Android, es decir, para dispositivos mviles.

El ncleo acta como una capa de abstraccin entre el hardware y el resto de las capas de la arquitectura. El desarrollador no accede directamente a esta capa, sino que debe utilizar las libreras disponibles en capas superiores. Si necesitamos hacer uso de la cmara, el sistema operativo se encarga de utilizar la que incluya el telfono, sea cual sea. Para cada elemento de hardware del telfono existe un controlador (o driver) dentro del kernel que permite utilizarlo desde el software. El kernel tambin se encarga de gestionar los diferentes recursos del telfono (energa, memoria, etc.) y del sistema operativo en s: procesos, elementos de comunicacin (networking), etc. 2Libraries o Librerias

La siguiente capa que se sita justo sobre el kernel la componen las bibliotecas nativas de Android, tambin llamadas libreras. Estn escritas en C o C++ y compiladas para la arquitectura hardware especfica del telfono. Estas normalmente estn hechas por el fabricante, quien tambin se encarga de instalarlas en el dispositivo antes de ponerlo a la venta. El objetivo de las libreras es proporcionar funcionalidad a las aplicaciones para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma ms eficiente. Entre las libreras incluidas habitualmente encontramos: OpenGL (motor grfico) Bibliotecas multimedia (formatos de audio, imagen y video) Webkit (navegador) SSL (cifrado de comunicaciones) FreeType (fuentes de texto) SQLite (base de datos) Y otras ms

3- Android Runtime o Entornos de Ejecucin El entorno de ejecucin de Android no se considera una capa en s mismo, dado que tambin est formado por libreras. Aqu encontramos las libreras con las funcionalidades habituales de Java as como otras especficas de Android. El componente principal del entorno de ejecucin de Android es la mquina virtual Dalvik. Las aplicaciones se codifican en Java y son compiladas en un formato especfico para que esta mquina virtual las ejecute. La ventaja de esto es que las aplicaciones se compilan una nica vez y de esta forma estarn listas para distribuirse con la total garanta de que podrn ejecutarse en cualquier dispositivo Android que disponga de la versin mnima del sistema operativo que requiera la aplicacin. Cabe aclarar que Dalvik es una variacin de la mquina virtual de Java, por lo que no es compatible con el bytecode Java. Java se usa nicamente como lenguaje de

programacin, y los ejecutables que se generan con el SDK de Android tienen la extensin .dex que es especfico para Dalvik, y por ello no podemos correr aplicaciones Java en Android ni viceversa. 4- Application Framework o Framework de Aplicaciones La siguiente capa est formada por todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones. La mayora de los componentes de esta capa son libreras Java que acceden a los recursos de las capas anteriores a travs de la mquina virtual Dalvik. Siguiendo el diagrama encontramos: a. Activity Manager. Se encarga de administrar la pila de actividades de nuestra aplicacin as como su ciclo de vida. b. Windows Manager. Se encarga de organizar lo que se mostrar en pantalla. Bsicamente crea las superficies en la pantalla que posteriormente pasarn a ser ocupadas por las actividades. c. Content Provider. Esta librera es muy interesante porque crea una capa que encapsula los datos que se compartirn entre aplicaciones para tener control sobre cmo se accede a la informacin. d. Views. En Android, las vistas los elementos que nos ayudarn a construir las interfaces de usuario: botones, cuadros de texto, listas y hasta elementos ms avanzados como un navegador web o un visor de Google Maps. e. Notification Manager. Engloba los servicios para notificar al usuario cuando algo requiera su atencin mostrando alertas en la barra de estado. Un dato importante es que esta biblioteca tambin permite jugar con sonidos, activar el vibrador o utilizar los LEDs del telfono en caso de tenerlos. f. Package Manager. Esta biblioteca permite obtener informacin sobre los paquetes instalados en el dispositivo Android, adems de gestionar la instalacin de nuevos paquetes. Con paquete nos referimos a la forma en que se distribuyen las aplicaciones Android, estos contienen el archivo .apk, que a su vez incluyen los archivos .dex con todos los recursos y archivos adicionales que necesite la aplicacin, para facilitar su descarga e instalacin. g. Telephony Manager. Con esta librera podremos realizar llamadas o enviar y recibir SMS/MMS, aunque no permite remplazar o eliminar la actividad que se muestra cuando una llamada est en curso. h. Resource Manager. Con esta librera podremos gestionar todos los elementos que forman parte de la aplicacin y que estn fuera del cdigo, es decir, cadenas de texto traducidas a diferentes idiomas, imgenes, sonidos o layouts. i. Location Manager. Permite determinar la posicin geogrfica del dispositivo Android mediante GPS o redes disponibles y trabajar con mapas. j. Sensor Manager. Nos permite manipular los elementos de hardware del telfono como el acelermetro, giroscopio, sensor de luminosidad, sensor de campo magntico, brjula, sensor de presin, sensor de proximidad, sensor de temperatura, etc. k. Cmara: Con esta librera podemos hacer uso de la(s) cmara(s) del dispositivo para tomar fotografas o para grabar vdeo. l. Multimedia. Permiten reproducir y visualizar audio, vdeo e imgenes en el dispositivo

5- 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 tambin la aplicacin principal del sistema: Inicio (Home) o lanzador (launcher), porque es la que permite ejecutar otras aplicaciones mediante una lista y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso widgets, que son tambin aplicaciones de esta capa.

Componentes de una Aplicacin Android


Cualquier aplicacin Android dispone de los siguientes componentes para su construccin: 1. 2. 3. 4. 5. 6. 7. 8. Activities (Actividades) Services (Servicios) Broadcast Receiver (Receptores de Difusin) Intents (Intenciones) Proveedores de Contenidos Widgets Vistas Manifiesto

1. Activities Este componente representa una nica pantalla de la aplicacin ligada con su propia interfaz con la cual el usuario podr interactuar. Una de las diversas actividades que pueden componer una aplicacin se marcar como Main o Principal; esta ser la actividad que se lanzar cuando la aplicacin inicie. Una actividad a su vez podr lanzar otras actividades con el fin de componer la aplicacin de diversas interfaces para mostrar u obtener datos del usuario. Ciclo de Vida de una Actividad Toda actividad podr pasar por diversos estados, los cuales se pueden ver, junto con los mtodos que se ejecutan entre cada cambio de estado, en la siguiente imagen:

Los mtodos de la clase Activity son las siguientes: a. onCreate(): Es llamado cuando se crea la actividad. En este mtodo generalmente se inicializan las variables de la clase, enlazando los componentes de la interfaz. b. onStart(): Es llamado cuando la actividad pasa a ser visible para el usuario. c. onResume(): Se llama cuando la actividad empieza a interactuar con el usuario. En este punto la actividad se encuentra en la pila de actividades del Sistema. d. onPause(): Este mtodo se llama cuando el Sistema esta a punto de iniciar una actividad anterior. En este mtodo se suele guardar los datos importantes para la aplicacin y parar tareas que consuman CPU. ste mtodo suele ser sencillo puesto que la siguiente aplicacin no comenzar hasta que ste no acabe. e. onStop(): Es llamado cuando la actividad ya no es visible para el usuario, ya que otra actividad se ha reanudado. Esto puede ocurrir ya sea porque una nueva actividad se est iniciando o sta est siendo destruida. f. onRestart(): Es llamado cuando la actividad, que se ha parado anteriormente, puede iniciar su ejecucin de nuevo. g. onDestroy(): Este mtodo se llama para destruir la actividad. Esto puede ser debido a que se ha llamado al mtodo finish() en algn lugar del cdigo o porque el sistema necesita recursos y necesita matar el proceso.

2. Services Un servicio es una tarea que se ejecuta en background y admas no posee interfaz de usuario. Este componente realiza operaciones de larga duracin o alguna tarea que haga

uso de un proceso remoto. Algunos ejemplos de servicios poden ser el reproductor de msica o tareas costosas, como escrituras de grandes cantidades de datos en la memoria. Otro componente, como puede ser una actividad, puede iniciar el servicio y dejarlo en segundo plano con el fin de interactuar con l. 3. Broadcast Receiver Estos componentes reciben y reaccionan ante eventos de tipo Broadcast que puede producir una aplicacin o el propio sistema, como por ejemplo, eventos de batera baja, SMS recibido, etc. 4. Intents Los 3 componentes mencionados anteriormente son activados a travs de mensajes asncronos llamados Intents. A travs de estos, podremos enviar mensajes a todo el sistema, a una Actividad o a un Servicio especfico indicando la accin que se quiere realizar. El propio sistema determinar quien realizar la accin que se demanda. 5. Content Provider Un proveedor de contenidos nos servir para acceder a los datos que queremos manejar en nuestra aplicacin. Puede almacenar los datos del sistema de archivos (en el propio proyecto), en una base de datos SQLite, en una Web, o cualquier otro lugar de almacenamiento al que la aplicacin puede acceder. A travs del proveedor de contenidos, las aplicaciones pueden consultar e incluso modificar los datos (si el proveedor de contenidos lo permite) 6. Widgets Los widgets son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal del dispositivo Android y recibir actualizaciones peridicas. Permiten mostrar informacin de la aplicacin del usuario directamente sobre la pantalla principal.

Android Manifest Se trata de un fichero XML en el cual se describen los componentes que se desean usar en la aplicacin. Si no se hace esto, cuando se quiera lanzar uno de los componentes, la aplicacin dar error y terminar. Este archivo adems de declarar componentes tiene otras tareas como: Identificar los permisos de usuario que la aplicacin requerir como ejemplo, acceso a internet, lectura de memoria, acceso a la localizacin GPS, etc. Declarar el nivel mnimo de API que requiere la aplicacin. Caracteristicas de hardware y software utilizados o requeridos, tales como la utilizacin de la cmara, los servicios de bluetooth, pantalla multitouch, etc.

Bibliotecas API utilizadas que no sean las de Android, como por ejemplo la biblioteca de Google Maps.

Fuentes: http://developer.android.com http://androideity.com

Potrebbero piacerti anche