Memoria:
-Al igual que Java y NET., Android utiliza el entorno de ejecución y la máquina virtual para gestionar la memoria de la aplicación.
-Memoria basada en la “localidad temporal” (como en la memoria caché), es decir las aplicaciones no se llegan a cerrar cuando el usuario deja de utilizarlas, ya que la tendencia es utilizar un número reducido de aplicaciones a lo largo del día.
-Android a trevés de estadísticas selecciona la prioridad de aplicaciones basándose en el uso de usuario para pronosticar que proceso es probable en ser más usado, algo así como usar el algoritmo de gestión de memoria óptimo donde se reemplaza la página de un proceso que menos se use. A través del código *#*#4636#*#* podemos ver las estadísticas de uso de las aplicaciones.
-No se usa memoria swap (memoria de intercambio), pero trata de simularla,el gestor de procesos puede ser visto como una forma de swap: los procesos de aplicación representan una cierta cantidad de memoria en uso, cuando queda poca memoria, algunos procesos pueden ser matados, y cuando esos procesos se necesitan otra vez, pueden ser iniciados desde su último estado guardado
-Al igual que Java y NET., Android utiliza el entorno de ejecución y la máquina virtual para gestionar la memoria de la aplicación.
-Memoria basada en la “localidad temporal” (como en la memoria caché), es decir las aplicaciones no se llegan a cerrar cuando el usuario deja de utilizarlas, ya que la tendencia es utilizar un número reducido de aplicaciones a lo largo del día.
-Android a trevés de estadísticas selecciona la prioridad de aplicaciones basándose en el uso de usuario para pronosticar que proceso es probable en ser más usado, algo así como usar el algoritmo de gestión de memoria óptimo donde se reemplaza la página de un proceso que menos se use. A través del código *#*#4636#*#* podemos ver las estadísticas de uso de las aplicaciones.
-No se usa memoria swap (memoria de intercambio), pero trata de simularla,el gestor de procesos puede ser visto como una forma de swap: los procesos de aplicación representan una cierta cantidad de memoria en uso, cuando queda poca memoria, algunos procesos pueden ser matados, y cuando esos procesos se necesitan otra vez, pueden ser iniciados desde su último estado guardado
-Android posee procesos con alta y baja prioridad, siendo imperiosamente la implementación de memoria virtual (Henceforth Virtual Memory) y paginación por demanda, es decir, Android carga procesos en memoria solo cuando van a ser utilizados.
-El algoritmo de reemplazo en Linux 2.6.x y por consiguiente en Android (2.3 o inferior) es denominado “Page Frame Reclaiming Algorithm”, que es básicamente un algoritmo LRU con ciertas modificaciones, como la implementación de listas y prioridad en los procesos activos
Procesos:
-Dalvik Virtual Machine es una máquina virtual basada en registros que ha sido optimizada para asegurar que un dispositivo puede ejecutar múltiples instancias de manera eficiente. Se basa en el kernel de Linux para la gestión de memoria de bajo nivel. Esto asegura la multitarea.
- Android asegura la respuesta de la aplicación, deteniendo y matando a los procesos que obstaculizan la fluidez y libera recursos para las aplicaciones de mayor prioridad.
-No existe distinción entre aplicaciones del core y aplicaciones de terceros.
-Varias aplicaciones pueden compartir procesos, o una aplicación puede hacer uso de múltiples procesos en función de sus necesidades
-A la gestión de procesos en Android se le llama: “el ciclo de vida de Android”
-Un BroadcastReceiver permite una aplicación se ejecute, por un breve período de tiempo, en segundo plano como consecuencia de algo que está ocurriendo.
-Un servicio permite a una aplicación práctica a más largo se ejecutan operaciones en segundo plano, una app controla a su servicio. Dice cuando se ejecuta y cuando se detiene.
-La gestión de procesos para los servicios es diferente a los BroadcastReceiver, ya que un número ilimitado de servicios puede solicitar que se ejecuta por un tiempo desconocido.
- Android asegura la respuesta de la aplicación, deteniendo y matando a los procesos que obstaculizan la fluidez y libera recursos para las aplicaciones de mayor prioridad.
-No existe distinción entre aplicaciones del core y aplicaciones de terceros.
-Varias aplicaciones pueden compartir procesos, o una aplicación puede hacer uso de múltiples procesos en función de sus necesidades
-A la gestión de procesos en Android se le llama: “el ciclo de vida de Android”
-Un BroadcastReceiver permite una aplicación se ejecute, por un breve período de tiempo, en segundo plano como consecuencia de algo que está ocurriendo.
-Un servicio permite a una aplicación práctica a más largo se ejecutan operaciones en segundo plano, una app controla a su servicio. Dice cuando se ejecuta y cuando se detiene.
-La gestión de procesos para los servicios es diferente a los BroadcastReceiver, ya que un número ilimitado de servicios puede solicitar que se ejecuta por un tiempo desconocido.
Prioridad:Una prioridad de aplicación es igual a prioridad más alta de sus componentes, igualmente la prioridad del proceso también se ve afectada por las dependencias entre procesos, si una aplicación tiene una dependencia en un servicio o proveedor de contenidos suministrados por una segunda aplicación, la aplicación de secundaria tendrán al menos una prioridad tan alta como la aplicación que da soporte.
Tipos de procesos según su prioridad:
- Activos: son los que están teniendo alguna interacción con el usuario, en esta categoría también se incluyen Actividades, Servicios, o receptores que se está ejecutando actualmente un controlador de eventos OnReceive.
- Visibles: Hospeda una actividad que está visible en la pantalla, pero no en el primer plano.
- Servicio: Hospeda un servicio que ha sido inicializado con el método startservice(). Aunque estos procesos no son directamente visibles al usuario, generalmente están haciendo tareas que para el usuario son importantes (tales como reproducir un archivo mp3 o mantener una conexión con un servidor de contenidos). El sistema siempre tratará de mantener esos procesos corriendo, a menos que los niveles de memoria comiencen a comprometer el funcionamiento de los procesos de primer plano o visibles.
- Segundo Plano: engloban a las actividades que no son visibles y están en ejecución. El sistema siempre tratará de mantener esos procesos corriendo, a menos que los niveles de memoria comiencen a comprometer el funcionamiento de los procesos de primer plano o visibles.
- Vacíos: No hospeda a ningún componente de aplicación activo. La única razón para mantener ese proceso es tener un "caché" que permita mejorar el tiempo de activación en la próxima vez que un componente de su aplicación sea ejecutado.
Referencias:
Comentarios
Publicar un comentario