首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UiAutomation对AccessibilityService

UiAutomation对AccessibilityService
EN

Stack Overflow用户
提问于 2020-11-10 16:13:28
回答 1查看 740关注 0票数 4

医生的中,它提到了UiAutomation

类,用于通过模拟用户操作和屏幕内容的内省与设备的UI交互。它依赖于平台可访问性API来自省屏幕,并在远程视图树上执行一些操作。它还允许注入任意原始输入事件,模拟用户与键盘和触摸设备的交互。可以将UiAutomation看作是一种特殊类型的AccessibilityService,它不为服务生命周期提供钩子,并公开其他对UI测试自动化有用的API。 这个类公开的API是低级别的,可以在开发UI测试自动化工具和库时最大限度地提高灵活性。通常,UiAutomation客户端应该使用更高级别的库或实现高级函数.例如,在屏幕上执行点击需要构造和注入触摸和向上事件,这些事件必须通过调用injectInputEvent(android.view.InputEvent,boolean)传递到系统。 该类公开的API跨应用程序运行,使客户端能够编写涵盖跨多个应用程序的用例的测试。例如,转到设置应用程序以更改设置,然后与其行为依赖于该设置的另一个应用程序交互。

UiAutomation与常规AccessibilityService有什么不同,因为它在源代码中没有继承它。

代码语言:javascript
复制
public final class UiAutomation {
    private static final String LOG_TAG = UiAutomation.class.getSimpleName();
    // omitted the rest...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-15 06:24:38

可访问性服务:

应该只用于帮助残疾用户使用Android设备和应用程序。他们在后台跑然后收到..。AccessibilityEvents ...这类事件表示用户界面中的某种状态转换,例如焦点已更改、按钮已被单击等。这样的服务可以选择性地请求查询活动窗口内容的功能。

这是一个强大的工具,可以让您访问电话上发生的一切,因此用户需要在电话设置中显式启用这类服务(通常在可访问性/安装服务下)。

UiAutomation:

基本上,你在你的问题中引用了描述,但这里有一个更详细的描述:

在某种程度上,UiAutomation充当一个修饰的AccessibilityService (装饰设计模式.)。您可以验证它读取getServiceInfo和setServiceInfo方法的源代码,这些方法在内部使用连接的服务对应方(查看导入以获得快速查看)。

这是一个包装器,它添加了一些功能,例如,它允许您在视图层次结构等方面导航,而不需要每次您第一次运行仪器化测试时都在电话设置中启用辅助功能服务。这是通过android.app.Instumentation类和其他测试框架组件来实现的。系统可以安全地授予所需的权限,因为检测工具只能通过亚行或系统应用程序启动

这并不是一个真正的AccessibilityService (甚至不是一个真正的服务),但它可能被称为简单性,并提请人们注意底层环境。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64772554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档