Puede ser aún mejor si se utilizaadb shell dumpsys activity activities
insomne
3
Esta es una buena información. Algunas aplicaciones tienen ventanas emergentes. ¿Cómo puede saber si hay una ventana emergente en la parte superior?
Empario
202
Prefiero analizar los resultados de dumpsys window windowsmásdumpsys activity
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
Bloqueo de teclas o tareas recientes Lista utilizan para no aparecer como actividades, sino que fueron capaces de ver con ellos mCurrentFocus. He explicado por qué en esta respuesta .
$ adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' mCurrentFocus= mFocusedApp=AppWindowToken{40b11d40 token=HistoryRecord{ }} El foco actual está vacío. ¿Alguna idea? Mi dispositivo está conectado, la aplicación se está ejecutando, es un dispositivo 2.3
Gokhan Arik
1
¡así puedo encontrar qué aplicación muestra anuncios aleatoriamente sin mi permiso! ¡gracias!
CuongDC
adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
Qamar
3
Esto no parece funcionar en Android 29, ya que ninguno de estos campos aparece ahora en el volcado de la ventana
James Riordan
22
Android Q rompió la mayoría de estos por mí. Aquí hay uno nuevo que parece estar funcionando (al menos en Android Q).
Para cualquier otra persona que desee hacer esto desde una terminal en el dispositivo (es decir, con Terminal Emulator o Automagic), dumpsys activity recents | grep "Recent #0"obtendrá la línea de salida con el nombre de la actividad más reciente. (Tiene que hacerse como root.)
Michael Hoffmann
1
Error:find: No such file or directory
IgorGanapolsky
3
Aquí hay una solución que es más fácil que la solución adb de línea de comandos (que funciona). Es más fácil porque es más gráfico y se puede hacer desde Eclipse.
En Eclipse con el dispositivo Android conectado, vaya al menú Ventana> Mostrar vista> Otro ... use el texto de filtro "Windows" para abrir Android> Windows ... muestre esto. El elemento superior de la lista es la actividad actual.
Otra forma de sacar esto es mostrando la perspectiva "Vista de jerarquía", que por defecto mostrará la ventana de Windows.
El siguiente comando se puede usar para encontrar el paquete y el nombre de la actividad actual. Encontré este comando muy útil para obtener rápidamente estos dos datos sobre una aplicación, especialmente cuando se desarrollan pruebas con Appium.
adb shell dumpsys window windows | grep -E 'mCurrentFocus'
La respuesta de este comando contiene el nombre del paquete y la actividad actual. Por ejemplo: a continuación, "com.android.contacts" es el paquete y "com.android.contacts.activities.TwelveKeyDialer" es la Actividad actual iniciada en el teléfono que está conectado a través de adb.
this.getClass().getSimpleName()
Respuestas:
Puedes usar este comando,
Puede encontrar el nombre de la actividad actual en la pila de actividades.
Salida: -
Sticky broadcasts: * Sticky action android.intent.action.BATTERY_CHANGED: Intent: act=android.intent.action.BATTERY_CHANGED flg=0x60000000 Bundle[{icon-small=17302169, present=true, scale=100, level=50, technology=Li-ion, status=2, voltage=0, plugged=1, health=2, temperature=0}] * Sticky action android.net.thrott.THROTTLE_ACTION: Intent: act=android.net.thrott.THROTTLE_ACTION Bundle[{level=-1}] * Sticky action android.intent.action.NETWORK_SET_TIMEZONE: Intent: act=android.intent.action.NETWORK_SET_TIMEZONE flg=0x20000000 Bundle[mParcelledData.dataSize=68] * Sticky action android.provider.Telephony.SPN_STRINGS_UPDATED: Intent: act=android.provider.Telephony.SPN_STRINGS_UPDATED flg=0x20000000 Bundle[mParcelledData.dataSize=156] * Sticky action android.net.thrott.POLL_ACTION: Intent: act=android.net.thrott.POLL_ACTION Bundle[{cycleRead=0, cycleStart=1349893800000, cycleEnd=1352572200000, cycleWrite=0}] * Sticky action android.intent.action.SIM_STATE_CHANGED: Intent: act=android.intent.action.SIM_STATE_CHANGED flg=0x20000000 Bundle[mParcelledData.dataSize=116] * Sticky action android.intent.action.SIG_STR: Intent: act=android.intent.action.SIG_STR flg=0x20000000 Bundle[{EvdoSnr=-1, CdmaDbm=-1, GsmBitErrorRate=-1, CdmaEcio=-1, EvdoDbm=-1, GsmSignalStrength=7, EvdoEcio=-1, isGsm=true}] * Sticky action android.intent.action.SERVICE_STATE: Intent: act=android.intent.action.SERVICE_STATE flg=0x20000000 Bundle[{cdmaRoamingIndicator=0, operator-numeric=310260, networkId=0, state=0, emergencyOnly=false, operator-alpha-short=Android, radioTechnology=3, manual=false, cssIndicator=false, operator-alpha-long=Android, systemId=0, roaming=false, cdmaDefaultRoamingIndicator=0}] * Sticky action android.net.conn.CONNECTIVITY_CHANGE: Intent: act=android.net.conn.CONNECTIVITY_CHANGE flg=0x30000000 Bundle[{networkInfo=NetworkInfo: type: mobile[UMTS], state: CONNECTED/CONNECTED, reason: simLoaded, extra: internet, roaming: false, failover: false, isAvailable: true, reason=simLoaded, extraInfo=internet}] * Sticky action android.intent.action.NETWORK_SET_TIME: Intent: act=android.intent.action.NETWORK_SET_TIME flg=0x20000000 Bundle[mParcelledData.dataSize=36] * Sticky action android.media.RINGER_MODE_CHANGED: Intent: act=android.media.RINGER_MODE_CHANGED flg=0x70000000 Bundle[{android.media.EXTRA_RINGER_MODE=2}] * Sticky action android.intent.action.ANY_DATA_STATE: Intent: act=android.intent.action.ANY_DATA_STATE flg=0x20000000 Bundle[{state=CONNECTED, apnType=*, iface=/dev/omap_csmi_tty1, apn=internet, reason=simLoaded}] Activity stack: * TaskRecord{450adb90 #22 A org.chanakyastocktipps.com} clearOnBackground=false numActivities=2 rootWasReset=false affinity=org.chanakyastocktipps.com intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.chanakyastocktipps.com/.ui.SplashScreen} realActivity=org.chanakyastocktipps.com/.ui.SplashScreen lastActiveTime=15107753 (inactive for 4879s) * Hist #2: HistoryRecord{450d7ab0 org.chanakyastocktipps.com/.ui.Profile} packageName=org.chanakyastocktipps.com processName=org.chanakyastocktipps.com launchedFromUid=10046 app=ProcessRecord{44fa3450 1065:org.chanakyastocktipps.com/10046} Intent { cmp=org.chanakyastocktipps.com/.ui.Profile } frontOfTask=false task=TaskRecord{450adb90 #22 A org.chanakyastocktipps.com} taskAffinity=org.chanakyastocktipps.com realActivity=org.chanakyastocktipps.com/.ui.Profile base=/data/app/org.chanakyastocktipps.com-1.apk/data/app/org.chanakyastocktipps.com-1.apk data=/data/data/org.chanakyastocktipps.com labelRes=0x7f09000b icon=0x7f020065 theme=0x1030007 stateNotNeeded=false componentSpecified=true isHomeActivity=false configuration={ scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=18 uiMode=17 seq=3} resultTo=HistoryRecord{44f523c0 org.chanakyastocktipps.com/.ui.MainScreen} resultWho=null resultCode=4 launchFailed=false haveState=false icicle=null state=RESUMED stopped=false delayedResume=false finishing=false keysPaused=false inHistory=true persistent=false launchMode=0 fullscreen=true visible=true frozenBeforeDestroy=false thumbnailNeeded=false idle=true waitingVisible=false nowVisible=true * Hist #1: HistoryRecord{44f523c0 org.chanakyastocktipps.com/.ui.MainScreen} packageName=org.chanakyastocktipps.com processName=org.chanakyastocktipps.com launchedFromUid=10046 app=ProcessRecord{44fa3450 1065:org.chanakyastocktipps.com/10046} Intent { cmp=org.chanakyastocktipps.com/.ui.MainScreen } frontOfTask=true task=TaskRecord{450adb90 #22 A org.chanakyastocktipps.com} taskAffinity=org.chanakyastocktipps.com realActivity=org.chanakyastocktipps.com/.ui.MainScreen base=/data/app/org.chanakyastocktipps.com-1.apk/data/app/org.chanakyastocktipps.com-1.apk data=/data/data/org.chanakyastocktipps.com labelRes=0x7f09000b icon=0x7f020065 theme=0x1030007 stateNotNeeded=false componentSpecified=true isHomeActivity=false configuration={ scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=18 uiMode=17 seq=3} launchFailed=false haveState=true icicle=Bundle[mParcelledData.dataSize=1344] state=STOPPED stopped=true delayedResume=false finishing=false keysPaused=false inHistory=true persistent=false launchMode=0 fullscreen=true visible=false frozenBeforeDestroy=false thumbnailNeeded=false idle=true * TaskRecord{450615a0 #2 A com.android.launcher} clearOnBackground=true numActivities=1 rootWasReset=false affinity=com.android.launcher intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher} realActivity=com.android.launcher/com.android.launcher2.Launcher lastActiveTime=12263090 (inactive for 7724s) * Hist #0: HistoryRecord{4505d838 com.android.launcher/com.android.launcher2.Launcher} packageName=com.android.launcher processName=com.android.launcher launchedFromUid=0 app=ProcessRecord{45062558 129:com.android.launcher/10025} Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher } frontOfTask=true task=TaskRecord{450615a0 #2 A com.android.launcher} taskAffinity=com.android.launcher realActivity=com.android.launcher/com.android.launcher2.Launcher base=/system/app/Launcher2.apk/system/app/Launcher2.apk data=/data/data/com.android.launcher labelRes=0x7f0c0002 icon=0x7f020044 theme=0x7f0d0000 stateNotNeeded=true componentSpecified=false isHomeActivity=true configuration={ scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=18 uiMode=17 seq=3} launchFailed=false haveState=true icicle=Bundle[mParcelledData.dataSize=3608] state=STOPPED stopped=true delayedResume=false finishing=false keysPaused=false inHistory=true persistent=false launchMode=2 fullscreen=true visible=false frozenBeforeDestroy=false thumbnailNeeded=false idle=true Running activities (most recent first): TaskRecord{450adb90 #22 A org.chanakyastocktipps.com} Run #2: HistoryRecord{450d7ab0 org.chanakyastocktipps.com/.ui.Profile} Run #1: HistoryRecord{44f523c0 org.chanakyastocktipps.com/.ui.MainScreen} TaskRecord{450615a0 #2 A com.android.launcher} Run #0: HistoryRecord{4505d838 com.android.launcher/com.android.launcher2.Launcher} mPausingActivity: null mResumedActivity: HistoryRecord{450d7ab0 org.chanakyastocktipps.com/.ui.Profile} mFocusedActivity: HistoryRecord{450d7ab0 org.chanakyastocktipps.com/.ui.Profile} mLastPausedActivity: HistoryRecord{44f523c0 org.chanakyastocktipps.com/.ui.MainScreen} mCurTask: 22 Running processes (most recent first): App #13: adj=vis /F 45052120 119:com.android.inputmethod.latin/10003 (service) com.android.inputmethod.latin.LatinIME<=ProcessRecord{44ec2698 59:system/1000} PERS #12: adj=sys /F 44ec2698 59:system/1000 (fixed) App #11: adj=fore /F 44fa3450 1065:org.chanakyastocktipps.com/10046 (top-activity) App #10: adj=bak /B 44e7c4c0 299:com.svox.pico/10028 (bg-empty) App # 9: adj=bak+1/B 450f7ef0 288:com.dreamreminder.org:feather_system_receiver/10057 (bg-empty) App # 8: adj=bak+2/B 4503cc38 201:com.android.defcontainer/10010 (bg-empty) App # 7: adj=home /B 45062558 129:com.android.launcher/10025 (home) App # 6: adj=bak+3/B 450244d8 276:android.process.media/10002 (bg-empty) App # 5: adj=bak+4/B 44f2b9b8 263:com.android.quicksearchbox/10012 (bg-empty) App # 4: adj=bak+5/B 450beec0 257:com.android.protips/10007 (bg-empty) App # 3: adj=bak+6/B 44ff37b8 270:com.android.music/10022 (bg-empty) PERS # 2: adj=core /F 45056818 124:com.android.phone/1001 (fixed) App # 1: adj=bak+7/B 45080c38 238:com.dreamreminder.org/10057 (bg-empty) App # 0: adj=empty/B 4507d030 229:com.android.email/10030 (bg-empty) PID mappings: PID #59: ProcessRecord{44ec2698 59:system/1000} PID #119: ProcessRecord{45052120 119:com.android.inputmethod.latin/10003} PID #124: ProcessRecord{45056818 124:com.android.phone/1001} PID #129: ProcessRecord{45062558 129:com.android.launcher/10025} PID #201: ProcessRecord{4503cc38 201:com.android.defcontainer/10010} PID #229: ProcessRecord{4507d030 229:com.android.email/10030} PID #238: ProcessRecord{45080c38 238:com.dreamreminder.org/10057} PID #257: ProcessRecord{450beec0 257:com.android.protips/10007} PID #263: ProcessRecord{44f2b9b8 263:com.android.quicksearchbox/10012} PID #270: ProcessRecord{44ff37b8 270:com.android.music/10022} PID #276: ProcessRecord{450244d8 276:android.process.media/10002} PID #288: ProcessRecord{450f7ef0 288:com.dreamreminder.org:feather_system_receiver/10057} PID #299: ProcessRecord{44e7c4c0 299:com.svox.pico/10028} PID #1065: ProcessRecord{44fa3450 1065:org.chanakyastocktipps.com/10046} mHomeProcess: ProcessRecord{45062558 129:com.android.launcher/10025} mConfiguration: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=1 layout=18 uiMode=17 seq=3} mConfigWillChange: false mSleeping=false mShuttingDown=false
fuente
adb shell dumpsys activity activities
Prefiero analizar los resultados de
dumpsys window windows
másdumpsys activity
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
Bloqueo de teclas o tareas recientes Lista utilizan para no aparecer como actividades, sino que fueron capaces de ver con ellos
mCurrentFocus
. He explicado por qué en esta respuesta .fuente
$ adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' mCurrentFocus= mFocusedApp=AppWindowToken{40b11d40 token=HistoryRecord{ }}
El foco actual está vacío. ¿Alguna idea? Mi dispositivo está conectado, la aplicación se está ejecutando, es un dispositivo 2.3adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
Android Q rompió la mayoría de estos por mí. Aquí hay uno nuevo que parece estar funcionando (al menos en Android Q).
adb shell "dumpsys activity activities | grep mResumedActivity"
La salida se ve así:
mResumedActivity: ActivityRecord{7f6df99 u0 com.sample.app/.feature.SampleActivity t92}
Editar: también funciona en Android R para mí
fuente
adb shell 'dumpsys activity activities | grep ResumedActivity'
dumpsys window windows
da más detalles sobre la actividad actual:adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'" mCurrentFocus=Window{41d2c970 u0 com.android.launcher/com.android.launcher2.Launcher} mFocusedApp=AppWindowToken{4203c170 token=Token{41b77280 ActivityRecord{41b77a28 u0 com.android.launcher/com.android.launcher2.Launcher t3}}}
Sin embargo, para encontrar el ID del proceso (por ejemplo, para eliminar la actividad actual), use
dumpsys activity
y grep en "top-activity":adb shell "dumpsys activity | grep top-activity" Proc # 0: fore F/A/T trm: 0 3074:com.android.launcher/u0a8 (top-activity) adb shell "kill 3074"
fuente
Esto funciona para mi:
adb shell dumpsys activity
Y esto para mostrar el nombre de la actividad actual:
adb shell dumpsys activity activities | grep mFocusedActivity | cut -d . -f 5 | cut -d ' ' -f 1
fuente
Si desea filtrar solo las actividades de su aplicación actualmente en ejecución / en pausa, puede usar este comando:
adb shell dumpsys activity activities | grep 'Hist #' | grep 'YOUR_PACKAGE_NAME'
Por ejemplo:
adb shell dumpsys activity activities | grep 'Hist #' | grep 'com.supercell.clashroyale'
La salida será algo como:
* Hist #2: ActivityRecord{26ba44b u10 com.supercell.clashroyale/StartActivity t27770} * Hist #1: ActivityRecord{2f3a0236 u10 com.supercell.clashroyale/SomeActivity t27770} * Hist #0: ActivityRecord{20bbb4ae u10 com.supercell.clashroyale/OtherActivity t27770}
Tenga en cuenta que la salida muestra la pila real de actividades, es decir, la actividad principal es la que se muestra actualmente.
fuente
Las respuestas antiguas dejaron de funcionar en las nuevas versiones de Android. Ahora uso lo siguiente:
adb shell "dumpsys activity activities | grep ResumedActivity"
fuente
adb shell dumpsys activity | grep "mCurrentFocus"
para Android 10Puedes probar este comando,
Allí puede encontrar el nombre de la actividad actual en la pila de actividades.
Para obtener el nombre de la actividad más reciente:
adb shell dumpsys activity recents | find "Recent #0"
fuente
dumpsys activity recents | grep "Recent #0"
obtendrá la línea de salida con el nombre de la actividad más reciente. (Tiene que hacerse como root.)find: No such file or directory
Aquí hay una solución que es más fácil que la solución adb de línea de comandos (que funciona). Es más fácil porque es más gráfico y se puede hacer desde Eclipse.
En Eclipse con el dispositivo Android conectado, vaya al menú Ventana> Mostrar vista> Otro ... use el texto de filtro "Windows" para abrir Android> Windows ... muestre esto. El elemento superior de la lista es la actividad actual.
Otra forma de sacar esto es mostrando la perspectiva "Vista de jerarquía", que por defecto mostrará la ventana de Windows.
fuente
El siguiente comando se puede usar para encontrar el paquete y el nombre de la actividad actual. Encontré este comando muy útil para obtener rápidamente estos dos datos sobre una aplicación, especialmente cuando se desarrollan pruebas con Appium.
adb shell dumpsys window windows | grep -E 'mCurrentFocus'
La respuesta de este comando contiene el nombre del paquete y la actividad actual. Por ejemplo: a continuación, "com.android.contacts" es el paquete y "com.android.contacts.activities.TwelveKeyDialer" es la Actividad actual iniciada en el teléfono que está conectado a través de adb.
mCurrentFocus=Window{2089af8 u0 com.android.contacts/com.android.contacts.activities.TwelveKeyDialer}
Referencia: http://www.automationtestinghub.com/apppackage-and-appactivity-name/
fuente
En Windows, este comando me funciona para mostrar el nombre de la actividad actual
adb shell dumpsys window windows | find "mCurrentFocus"
Salida:
mCurrentFocus=Window{a43a55b u0 com.android.contacts/com.android.contacts.activities.TwelveKeyDialer}
Otras soluciones con "agarrar" producen un error en mi pc con Windows
'grep' is not recognized as an internal or external command, operable program or batch file.
Entonces, usando "buscar" resolver el error en mi caso.
fuente