繁体   English   中英

adb shell dumpsys window windows Z78E6221F6393D13566681DB398F14CE

[英]adb shell dumpsys window windows output describing

我正在使用appium在我的 Android 设备和 java 代码之间进行交互。 而且我遇到的问题是,在某些设备(包括模拟器)上按下 Home 按钮后,appium 返回不正确的当前活动(它返回当前必须最小化的先前活动)。 我发现 appium 使用dumpsys window windows并抓取mFocusedApp值来获取当前应用程序。 我阅读了有关获取 Android 当前活动的另一个答案,主要推荐使用:

adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"

这就是问题的根源,因为在按下 Home 按钮后mCurrentFocusmFocusedApp链接到不同的活动。 但我找不到任何解释这些字段之间的区别。 为什么 appium 只使用mFocusedApp呢?

mCurrentFocusmFocusedApp之间差异解释盯着你:

$ dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
    mCurrentFocus=Window{X uX package/.activity}
    mFocusedApp=AppWindowToken{X token=Token{X ActivityRecord{X uX package/.activity tX}}}

mCurrentFocus是一个Window (只是一个可能有或没有与之关联的ActivityRecordview

mFocusedApp是一个AppWindowToken (一个app Token ,它总是有一个ActivityRecord

因此,当输入焦点切换到具有activityview时 - mCurrentFocusmFocusedApp都会显示相同的activity 但有时焦点切换到没有activityview (如SystemUI的部分等) - 然后mCurrentFocus将显示该viewmFocusedApp仍将显示在最后一次切换之前具有焦点的appActivityRecord

试试这个:对于 windows:

adb shell dumpsys window | find "mCurrentFocus" 

对于 MAC:

adb shell dumpsys window | grep -E 'mCurrentFocus' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM