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.

  • Cómo ejecutar la aplicación C ++ en Android SHELL
  • Monte una tarjeta SD manualmente desde el shell de adb en android
  • ¿Dónde encontrar información sobre el comando de shell de "llamada de servicio" de Android?
  • Android: Cómo restringir una aplicación con ADB shell am start
  • interpretando dumpsys cpuinfo
  • ¿Cómo puedo eliminar todas las tareas / aplicaciones activas que utilizan ADB?
  • FFMPEG para Android en Windows no se compila correctamente
  • ¿Cómo medir el tiempo de shell de adb con resolución de milisegundos?
  • No se puede ejecutar el archivo ejecutable desde el shell de adb
  • APV lector pdf. Problemas de instalación, descompresión y biblioteca nativa
  • C ++ Command Line Aplicaciones en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.