Cómo detectar la aplicación en ejecución mediante el comando ADB

Tengo un dispositivo Android que ejecuta Jelly Bean OS.

¿Hay alguna manera de detectar el proceso está ejecutando o no utilizando el comando ADB si conozco el nombre del paquete ?

No es necesario usar grep. ps en Android puede filtrar por el valor COMM (últimos 15 caracteres del nombre del paquete en caso de aplicación java)

Digamos que queremos comprobar si com.android.phone está ejecutando:

 adb shell ps m.android.phone USER PID PPID VSIZE RSS WCHAN PC NAME radio 1389 277 515960 33964 ffffffff 4024c270 S com.android.phone 

La opción de filtrado por valor COMM se ha eliminado de ps en Android 7.0. Para comprobar si hay un proceso en ejecución en su nombre en Android 7.0, puede utilizar el comando pidof :

 adb shell pidof com.android.phone 

Devuelve el PID si dicho proceso fue encontrado o una cadena vacía de lo contrario.

Puedes usar

 adb shell ps | grep apps | awk '{print $9}' 

Para producir una salida como:

 com.google.process.gapps com.google.android.apps.uploader com.google.android.apps.plus com.google.android.apps.maps com.google.android.apps.maps:GoogleLocationService com.google.android.apps.maps:FriendService com.google.android.apps.maps:LocationFriendService 

Adb shell ps devuelve una lista de todos los procesos en ejecución en el dispositivo android, grep apps busca cualquier fila con contiene "apps", como se puede ver más arriba son todos com.google.android.APPS. O GAPPS, awk extrae la 9ª columna que en este caso es el nombre del paquete.

Para buscar un paquete en particular, utilice

 adb shell ps | grep PACKAGE.NAME.HERE | awk '{print $9}' 

Es decir adb shell ps | grep com.we7.player | awk '{print $9}' adb shell ps | grep com.we7.player | awk '{print $9}'

Si se está ejecutando el nombre aparecerá, si no no habrá ningún resultado devuelto.

Alternativamente, usted podría ir con pgrep o procesar Grep. (Busybox es necesario)

Usted podría hacer un adb shell pgrep com.example.app y se mostraría sólo el proceso Id.

Como sugerencia, ya que Android es Linux, puedes usar la mayoría de los comandos básicos de Linux con adb shell para navegar / controlar. :RE

Si desea obtener directamente el nombre del paquete de la aplicación actual en el enfoque, utilice este comando adb –

 adb shell dumpsys window windows | grep -E 'mFocusedApp'| cut -d / -f 1 | cut -d " " -f 7 

Se extrae información adicional del resultado del comando adb mediante el comando cortar. Solución original desde aquí .

Acabo de notar que la parte superior está disponible en adb , por lo que puede hacer cosas como

  adb shell top -m5 

Para supervisar los cinco principales procesos de acaparamiento de la CPU.

O

  adb shell top -m5 -s cpu -n 20|tee top.log 

Para grabar esto durante un minuto y recoger la salida a un archivo en su computadora.

  • Utilizar shell de adb de android para devolver una actividad
  • ¿Cómo puedo obtener el tamaño del sistema de archivos android en bytes de shell de adb?
  • ¿Ejecutar comandos de Shell a través de código java en Android?
  • Múltiples comandos a través de Jsch Shell
  • Cómo salir de APK de shell
  • Adb extraer archivo en una carpeta específica de Pc
  • Adb shell su funciona, pero la raíz adb no
  • Controla el LED Android desde el shell
  • ¿Cómo ingresar comandos a CTS-Tradefed?
  • Comando shell de shell de adb y permanecer en shell
  • Compruebe si el directorio existe en Android sdcard con bash
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.