Lenguajes preferidos: PHP, MySQL, Perl, AJAX, JavaScript, HTML, XML, Android, Java, RADIUS, HTML5, CSS3, Node.JS
martes, 13 de diciembre de 2011
Sobre Android: Componentes #SobreAndroid
Un rasgo fundamental de Android es que una aplicación puede hacer uso de los elementos de otras aplicaciones (siempre y cuando ésta lo permita). Por ejemplo si usted tiene que mostrar una lista de contactos y hay otra aplicación que lo hace y lo ha puesto a disposición de nosotros, usted puede pedir esta lista de contactos para que haga su trabajo. Su aplicación no incorpora el código de la otra aplicación, simplemente ejecuta el trozo de código necesario cuando se necesite.
Para esto el sistema debe ser capaz de iniciar un proceso de aplicación cuando este sea requerido e instanciar los objetos de Java para aquella parte. Por lo tanto a diferencia de muchas de las aplicaciones de otros sistemas, android no tiene un punto de entrada único para toda la aplicación (no tiene la función main(), por ejemplo). En su caso presenta componentes esenciales que el sistema puede instanciar y correr cuando sean necesario. Existen cuatro de tipos de componentes:
1. Actividades (Activities)
Una actividad presenta una interfaz visual para el usuario mediante la cual éste puede realizar determinada tarea. Por ejemplo una aplicación de mensajería puede presentar una actividad con una lista de usuarios a enviar los mensajes, una segunda actividad para escribir el mensaje al usuario seleccionado y otras actividades para examinar viejos mensajes guardados o realizar algunos cambios. Cada actividad aunque trabajen en conjunto, es independiente de las demás, cada una es implementada como una subclase de la clase base Activity.
2. Servicios (Services)
Un servicio no presenta una interfaz visual para el usuario, corre en un segundo plano por un determinado período de tiempo. Por ejemplo, un servicio podría tocar la música de fondo mientras el usuario está realizando otras tareas, o podría calcular determinados datos y pasarle el resultado a alguna actividad que lo necesite. Un servicio extiende de la clase base Service.
3. Receptores de emisión (Broadcast receivers)
Un receptor de emisión solamente recibe y reacciona para recibir anuncios, por ejemplo, que la batería se está agotando o que el usuario cambió alguna preferencia de lenguaje. Una aplicación puede presentar cualquier número de receptores de emisión, todos heredan de la clase base BroadcastReceiver. Los receptores de emisión no muestran una interfaz de usuario. Sin embargo, ellos pueden iniciar una actividad en respuesta a la información que reciben, o pueden usar NotificationManager para alertar al usuario.
4. Proveedores de contenido (Content providers)
Un proveedor de contenido hace un específico juego de datos de la aplicación para hacerlos disponibles a otras aplicaciones, los datos pueden ser almacenados en un sistema de archivos o en una base de datos SQLite, o en cualquier otra manera que tenga sentido. Hereda de la clase base ContentProvider y pone a disposición una serie de métodos que permiten a otras aplicaciones recuperar y almacenar los datos que él controla, sin embargo las aplicaciones no llaman a estos métodos directamente, sino que usan un objeto del tipo ContentResolver que puede conectarse con cualquier ContentProvider y llamar a sus métodos.