Building Uiautomator 1.0 Jar with Ant in Android Studio
This guide explains how to construct a Uiautomator 1.0 jar package using Ant within Android Studio, covering required SDK tools, project setup, build.xml generation, Gradle integration, jar composition, execution flow, and a sample custom test service implementation for Android testing.
Uiautomator is an Android native testing framework; version 1.0 offers higher permissions and flexible execution, while version 2.0 provides tighter app‑level integration. Because the latest Android SDK no longer includes Ant support, building a Uiautomator 1.0 jar requires downloading the legacy sdk-tools (e.g., Linux , macOS ) and copying its tools/ directory into the local SDK.
In Android Studio, create a regular project, import the necessary Uiautomator dependencies, and add a test class. Open a console, navigate to the /sdk/tools/ directory, and run the Ant command to generate a build.xml file for the project.
Next, edit the generated build.xml to comment out incompatible sections, then add an Ant task definition to the module’s build.gradle. After syncing Gradle, the new task appears under Tasks → other → ant-build. Executing ant-build compiles the project and produces an APK in [module]/bin.
The resulting Uiautomator 1.0 jar consists mainly of .dex files and a META-INF directory, similar to a standard Android APK. By unpacking the jar, you can see its structure and even replace the jar with an APK to run tests.
Running a test involves invoking the Uiautomator command line, which launches the com.android.commands.uiautomator.Launcher class. The Launcher parses arguments and calls RunTestCommand.run(), which delegates to UiAutomatorTestRunner.run(). This method initializes UiAutomationShellWrapper, connects to the system test service, and obtains a UiAutomation object that provides APIs for UI interaction (e.g., querying elements, sending key events, swiping, clicking).
To simulate a custom test service, the guide outlines a lightweight implementation where multiple services can be registered or unregistered dynamically. It demonstrates creating a Java test class MyUiAutomation, building the corresponding APK, and executing the test script.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
360 Quality & Efficiency
360 Quality & Efficiency focuses on seamlessly integrating quality and efficiency in R&D, sharing 360’s internal best practices with industry peers to foster collaboration among Chinese enterprises and drive greater efficiency value.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
