Você está na página 1de 8

Arquitectura de una aplicacin en Android

La plataforma Android nos proporciona diferentes componentes a la hora de programar aquello que queremos que haga nuestra aplicacin. Cuatro son los elementos bsicos que tenemos que conocer:

Activity(actividad): Es cada una de las pantallas que conforman nuestra aplicacin. En ella recae la responsabilidad de presentar los elementos visuales y reaccionar a las acciones del usuario. Toda Activity se inicia como respuesta a un Intent. Intent(intencion): Este tipo de componente es el que utiliza Android para moverse de una pantalla a otra. Se puede entender como aquello que la aplicacin desea hacer. Cuando se lanza un Intent el sistema busca qu Activity es capaz de dar respuesta a ese Intent y elige la ms adecuada. Service(servicio): Es una tarea que se ejecuta durante periodos prolongados y en el background de la aplicacin. No cuenta con una interfaz por lo que el usuario no interacta de forma directa con este componente. Un ejemplo simple de un Service lo podemos encontrar en una aplicacin que necesite ir capturando la posicin del GPS cada cierto tiempo y nos notifique cuando ya estemos cerca de nuestro destino; mientras tanto el usuario puede utilizar su dispositivo para realizar otras tareas. Content Provider(contenido de provedor): Es un almacn de informacin provisto desde una API mediante el cual, el usuario y la aplicacin pueden accesar al contenido sin necesidad de conocer los detalles del almacenamiento.

Hay que aclarar que no todas las aplicaciones tienen que tener estos cuatro elementos; en la mayora de los casos nos encontraremos con aplicaciones que tengan una mezcla de algunos de ellos

Todos los elementos que vaya a utilizar nuestra aplicacin debemos declararlos en el archivo AndroidManifest.xml Los procesos en Android En la mayora de los casos, una aplicacin Android se ejecuta en su propio proceso de Linux.
As es, el tiempo de vida de un proceso en Android es manejada por el sistema operativo, basndose en las necesidades del usuario, los recursos disponibles, etc. En Android los recursos son normalmente muy limitados y por eso el sistema operativo tiene ms control sobre las aplicaciones que en programas de escritorio.

Para determinar qu procesos eliminar ante un escenario dnde el dispositivo tenga poca batera u otros en los que sea de relevante importancia administrar los recursos, Android les asigna una prioridad a cada uno de ellos basndose en la siguiente jerarqua:

Foreground Process: Es la aplicacin que contiene la actividad ejecutada en primer plano en la pantalla del usuario y con la cul est interactuando ahora mismo . Por lo regular hay pocos procesos de este tipo corriendo a la vez en el sistema y son aquellos que se eliminarn Visible Process: Es un proceso que aloja una Activity que no se est ejecutando en primer plano (su mtodo onPause)(el correo que nos lance al navegador). este pasara a ser el Foreground Process. Este tipo de procesos se cerrarn nicamente cuando el sistema no tenga los recursos necesarios para mantener corriendo todos los procesos que estn en primer plano.
Service Process: Son aquellos que corren cuando un Service ha sido invocado. Estos procesos hacen cosas en segundo plano que normalmente son importantes para el usuario (conexin con servidores, actualizacin del GPS, reproductor de msica, etc.),

Background Process: Es un proceso que contiene una Activity que actualmente no es visible por el usuario y que ya no tienen demasiada importancia. (ya no ocupa el usuario) pasan a estar en background. Por eso es importante que cuando nuestra aplicacin pase a Background, el sistema libere, en la medida de lo posible, todos los recursos que pueda para que su rendimiento sea ptimo. Empty Process: Es un proceso que no aloja ningn tipo de componente. Su razn de ser es el de tener una cach disponible para la prxima aplicacin que lance el usuario. Es comn que el sistema elimine este tipo de procesos con frecuencia para as tener memoria disponible.

Ciclo de vida de una aplicacin Android Aunque el sistema operativo sea el que en cualquier momento pueda pausar, parar o destruir nuestra aplicacin segn las necesidades de recursos del dispositivo

onCreate(): Se dispara cuando la Activity es llamada por primera vez. Aqu es donde debemos crear la inicializacin normal de la aplicacin, crear vistas, hacer los bind de los datos, etc. onRestart(): Se ejecuta cuando tu Activity ha sido parada, y quieres volver a utilizarla. Si ves el diagrama podrs ver que despus de un onStop() se ejecuta el onRestart() e inmediatamente llama a un onStart(). onStart(): Se ejecuta cuando la Activity se est mostrando apenas en la pantalla del dispositivo del usuario. onResume(): Se ejecuta una vez que la Activity ha terminado de cargarse en el dispositivo y el usuario empieza a interactuar con la aplicacin. Cuando el usuario ha terminado de utilizarla es cuando se llama al mtodo onPause(). onPause(): Se ejecuta cuando el sistema arranca una nueva Activity que necesitar los recursos del sistema centrados en ella. Hay que procurar que la llamada a este mtodo sea rpida ya que hasta que no termine su ejecucin no se podr arrancar la nueva Activity. Despus de esta llamada puede venir un onResume() si la Activity que haya ejecutado el onPause() vuelve a aparecer en primer plano o un onStop() si se hace invisible para el usuario.

onStop(): Se ejecuta cuando la Activity ya no es visible para el usuario porque otra Activity ha pasado a primer plano. Si vemos el diagrama, despus de que se ha ejecutado este mtodo nos quedan tres opciones: ejecutar el onRestart() para que la Activity vuelva a aparecer en primer plano, que el sistema elimine este proceso porque otros procesos requieran memoria o ejecutar el onDestroy() para apagar la aplicacin. onDestroy(): Esta es la llamada final de la Activity, despus de sta, es destruida. Esto pasa por los requerimientos de memoria que tenga el sistema o porque de manera explcita el usuario manda a llamar este mtodo. Si quisiramos volver a ejecutar la Activity se arrancara un nuevo ciclo de vida.

Você também pode gostar