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
El sistema operativo Windows Phone esta a punto de desaparecer Con una llegada tardía de Windows a competir en un mercado saturado por Android y iOS, se vio la imposibilidad de triunfo de este sistema operativo, ya que se enfrenta a dos sistemas muy avanzados y enfocados directamente a dispositivos móviles, en todo el mundo podemos ver que la distribución de los usuarios de cada uno de estos en el año en que se lanzó Windows Phone 8.1, en 2014: Android fue el líder con 81.5% del mercado, iOS fue el segundo con 14.8% y entre el resto de sistemas hay un 3.7% dejando con un porcentaje de 2.7% a Windows Phone todo esto según (Flores Villarreal, 2015) . En el transcurso del año 2017 se ha vislumbrado un conjunto de hechos que nos confirman que el Sistema operativo de Windows para dispositivos móviles está llegando a su fin,  entre estos tenemos la reducción de la participación de mercado deWindows Phone bajando drásticamente de tal forma que no alcanza ni el 1%, además de esto, Joe