https://developer.android.google.cn/reference/kotlin/android/app/UiAutomation?hl=en
Appium是事实上的现代自动化测试标准方案,UiAutomation是Appium在Android平台上实现自动化的基础。
UiAutomation在API 18以上提供支持,2019年的今天几乎所有设备都高于4.3,不必担心兼容性问题。
UiAutomation是一个类:android,app.UiAutomation,提供和设备的UI交互的能力,提供了模拟用户输入和检查屏幕内容的能力。
依赖android系统的accessibility API来检查屏幕内容并且可以在remote view tree上执行操作;
支持注入任意的原始输入事件,比如手势操作、键盘输入;
可以把UiAutomation当成一个特殊的android.accessibilityservice.AccessibilityService,它没有Service的生命周期回调,但额外提供了一些专用于UI自动化测试的API。
UiAutomation提供的API都是底层API,这些API尽可能的灵活以满足UI自动化测试框架和工具的需求。自动化测试的开发者应该考虑使用构建于UiAutomation之上的更高层的框架或自行包装抽象方法。比如,一个点击事件直接用UiAutomation实现需要构造一个Down和Up事件并通过injectInputEvent调用注入给系统。
由于UiAutomation不限制于某个App内部,可以使用UiAutomation编写需要在多个App之间来回交互的case。