t3f*_*--i 6 android adb appium dumpsys android-shell
我正在使用appuim进行Android设备和java代码之间的交互.我遇到问题,在按下Home按钮后某些设备(包括模拟器)上,appium返回不正确的当前活动(它返回当前必须最小化的previuos活动).我发现使用了appium dumpsys window windows 与抓mFocusedApp用于获取当前的应用价值.我读了关于获取Android当前活动的另一个答案,并且大多数建议使用:
adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
Run Code Online (Sandbox Code Playgroud)
这是问题的根源,因为在按下Home按钮mCurrentFocus并mFocusedApp链接到不同的活动之后.但我找不到任何解释这些领域之间的区别.为什么appuim只mFocusedApp用它呢?
该差异的解释之间mCurrentFocus,并mFocusedApp在你的权利盯着:
$ 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(只是view其可以或可以不具有ActivityRecord与它相关联)
这mFocusedApp是一个AppWindowToken(app Token总是有一个ActivityRecord)
因此,当输入焦点切换到view带有activity- 两者mCurrentFocus并且mFocusedApp将显示相同时activity.但有时焦点切换到一个view不具有activity(如SystemUI等份) -然后mCurrentFocus将显示出view,但mFocusedApp仍然会示出ActivityRecord的app其中有最后切换之前的焦点.
| 归档时间: |
|
| 查看次数: |
8511 次 |
| 最近记录: |