From 0f99de771555dbd010cf33c403370024cfe7dd79 Mon Sep 17 00:00:00 2001 From: Scott Dixon Date: Fri, 17 Jun 2016 11:08:57 -0700 Subject: [PATCH] Docs: UIAutomator 2 --- .../en/writing-running-appium/uiautomator2.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 docs/en/writing-running-appium/uiautomator2.md diff --git a/docs/en/writing-running-appium/uiautomator2.md b/docs/en/writing-running-appium/uiautomator2.md new file mode 100644 index 000000000..f1d61ace4 --- /dev/null +++ b/docs/en/writing-running-appium/uiautomator2.md @@ -0,0 +1,27 @@ +# UIAutomator 2 + +While the API remains almost the same, the internal implementation has changed and we see the introduction of UIObject2 + +### UIObject2 + +Unlike UiObject, the UIElement is bound to a particular view instance and can become stale if the underlying view object is destroyed. As a result, it may be necessary to call findObject(BySelector) to obtain a new UiObject2 instance if the UI changes significantly. + +### The Build System + +UIAutomator 2 utilizes capabilities of Gradle as a build system. Previous, UIAutomator used Maven/Ant. + +### Test Assets + +Test packages produced are now APKs. Previously, UIAutomator produced .jar or .zip files. This makes UIAutomator 2 completely Android instrumentation capable. + +### ADB + +ADB deals with UIAutomator 2 slightly differently. + +The original version of UiAutomator ran as a shell program: + +```adb shell uiautomator runtest ...``` + +UiAutomator 2 is based on Android Instrumentation. Tests are compiled to APKs, and run in an application process: + +```adb shell am instrument ...```