adb可用于对视图,触摸,击键等进行各种操作......
它还可以检查或更改视图的焦点吗?
例如,如果当前活动有很多视图,并且我想在listView上滚动,我可以通过提供其ID来选择要关注的listView,它将获得焦点这样我就可以模拟页面向下键。或者,我可以模拟tab键,直到我看到当前聚焦的视图是listView。
答案 0 :(得分:0)
您可以通过转储视图层次结构并扫描输出来找出聚焦的视图:
# dump and extract
adb shell uiautomator dump && adb pull /sdcard/window_dump.xml
# prettify if you want
xmllint --format window_dump.xml > window_dump.pretty.xml
# then grep
cat window_dump.pretty.xml | grep focused=\"true\"
<node index="2" text="" resource-id="YOUR_PACKAGE:id/resize_button" class="android.widget.FrameLayout" package="YOUR_PACKAGE" content-desc="Enter dominant view" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[180,60][252,132]">
答案 1 :(得分:0)
如果有人正在寻找一种通过按 TAB 键来滚动视图的方法,则应执行以下操作
adb shell input keyevent KEYCODE_TAB
如果有人来到这里想通过亚行改变对不同活动(而不是观点)的关注
我们可以使用
获取当前聚焦的窗口/应用程序adb shell dumpsys window windows | grep -E "mCurrentFocus|mFocusedApp"
为了设置焦点,我们需要一个 2 步过程 1) 获取任务 ID 以使其成为焦点 2) 专注于它
# get the task ID, it is the number after # in the output
adb shell dumpsys activity recents | grep "#"
# set focus
adb shell am task focus <task ID>