Est-il possible d'obtenir les détails de l'activité en cours via adb?.
Vous pouvez utiliser cette commande,
adb Shell dumpsys activity
Vous pouvez trouver le nom de l'activité actuelle dans la pile d'activités.
Sortie: -
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
Je préfère analyser les résultats de dumpsys window windows
par rapport à dumpsys activity
adb Shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
La liste des tâches Keyguard ou Recent n’était pas utilisée comme activité, mais vous pouviez la voir avec mCurrentFocus
J'ai expliqué pourquoi dans cette réponse .
dumpsys window windows
donne plus de détails sur l'activité en cours:
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}}}
Toutefois, pour trouver l’ID de processus (par exemple, pour supprimer l’activité en cours), utilisez dumpsys activity
et grep dans "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"
Cela fonctionne pour moi:
adb Shell dumpsys activity
Et ceci pour afficher le nom de l'activité actuelle:
adb Shell dumpsys activity activities | grep mFocusedActivity | cut -d . -f 5 | cut -d ' ' -f 1
Si vous souhaitez filtrer uniquement les activités de votre application en cours d'exécution/en pause, vous pouvez utiliser cette commande:
adb Shell dumpsys activity activities | grep 'Hist #' | grep 'YOUR_PACKAGE_NAME'
Par exemple:
adb Shell dumpsys activity activities | grep 'Hist #' | grep 'com.supercell.clashroyale'
La sortie sera quelque chose comme:
* 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}
Notez que la sortie affiche la pile réelle d’activités, c’est-à-dire que l’activité la plus importante est celle actuellement affichée.
Vous pouvez essayer cette commande,
adb Shell dumpsys activity recents
Vous y trouverez le nom de l’activité en cours dans la pile d’activités.
Pour obtenir le nom de l'activité la plus récente:
adb Shell dumpsys activity recents | find "Recent #0"
Voici une solution plus simple que la solution adb en ligne de commande (qui fonctionne). C’est plus facile car plus graphique et réalisable depuis Eclipse.
Dans Eclipse avec un appareil Android connecté, allez au menu Fenêtre> Afficher la vue> Autre ... utilisez le texte de filtre "Windows" pour afficher Android> Windows ... ainsi. Le premier élément de la liste est l'activité en cours.
Vous pouvez également afficher cette option en affichant la perspective "Vue hiérarchique" qui, par défaut, affiche la fenêtre Windows.
La commande ci-dessous peut être utilisée pour trouver le package et le nom de l'activité en cours. Trouvez cette commande très utile pour récupérer rapidement ces deux informations sur une application, en particulier lors du développement de tests avec Appium.
adb Shell
dumpsys window windows | grep -E 'mCurrentFocus'
La réponse de cette commande contient à la fois le nom du package et l'activité en cours. Par exemple: "com.Android.contacts" suit le package et "com.Android.contacts.activities.TwelveKeyDialer" est l'activité en cours sur le téléphone connecté à adb.
mCurrentFocus=Window{2089af8 u0 com.Android.contacts/com.Android.contacts.activities.TwelveKeyDialer}
Source: http://www.automationtestinghub.com/apppackage-and-appactivity-name/