มีวิธีรับรายละเอียดของกิจกรรมปัจจุบันที่ทำงานผ่าน adb หรือไม่
คำตอบ:
คุณสามารถใช้คำสั่งนี้
adb shell dumpsys activity
คุณสามารถค้นหาชื่อกิจกรรมปัจจุบันในกองกิจกรรม
เอาท์พุท: -
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
adb shell dumpsys activity activities
ฉันชอบการแยกวิเคราะห์ผลลัพธ์dumpsys window windows
มากกว่าdumpsys activity
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
ล็อคปุ่มกดหรืองานที่ใช้ล่าสุดที่ใช้ในการไม่แสดงขึ้นเป็นกิจกรรม mCurrentFocus
แต่คุณสามารถที่จะเห็นพวกเขาด้วย ฉันได้อธิบายเหตุผลในคำตอบนี้แล้ว
$ adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' mCurrentFocus= mFocusedApp=AppWindowToken{40b11d40 token=HistoryRecord{ }}
โฟกัสปัจจุบันว่างเปล่า ความคิดใด ๆ ? อุปกรณ์ของฉันเชื่อมต่ออยู่แอปกำลังทำงานเป็นอุปกรณ์ 2.3
adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
Android Q ทำลายส่วนใหญ่สำหรับฉัน นี่คือสิ่งใหม่ที่ดูเหมือนจะใช้งานได้ (อย่างน้อยก็ใน Android Q)
adb shell "dumpsys activity activities | grep mResumedActivity"
ผลลัพธ์ดูเหมือนว่า:
mResumedActivity: ActivityRecord{7f6df99 u0 com.sample.app/.feature.SampleActivity t92}
แก้ไข: ใช้งานได้กับ Android R สำหรับฉันเช่นกัน
adb shell 'dumpsys activity activities | grep ResumedActivity'
dumpsys window windows
ให้รายละเอียดเพิ่มเติมเกี่ยวกับกิจกรรมปัจจุบัน:
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}}}
อย่างไรก็ตามในการค้นหา ID กระบวนการ (เช่นเพื่อฆ่ากิจกรรมปัจจุบัน) ให้ใช้dumpsys activity
และ grep ใน "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"
สิ่งนี้ใช้ได้กับฉัน:
adb shell dumpsys activity
และสิ่งนี้เพื่อแสดงชื่อกิจกรรมปัจจุบัน:
adb shell dumpsys activity activities | grep mFocusedActivity | cut -d . -f 5 | cut -d ' ' -f 1
หากคุณต้องการกรองเฉพาะกิจกรรมของแอปที่กำลังทำงาน / หยุดชั่วคราวคุณสามารถใช้คำสั่งนี้:
adb shell dumpsys activity activities | grep 'Hist #' | grep 'YOUR_PACKAGE_NAME'
ตัวอย่างเช่น:
adb shell dumpsys activity activities | grep 'Hist #' | grep 'com.supercell.clashroyale'
ผลลัพธ์จะเป็นดังนี้:
* 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}
โปรดสังเกตว่าเอาต์พุตแสดงสแต็กของกิจกรรมที่แท้จริงกล่าวคือกิจกรรมที่อยู่บนสุดคือกิจกรรมที่กำลังแสดงอยู่
คำตอบเก่าหยุดทำงานใน Android เวอร์ชันใหม่ ตอนนี้ฉันใช้สิ่งต่อไปนี้:
adb shell "dumpsys activity activities | grep ResumedActivity"
adb shell dumpsys activity | grep "mCurrentFocus"
สำหรับ Android 10
คุณสามารถลองใช้คำสั่งนี้
adb shell dumpsys activity recents
คุณจะพบชื่อกิจกรรมปัจจุบันในกองกิจกรรม
ในการรับชื่อกิจกรรมล่าสุด:
adb shell dumpsys activity recents | find "Recent #0"
dumpsys activity recents | grep "Recent #0"
จะได้รับบรรทัดผลลัพธ์ที่มีชื่อกิจกรรมล่าสุด (ต้องทำเป็นรูท)
find: No such file or directory
นี่คือโซลูชันที่ง่ายกว่าโซลูชัน adb บรรทัดคำสั่ง (ซึ่งใช้งานได้) ง่ายกว่าเพราะเป็นกราฟิกมากกว่าและสามารถทำได้จากภายใน Eclipse
ใน Eclipse พร้อมอุปกรณ์ Android ให้ไปที่เมนูหน้าต่าง> แสดงมุมมอง> อื่น ๆ ... ใช้ข้อความตัวกรอง "Windows" เพื่อดึง Android> Windows ... แสดงสิ่งนี้ รายการบนสุดในรายการคือกิจกรรมปัจจุบัน
อีกวิธีในการดึงสิ่งนี้ขึ้นมาคือการแสดงมุมมอง "มุมมองลำดับชั้น" ซึ่งโดยค่าเริ่มต้นจะแสดงหน้าต่าง Windows
คำสั่งด้านล่างนี้สามารถใช้เพื่อค้นหาทั้งแพ็คเกจและชื่อกิจกรรมปัจจุบัน พบคำสั่งที่มีประโยชน์มากนี้เพื่อดึงข้อมูลทั้งสองนี้เกี่ยวกับแอพอย่างรวดเร็วโดยเฉพาะอย่างยิ่งเมื่อทำการทดสอบกับ Appium
adb shell dumpsys window windows | grep -E 'mCurrentFocus'
การตอบสนองของคำสั่งนี้มีทั้งชื่อแพ็กเกจและกิจกรรมปัจจุบัน ตัวอย่างเช่นต่อไปนี้ "com.android.contacts" คือแพ็กเกจและ "com.android.contacts.activities.TwelveKeyDialer" คือกิจกรรมปัจจุบันที่เปิดตัวบนโทรศัพท์ซึ่งเชื่อมต่อผ่าน adb
mCurrentFocus=Window{2089af8 u0 com.android.contacts/com.android.contacts.activities.TwelveKeyDialer}
อ้างอิง: http://www.automationtestinghub.com/apppackage-and-appactivity-name/
ใน windows คำสั่งนี้ใช้ได้กับฉันเพื่อแสดงชื่อกิจกรรมปัจจุบัน
adb shell dumpsys window windows | find "mCurrentFocus"
เอาท์พุต:
mCurrentFocus=Window{a43a55b u0 com.android.contacts/com.android.contacts.activities.TwelveKeyDialer}
วิธีแก้ปัญหาอื่น ๆ ที่มีข้อผิดพลาดในการสร้าง "grab" ใน windows pc ของฉัน
'grep' is not recognized as an internal or external command, operable program or batch file.
ดังนั้นการใช้ "ค้นหา" เพื่อแก้ไขข้อผิดพลาดในกรณีของฉัน
this.getClass().getSimpleName()