Ir al contenido principal

Procesos y memoria en Android


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
-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.
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.
center


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

Entradas más populares de este blog

Pronto podrás buscar trabajo desde Facebook

Esta red social se prepara para invadir nuevos horizontes, pues nueva información sugiere que los planes de Facebook ahora se centrarán en competir con Linkedin (red social profesional, es decir, orientada a relaciones comerciales y profesionales, en donde estos mismos y empresas buscan promocionarse). Aunque Facebook ya es utilizado por muchas personas para buscar trabajo y por muchas empresas para encontrar nuevos talentos, le hacen faltas herramientas, las cuales desea explotar con este nuevo proyecto Habrá quién podrá argumentar que hoy en día ya ha utilizado Facebook para buscar trabajo, pues muchas empresas aprovechan la red social para encontrar nuevos talentos, sin embargo, Facebook quiere explotar este camino por el lado profesional, de esta manera habrá muchas más herramientas que tanto las empresas como los usuarios podrán aprovechar. Según se muestra en algunas fotografías filtradas, los usuarios podrán subir información sobre su currículum a su perfil de Facebo
 Se realizó la primera cirugía con realidad mixta con unos HoloLens El proyecto de Microsoft de realidad aumentada, HoloLens, promete muchas cosas, y entre ellas, aplicaciones en la vida real, tales como la medicina. Esta tecnología fue usada en una cirugía de un tumor muscular maligno en el hospital Gregorio Marañón de Madrid, España. Este sistema fue desarrollado por una empresa española llamada Exovite. Un médico puede tener “Flotando” la información del paciente, tales como radiografías, un atlas anatómico del paciente o cualquier información relevante, y manipularla con sus manos. Además, podía enviar directamente esa información a un monitor para que todo el equipo la pudiera ver. A pesar de que es una tecnología que todavía está muy nueva y que le tomara un par de años para desarrollarse de mejor manera, ya está mostrando las utilidades que puede tener, y que estamos ante una tecnología que cambiara la forma que vemos el mundo. referencias: https://