sábado, 19 de mayo de 2012

Componentes de una aplicación Android



Cualquier aplicación en Adroid se compone de 4 componentes  cada uno de los cuales existe como una entidad propia y desempeña un papel específico; cada elemento es una pieza única que ayuda a definir el comportamiento general de la aplicación.

 Algunos de estos elementos son el punto de entrada para que los usuarios interactúen con la aplicación y algunos elementos dependen de otros.

Cada componente  tiene un propósito y un ciclo de vida distinto que define cómo se crea y se destruye el componente.

Los componentes son:

  • Activities (actividades)
  • Intents (intenciones)
  • Content providers (proveedores de contenido) 
  • Services (servicios) 
  
Activities (actividades)

Las actividades (activities) representan el componente principal de la interfaz gráfica de una aplicación Android.

La mayoría del codigo ejecutable que se escribe para Android sera ejecutado en el contexto de Actividad. Las Actividades usualmente corresponde a pantallas en el display: cada Actividad mostrara una pantalla a el usuario.

Las aplicaciones constan de una o más actividad y cada una de ellas es responsable de guardar su estado.

Se encarga de:
  • Crea una ventana donde se coloca una interfaz
  • Gestiona la interfaz
  • Responde a los eventos
Estados de una actividad:
  • Activa: la actividad esta en primer plano y tiene el focus (enfoque de usuario). Esta se encuentra en lo alto de la pila.
  • En pausa: la actividad es visible pero no tiene el focus.
  • Detenida: la actividad esta tapada por otra aplicación.
  • Destruida: una actividad detenida ha sido destruida  para liberar memoria y ha perdido sus datos. Se tiene que recrear completamente
Ciclo de una actividad

Toda actividad pasa por los estados anteriores, los cuales se pueden ver,  junto con los métodos que se ejecutarán entre cada cambio de estado, en la siguiente imagen:



Los métodos más importantes de la clase Activity son los siguientes:
  1. onCreate(): Es llamado cuando se crea la actividad, aquí generalmente se inicializan las variables de la clase, enlazando los componentes de la interfaz.
  2. onStart(): Para que la actividad se visualice.
  3. onResume(): Se llama cuando la actividad empieza a interactuar con el usuario, la actividad se encuentra en la pila de actividades del sistema.
  4. onPause(): Este método se llama cuando el sistema está a punto de iniciar una actividad anterior, se suele guardar datos importantes para la aplicación y parar tareas que consuman CPU, este debe ser sencillo puesto que la siguiente aplicación no comenzará hasta que este no acabe.
  5. onStop(): Cuando otra actividad se invoca y la actual debe permanecer en segundo plano un tiempo determinado y luego volver a utilizarse.
  6. onRestart(): Cuando la actividad, que se encontraba en segundo plano, vuelve a utilizarse.
  7. onDestroy():  Se utiliza para matar a la actividad, debido a que la misma ya no es necesaria.
  8. onSaveInstanceState (Bundle): la actividad puede guardar su estado. 
  9. onRestoreInstanceState (Bundle): recupera el estado guardado por el anterior metodo. 

Toda actividad se inicia como respuesta a un Intent.



Intents (intenciones)

Son los mensajes del sistema que se encuentran corriendo en el interior del dispositivo. Un intent es el elemento básico de comunicación entre los distintos componentes Android. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones.

Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc.

Ejemplos de Intent:
  • ANSWER_ACTION
  • CALL_ACTION
  • DELETE_ACTION
  • DIAL_ACTION
  • EDIT_ACTION
  • FACTORY_TEST_ACTION
  • GET_CONTENT_ACTION
  • INSERT_ACTION
  • MAIN_ACTION: inicio de la aplicación.
  • PICK_ACTION: permite a otras apps elegir contenido de la tuya.
  • VIEW_CONTENT: para ver contenido.
  • EDIT_CONTENT: para editar contenido.
 
Content providers (proveedores de contenido)
 
Son los componentes creados para compartir datos con otras actividades o servicios. Un proveedor de contenido usa una interface standard en la forma de una URI para llenar las solicitudes para los datos de otras aplicaciones que pueden no conocer aun, que proveedor de contenidos están ellas usando.


Services (servicios)

Los servicios son componentes sin interfaz gráfica que se ejecutan en segundo plano. En concepto, son exactamente iguales a los servicios presentes en cualquier otro sistema operativo. Los servicios pueden realizar cualquier tipo de acciones, por ejemplo actualizar datos, lanzar notificaciones, o incluso mostrar elementos visuales (activities) si se necesita en algún momento la interacción con del usuario.


No son mas que piezas de código ejecutable que correrán en segundo plano desde el momento en que estas se carguen hasta que el mobil es apagado.



 Bibliografía:
Referencia1
Referencia2 
Referencia3 
Referencia4
Referencia5
Referencia6

1 comentario: