Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Lista de todos los procesos en ejecución en Android

¿Cómo obtener la lista de todo el sistema Android de ejecución del proceso, incluyendo el sistema de procesos iniciados?

Intenté obtener la lista usando el siguiente código:

ActivityManager activityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE ); List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses(); 

Esto me dio la Lista de procesos como com.android.phone , com.android.chrome , etc.

Pero cuando ejecuto un comando ps en mi adb shell , pude ver todo otro montón de procesos en ejecución. Estoy adjuntando la captura de pantalla de todos los procesos que se ejecutan en mi sistema. Ejecución de procesos en mis dispositivos

Como se puede ver, hay varios procesos de Android System que también se ejecutan como /system/bin/vold y /system/bin/installed , etc.

Sin embargo, estos no son reportados por la API getRunningAppProcesses() . En sus documentos, dice que esta API:

Devuelve una lista de procesos de aplicación que se ejecutan en el dispositivo.

¿Significa esto que no devolverá "proceso del sistema"? Y si ese es el caso lo que el desarrollador de la opción puede tener que iterar sobre "TODO" el proceso que se ejecuta en Android?

¿Qué más intenté: probado con 2 API más de ActivityManager :

  1. getRecentTasks(int maxNum) y su variante.

Pero los documentos Android advierten sobre su uso como se indica a continuación:

Este método fue obsoleto en API nivel 21.

A partir de LOLLIPOP, este método ya no está disponible para aplicaciones de terceros

  1. getRunningServices(int maxNum)

Pero ambos no podían darme nombres como /system/bin/debuggerd , etc.

NOTA: Estoy usando Android-4.2 Jellybean, en un dispositivo no enraizado.

  • Android proceso asesino
  • ¿Cómo puedo ver qué wakelocks están activos?
  • ¿El nombre del proceso es el mismo que el nombre del paquete en android?
  • Android - ¿Cómo obtener el processName o packageName usando PID?
  • El nombre de aplicación de PackageManager siempre es nulo
  • Apertura de la cámara en un proceso diferente
  • Runtime.exec () error: se bloquea sin proporcionar un objeto de proceso
  • Cada actividad en Android es un proceso o una aplicación es un proceso
  • One Solution collect form web for “Lista de todos los procesos en ejecución en Android”

    Al llamar a una API de ActivityManager , sólo obtiene las aplicaciones que se registran con ella, es decir, las actividades de la interfaz de usuario y no todos los procesos. Aquellos que veas con un nombre DNS no inverso, pero una ruta (por ejemplo, /system/bin/* ) son daemons nativos, iniciados por init y dejados fuera del ActivityManager .

    Una manera alrededor de esto es conseguir la lista de procesos directamente de /proc (apenas como el ps la caja de herramientas lo hace). Esto requiere iterating programáticamente sobre los directorios allí, (es decir, /proc/[0-9]* ), y la poda de los hilos del núcleo. Los hilos del núcleo son aquellos con un PPID de 2, por lo que son fáciles. Los daemons nativos tendrán un PPID de 1. Las aplicaciones tendrán un PPID de Zygote.

    Referencia: NewAndroidBook.com

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.