Gestión de memoria en Android

1. Descripción general del mecanismo de administración de memoria

1. Mecanismo de distribución:

El sistema Android asignará razonablemente memoria para cada proceso, a fin de garantizar que cada proceso pueda ejecutarse normalmente. En lugar de no usar suficiente memoria o cada proceso ocupa demasiada memoria.

2. Mecanismo de reciclaje

Cuando el sistema operativo se quede sin memoria, tendrá un mecanismo razonable de recuperación y reasignación.

Esto asegura que el nuevo proceso pueda ejecutarse normalmente. Al reciclar, es posible matar aquellos procesos que están ocupando memoria. Por lo tanto, el sistema operativo debe tener un mecanismo razonable para matar los procesos ocupados en la memoria para garantizar que se minimicen los efectos secundarios.

dos. Mecanismo de gestión de memoria de Android

1. Mecanismo de distribución

Android utiliza un mecanismo de asignación de memoria elástica. Es decir, no se asignará demasiada memoria al principio. En cambio, se asigna una pequeña cantidad a cada proceso de APP. Esta pequeña cantidad está relacionada con el tamaño de la memoria del teléfono.

Cuando la memoria del proceso no es suficiente, Android asignará algo de memoria a cada proceso. Pero este tamaño de memoria no es arbitrario, es limitado. El sistema operativo también quiere mantener vivos más procesos. De esta manera, cuando el usuario abre el proceso, no es necesario volver a crearlo, solo restaurarlo.

2. Mecanismo de reciclaje

Android tiene prioridad para la clasificación de procesos. Los procesos se clasifican y dividen principalmente en cinco categorías.

1. Proceso de primer plano

Es decir, el proceso que se muestra actualmente en la pantalla

2. Proceso visible

Se puede ver que el proceso significa que el proceso de primer plano ya no pertenece al primer plano. Pero el proceso aún es visible para el usuario.

3. Proceso de servicio

Habilite algunos servicios, como push, ubicación, etc.

4. Proceso de antecedentes

Los procesos en segundo plano son diferentes de los procesos de servicio. Hará algunos cálculos en segundo plano.

5. Proceso vacío

Un proceso que no tiene nada en ejecución. La memoria puede reclamarlo en cualquier momento.

Entonces, ¿por qué Android hace esta clasificación? Porque cuanto más bajo sea el nivel, mayor será la posibilidad de ser asesinado y reciclado por el sistema.

Aquí observamos que el proceso en primer plano, el proceso visible y el proceso de servicio nunca se eliminarán ni se reciclarán en circunstancias normales.

El proceso en segundo plano se almacena en una lista de caché, que es una estructura LRU, que es la menos utilizada recientemente.

El proceso vacío es equilibrar todo el sistema. Android no guarda el proceso.

Cuando Android comienza a eliminar un proceso, el sistema juzgará los beneficios que trae eliminar el proceso.

Android siempre prefiere eliminar los procesos que reclaman más memoria.

tres. Características del mecanismo de gestión de memoria.

Podemos entenderlo como el objetivo de gestión de memoria del sistema.

1. Ocupa menos memoria

2. Cuando corresponda, liberar razonablemente los recursos de memoria.

3. En el caso de una memoria del sistema limitada, se pueden liberar la mayoría de los recursos sin importancia. Para proporcionar memoria disponible para el sistema Android.

4. Es razonable guardar o restaurar datos importantes en un ciclo de vida especial, para que el sistema pueda restaurar correctamente la aplicación.

cuatro método de optimización de memoria

1. Cuando se complete el servicio, intente detenerlo.

Puede usar intentservice en lugar de service.

Porque intentservice puede realizar tareas que consumen mucho tiempo en el método intenthandler, y se cerrará automáticamente una vez que se complete la operación.

2. Cuando la interfaz de usuario no esté visible, libere algunos recursos que solo utiliza la interfaz de usuario.

3. Cuando la memoria del sistema esté apretada, libere tantos recursos no importantes como sea posible.

4. Evite el desperdicio de memoria causado por el abuso de Bitmap.

5. Utilice contenedores de datos optimizados para memoria.

6. Evite los marcos que usan inyección de dependencia.

7. Use APK alineado con zip

8. Utilice múltiples procesos.

Supongo que te gusta

Origin blog.csdn.net/howlaa/article/details/128815131
Recomendado
Clasificación