3 votos

Hace Android intercambiar la memoria utilizada por los servicios de primer plano?

Buscando un Android KitKat dispositivo fabricado por LG, veo que una app llamada Software Update es siempre ejecuta como un servicio de primer plano (100). Ese servicio se ocupa de una gran cantidad de memoria.

Por lo que puedo decir, que la aplicación es sólo para actualizaciones OTA, que es excepcionalmente raro evento (nunca ha ocurrido hasta ahora!).

En orden para liberar algo de memoria de trabajo, yo estaba pensando acerca de la prevención de la aplicación se inicie en el arranque (mediante la desactivación de su Emisión Receptor) y, a continuación, sólo se ejecuta manualmente de vez en cuando para comprobar si hay actualizaciones.

Pero antes de hacer eso, quiero preguntar si importa en absoluto? Para las aplicaciones que se ejecuta siempre en un primer plano el servicio, será Android simplemente intercambiar de memoria, como un fondo de la aplicación? O es la memoria que se utilice bloqueado por completo en todo momento, haciendo que mi plan que valga la pena?

1voto

usted dijo :

(mediante la desactivación de su Emisión Receptor)


En primer lugar, permítanme señalar que Broadcast Receiver y Service no es la misma cosa ,usted va a obtener la diferencia entre ellos a lo largo de la respuesta.

Los Receptores De Difusión :

Un BroadcastReceiver permite que una aplicación se ejecute, por un breve período de momento, en el fondo, como resultado de algo más sucediendo. Cuando el manejo de la transmisión, la aplicación se da un conjunto fijo de tiempo (10 segundos) en el que para hacer su trabajo. Si no completa en ese momento, la aplicación se considera portarse mal, y su proceso inmediatamente arrojado al fondo estado a ser asesinados por la memoria si es necesario.

Así como se puede leer BroadcastReceiver no puede mantener una aplicación ejecutándose en segundo plano durante más de 10 segundos un poco limitado a la derecha ? es por ello que hay servicios.

Servicios :

  • Citando al Mismo autor en el Mismo artículo :

Un Servicio que permite a una aplicación para implementar de ejecución más fondo de operaciones. En realidad, hay un montón de otras funciones que los servicios que proporcione.

Android el Proceso de gestión de los servicios es diferente de la emisión receptores, debido a un número ilimitado de servicios puede solicitar ser ejecución de una cantidad desconocida de tiempo. Puede que no haya suficiente memoria RAM para tiene todas las de solicitar los servicios de ejecutar, así que como resultado de una fuerte garantías se hacen acerca de ser capaz de seguir funcionando.

Si hay muy poca RAM, los procesos de servicios de hosting será inmediatamente asesinados como procesos en segundo plano. Sin embargo, si apropiado, Android va a recordar que estos servicios desea permanecer ejecutar y reiniciar el proceso en un momento posterior cuando más RAM disponible. Por ejemplo, si el usuario entra a una página web que requiere grandes cantidades de RAM, Android puede matar a fondo los procesos de servicio como la sincronización hasta que el navegador necesidades de memoria de bajar

Los servicios más se puede negociar este comportamiento solicitando que se considerado "primer plano." Esto coloca al servicio de un "por favor, no matar" del estado, sino que requiere que se incluya una notificación al usuario sobre activamente a correr como reproductores de música ,Anti-virus, etc ...

La aplicación necesita para mostrar una notificación ,en su caso, es una aplicación del Sistema no es necesario este requisito se puede decir que el Sistema que debe estar funcionando todo el tiempo y el Sistema no te va a matar sólo si el sistema necesita más memoria y es el único servicio aún en marcha (¿cuáles son las probabilidades de que eso ocurra).

Ahora, volviendo a tu Pregunta, ¿Será que vale la pena ? Yo creo que es porque es un desperdicio (realmente un desperdicio de memoria utilizado y no se libera ,para ningún propósito.

Voy a añadir :

su plan para detener la difusión de receptor no puede mantener el servicio en segundo plano ,te recomiendo que te desactivar la aplicación en Configuración > aplicaciones > todas y haga clic en desactivar (si el botón está allí ) o congelar la aplicación con titanium backup.

Ref : http://android-developers.blogspot.com/2010/04/multitasking-android-way.html http://www.howtogeek.com/161225/htg-explains-how-android-manages-processes/ http://developer.android.com/training/articles/memory.html

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X