Proceso 'system/bin/installd' que causa pérdida de memoria

Al revisar mis tareas en ejecución, noté una pérdida de memoria en el proceso system/bin/installd. Una vez finalizado el arranque, comienza a ejecutarse en segundo plano y consume entre 20 y 30 MB de RAM. Con el tiempo, su uso de RAM aumenta gradualmente, llegando a 400 MB, momento en el que provoca un reinicio aleatorio.

Puedo obligar a matar este proceso sin efectos notables. Sin embargo, se reinicia solo y continúa perdiendo memoria.

Antes de que pueda intentar remediar este problema, necesito saber exactamente qué system/bin/installdes/qué hace, algo sobre lo que parece que no puedo encontrar ninguna información.

¿Alguien puede ayudar?

Especificaciones:

  • OnePlus One (rooteado)
  • ROM Mahdi (base CM11), Android 4.4.4 KitKat
  • Construir # KTU84Q
  • Núcleo 3.4.0-Mahdi-One-kk
  • Ejecutar múltiples módulos Xposed, ajustes de inicio, etc.
¿Puedo saber cómo detectó que el proceso estaba perdiendo memoria? Nunca sé si es posible verificar el uso de memoria para no APK.
@AndrewT. Estoy usando "3C Toolbox Pro"; su administrador de tareas muestra todos los procesos en ejecución. Lo recomiendo encarecidamente: es una gran aplicación con toneladas de herramientas para usuarios avanzados.

Respuestas (1)

/system/bin/installdes un demonio del sistema que está involucrado en la instalación de aplicaciones. A las clases del sistema les gusta PackageInstallerusarlo en su ejecución.

Este artículo de DZone se remonta a 2013, pero brinda algunos consejos que pueden encaminarse:

PackageInstaller es la aplicación predeterminada de Android para instalar de forma interactiva un paquete normal. PackageInstaller proporciona una interfaz de usuario para administrar aplicaciones/paquetes. PackageInstaller llama a la actividad InstallAppProgress para recibir instrucciones del usuario. InstallAppProgress le pedirá al Servicio de administración de paquetes que instale el paquete a través de installd. El código fuente está disponible en /packages/apps/PackageInstaller.

El código de Android de hoy dice (por ejemplo services/core/java/com/android/server/pm/Installer.java:):

 public void onStart() {
    Slog.i(TAG, "Waiting for installd to be ready.");
    mInstaller.waitForConnection();
}

El mismo archivo comenta sobre la salida frameworks/native/cmds/installd/installd.h(no busqué más por ahora).

En resumen, es posible que deba consultar el código fuente para obtener más información installd, dependiendo de lo que esté haciendo.