【发布时间】:2017-07-15 15:27:45
【问题描述】:
假设我有一个应用程序(在调试/发布版本中,无论是否由我制作),它具有特定视图的 ID。
可以调用adb命令点击这个视图吗?
我知道可以让它点击一个特定的坐标,但是可以使用 ID 代替吗?
我问这个是因为我知道“布局检查器”工具(可通过 Android Studio 获得)和“视图层次结构”工具(可通过“Android 设备监视器”获得,之前通过 DDMS 使用)可以显示视图(甚至它们的坐标和边界框),因此在执行一些自动测试时,它可能是模拟触摸的更好方法。
如果需要,我可以使用根方法。
编辑:我设置了一个赏金,以防有比我在自己的答案中写的更简单/更好的方法,即解析 "adb shell dumpsys activity top" 的结果。
我想知道是否可以获得屏幕上显示的视图坐标(当然还有大小),包括关于它们的尽可能多的信息(以识别每个视图)。 这也应该可以通过设备实现。也许某些输出数据与“监控”工具中可用的输出数据相同:
注意它如何获取视图的基本信息,包括文本、id 和每个视图的边界。
正如我所读到的,这可能通过 AccessibilityService 实现,但遗憾的是我无法理解它是如何工作的,它的功能是什么,如何触发它,它的要求是什么等等......
【问题讨论】:
-
所以分析
adb shell dumpsys activity top的输出,但这不是通用方法,因为该输出的格式将来可能会改变 -
我不知道...但即使它可以从现在开始随时改变...
-
安卓开发者:@AlexP。是的,使用
uiautomator dump命令(我不知道dump子命令) -
来吧,你希望我为你写完整的项目吗?
-
我已经告诉了你需要做的所有事情,但你似乎不想自己做任何事情:为了在清单中添加我的服务,你做了什么尝试?您面临的问题是什么?
标签: android adb android-view