miércoles, 22 de julio de 2009

Componentes de las aplicaciones en Android

Android no tiene un único punto de entrada llamado Main como estamos acostumbrados a ver en las aplicaciones convencionales, en vez de eso, tiene diferentes componentes esenciales que Android puede instanciar cuando sea necesario.

A continuación describimos los distintos componentes esenciales:

Activities: Una Activity basicamente representa una interfaz visual con la que el usuario pueda interactuar. Por ejemplo, una lista de contactos en una aplicacion de mensajería, etiquetas, marcos,etc. Una aplicación puede tener muchas Activities y habrá que marcar una de ellas como la primera que se presenta al usuario al ejecutar la aplicación por primera vez.

El contenido visual de una ventana lo provee la jerarquía de views que son objetos derivados de la clase base View . Cada View controla un espacio rectangular en particular con respecto a la ventana. Las Views padre controlan y organizan el marco de las que estan por debajo suya, es decir las views hijas y por debajo de estas estan las views condideradas hojas del arbol jerárquico que son aquellas en las cuales se dibujan los controles y que responden las acciones de los usuarios. En éstas últimas es donde ocurre toda la interacción con el usuario.

La jerarquía de una View está situada dentro de una Activity window seleccionada mediante el metodo Activity.setContentView() . La view contenedora es un objeto View en la raiz (root) de la jerarquía.



Services: Los servicios no tienen interfaz visual de usuario, en vez de eso son ejecutados de fondo (en background) por un tiempo indefinido de tiempo. Por ejemplo, un servicio puede reproducir música de fondo mientras el usuario está interactuando con otra aplicación visual, o descargando datos de la red mientras estás interactuando con otra aplicación. Cada servicio hereda de la clase base Service.

Del mismo modo que las Activities asicomo otros componentes, los Services se ejecutan en el hilo principal del proceso de la aplicación. De ésta forma la aplicación evita que otros componentes se bloqueen mientras se ejecutan otras componentes como el caso de los Services en background.



Broadcast receivers: Este es un componente cuya tarea es recibir y responder mensajes de difusión Broadcast. Muchos de éstos mensajes se originan en el código del sistema operativo - Por ejemplo, anuncios de cambio de la zona horaria, el estado de la batería ,etc. Otras aplicaciones prácticas pueden ser aquellas que avisan de los datos que están listos para ser usados por la aplicación en el instante que han terminado de ser descargados de la red entre otros.

Una aplicación puede tener un número de receptores broadcast con el objetivo de responder a cualquier anuncio que se considere oportuno. Todos los receptores de mensajes Broadcast(Broadcast receivers) heredan de la clase base Broadcast Receiver.

Los Broadcast receivers no tienen interfaz de usuario. Por lo tanto, deben presentar la información que reciben al usuario a través de una Activity. También pueden utilizar NotificationManager para alertar al usuario, la notificacion puede realizarse de distintas maneras; hacer vibrar el dispositivo, parpadear las luces, reproducir un sonido, etc. Por lo general se suele utilizar un icono en la barra de estado el cual puede ser abierto por el usuario con el objetivo de leer la notificación.



Content providers: Un Content Provider crea un registro específico de los datos de la aplicación disponible para otras aplicaciones. Los datos pueden ser almacenados en el sistema de ficheros, en una base de datos SQLite, de alguna otra forma. Un content provider hereda de la clase base ContentProvider para implementar una serie de metodos estandares que habilitan a otras aplicaciones interactuar con los datos almacenados. Las aplicaciones utilizan el objeto ContentResolver para interactuar con el ContentProvider.



-----------------------------------------------------
Clases a estudiar en la documentación
-----------------------------------------------------
Activity
View
Service
BroadcastReceiver
NotificationManager
ContentProvider
ContentResolver



Video recomendado: (English)
http://www.youtube.com/watch?v=j8XseabG5j0

1 comentario:

  1. Es excelente en especial para alguien que està recièn aprendiendo a usar este sistema

    ResponderEliminar