Install
openclaw skills install android-stack-analyzerQuickly view and analyze Android device page stacks including current page, Activity history, Fragments, and monitor page switches via ADB commands.
openclaw skills install android-stack-analyzer这个技能让你通过ADB命令快速查看安卓设备的页面栈信息,包括当前页面、Activity历史、Fragment等。适用于Android开发者、测试人员和逆向工程师。
adb shell "dumpsys window | findstr mCurrentFocus"
adb shell "dumpsys window | grep mCurrentFocus"
输出示例:
mCurrentFocus=Window{... u0 com.example.app/com.example.app.MainActivity}
adb shell "dumpsys activity activities | findstr /R "Hist\|ResumedActivity\|mFocusedActivity"
adb shell "dumpsys activity activities | grep -E 'Hist|ResumedActivity|mFocusedActivity'"
输出示例:
* Hist #3: ActivityRecord{... u0 com.example.app/.activity.MainActivity t533}
* Hist #2: ActivityRecord{... u0 com.example.app/.activity.SettingsActivity t533}
ResumedActivity: ActivityRecord{... u0 com.example.app/.activity.MainActivity t533}
adb shell "dumpsys activity <包名>"
示例:查看com.example.app的Fragment信息
adb shell "dumpsys activity com.example.app"
adb shell "dumpsys activity <包名>"
示例:查看com.example.app的Fragment信息
adb shell "dumpsys activity com.example.app"
adb shell "dumpsys activity activities | findstr /R "TaskRecord\|ActivityRecord"
adb shell "dumpsys activity activities | grep -E 'TaskRecord|ActivityRecord'"
adb shell "dumpsys activity recents"
adb shell "dumpsys activity recents"
adb shell "while /l %%i in () do @echo [%time%] & adb shell "dumpsys window | findstr mCurrentFocus" & timeout /t 1 > nul"
adb shell "while true; do echo "[$(date '+%H:%M:%S')] $(adb shell 'dumpsys window | grep mCurrentFocus')"; sleep 1; done"
adb shell "dumpsys activity activities | findstr state="
adb shell "dumpsys activity activities | grep 'state='"
adb shell "dumpsys activity a <包名>"
adb shell "dumpsys activity a <包名>"
adb shell "dumpsys activity processes"
adb shell "dumpsys activity processes"
adb shell "dumpsys activity activities | findstr /R "mResumedActivity\|mFocusedActivity"
adb shell "dumpsys activity activities | grep -E 'mResumedActivity|mFocusedActivity'"
u0 - 用户应用(User app)s0 - 系统应用(System app)com.example.app - 包名com.example.app.MainActivity - Activity类名* Hist #3 - 历史记录中的第3个Activity(数字越大越新)u0 - 用户应用t533 - 任务IDinHistory=true - 在历史栈中mStartingWindowState=STARTING_WINDOW_NOT_SHOWN - 启动窗口状态INITIALIZING - 初始化中RESUMED - 前台可见PAUSED - 暂停STOPPED - 停止DESTROYED - 已销毁adb 而不是 adb.exe(通常PATH中已配置)findstr 而不是 grepfindstr /R 进行正则匹配adb shell "dumpsys window | findstr mCurrentFocus"
adb 命令grep 命令adb shell "dumpsys window | grep mCurrentFocus"
dumpsys 输出格式有变化某些设备上可能没有这些命令,可以:
adb shell dumpsys window 然后手动查找adb shell dumpsys activity activities 然后手动查找可以使用包名过滤:
adb shell "dumpsys activity activities | grep com.example.app"
某些设备可能需要开启开发者选项中的"显示系统级应用"
dumpsys activity activities | grep ResumedActivity 确认#!/bin/bash
# 获取当前页面
echo "=== 当前页面 ==="
adb shell "dumpsys window | grep mCurrentFocus"
# 获取页面栈
echo -e "\n=== 页面栈 ==="
adb shell "dumpsys activity activities | grep -E 'Hist|ResumedActivity'"
# 获取最近任务
echo -e "\n=== 最近任务 ==="
adb shell "dumpsys activity recents"
#!/bin/bash
apps=("com.example.app1" "com.example.app2" "com.example.app3")
for app in "${apps[@]}"; do
echo "=== 检查 $app ==="
adb shell "dumpsys activity activities | grep $app"
echo ""
done