Publicidad/Anuncios

Blog de juegos y aplicaciones en expansion

Manejo de memoria en Android (parte 2)

Bueno aquí sigue el articulo de manejo en Android del cual se venía hablando anteriormente...

Entendiendo la prioridad de las aplicaciones y el estado de los procesos.

El orden en que los procesos son matados para reclamar recursos es determinados por la prioridad de las aplicaciones, La prioridad de la aplicacion es igual a su componente de la mas alta prioridad.

Donde dos aplicaciones tienen la misma prioridad, el proceso que ha estado a mas larga baja prioridad sera matado primero. La prioridad de un proceso tambien es afectada por sus dependencias interprocesos; si una aplicacion tiene una dependencia en un servicio o proveedor de contenido de una seguando aplicacion, la segunda aplicacion tendra al menos tanta prioridad como la aplicacion que esta apoya.

Todas las aplicaciones Android permaneceran en ejecucion y memoria hasta que el sistema necesite recursos para otras apps.

Es importanto estructurar una aplicacion correctamente para asegurar que su prioridad es apropiada para el trabajo que realiza, si no se hace esto, la aplicacion podria ser matada mientras esta en el medio de algo importante.

La siguiente lista detalla cada estado de una aplicacion, explicando como el estado es determinado por los componentes que compremeten dicha aplicacion:

Procesos activos (Active foreground): Son procesos de aplicaciones con componente interactuando actualmente con el usuario. Estos son los procesos que Android esta intentando de mantener responsivos al reclamar recursos, estos son generalmente muy pocos procesos y ellos seran matados solo como ultimo recurso/opcion.

Los procesos activos incluyen:

* Actividades en estado activo: Estan en el foreground y responden a los eventos del usuario.

* Actividades, servicios, recividores broadcast que estan en ejecucion actual en un manejador de eventos onReceive.

* Servicios Que estan ejecutando un manejador de eventos onStart, onCreate o onDestroy.

Procesos visibles: Visibles, pero inactivos. Son aquellas actividades visibles, como el nombre sugiere, actividades visibles estan visibles (:P) pero ellas no estan en el foreground o respondiendo a eventos del usuario. Esto sucede cuando una actividad es parcialmente tapada (por una actividad que no sea de pantalla completa o una actividad transparente). Estos generalmente son unos pocos procesos visibles, y ellos solo seran matados en circunstancias extremas para permitir que los procesos activos continuen.

Procesos de servicios iniciados: Son procesos  de servicios que han sido iniciados, los servicios apoyan procesamiento en ejecucion que deberia continuar sin una interfaz visual. Como los servicios no interactuan directamente con el usuario, ellos reciben una prioridad ligeramente mas baja que las actividades visibles. Son aun considerados para estar como procesos foreground y no seran matados a menos que los recursos sean necesitados para procesos activos o visibles.

Procesos de fondo: Son procesos de actividades que no son visibles y no tienen ningun servicio que ha sido iniciado. Generalmente hay un gran numero de procesos de fondo que Android matara usando "last-seen-first-killed pat" para obtener recursos para procesos foreground.

Procesos vacios: Para mejorar el rendimiento del sistema en general, Android frecuentemente mantiene aplicaciones en memoria luego de que han alcanzado el limite de su tiempo de uso (vida). Android mantiene esta cache para mejorar el inicio de aplicaciones cuando son re-lanzadas. Estos procesos son matados tan rutinariamente como sea necesario.

Como usar memoria eficientemente.

Android maneja aplicaciones abiertas que estan corriendo en el fondo, asi que no nos deberiamos preocupar por eso, esto significa que cierra las aplicaciones cuando el sistema necesita mas memoria. Asi que la conclusion es que "toda memoria libre es memoria desperdiciada" (algo basico en la premisa de Linux que luego windows copio en WIN7 para los que no sabian :P). Asi que todo esta bien y no tienes que estar preocupado si se te acaba la memoria, es una conducta tipica de Android! Join Amazon Kindle Unlimited 30-Day Free Trial

Publicar un comentario

0 Comentarios