diff --git a/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java b/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java
index ad1a792ec..a73e9075f 100644
--- a/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java
+++ b/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java
@@ -57,6 +57,7 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
/**
* Timeout in milliseconds used to wait for the appWaitActivity to launch (default 20000).
+ * @since 1.6.0
*/
String APP_WAIT_DURATION = "appWaitDuration";
@@ -65,12 +66,24 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
*/
String DEVICE_READY_TIMEOUT = "deviceReadyTimeout";
+ /**
+ * Allow to install a test package which has {@code android:testOnly="true"} in the manifest.
+ * {@code false} by default
+ */
+ String ALLOW_TEST_PACKAGES = "allowTestPackages";
+
/**
* Fully qualified instrumentation class. Passed to -w in adb shell
* am instrument -e coverage true -w.
*/
String ANDROID_COVERAGE = "androidCoverage";
+ /**
+ * A broadcast action implemented by yourself which is used to dump coverage into file system.
+ * Passed to -a in adb shell am broadcast -a
+ */
+ String ANDROID_COVERAGE_END_INTENT = "androidCoverageEndIntent";
+
/**
* (Chrome and webview only) Enable Chromedriver's performance logging (default false).
*
@@ -97,9 +110,17 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
/**
* Timeout in milliseconds used to wait for an apk to install to the device. Defaults to `90000`.
+ * @since 1.6.0
*/
String ANDROID_INSTALL_TIMEOUT = "androidInstallTimeout";
+ /**
+ * The name of the directory on the device in which the apk will be push before install.
+ * Defaults to {@code /data/local/tmp}
+ * @since 1.6.5
+ */
+ String ANDROID_INSTALL_PATH = "androidInstallPath";
+
/**
* Name of avd to launch.
*/
@@ -108,12 +129,14 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
/**
* How long to wait in milliseconds for an avd to launch and connect to
* ADB (default 120000).
+ * @since 0.18.0
*/
String AVD_LAUNCH_TIMEOUT = "avdLaunchTimeout";
/**
* How long to wait in milliseconds for an avd to finish its
* boot animations (default 120000).
+ * @since 0.18.0
*/
String AVD_READY_TIMEOUT = "avdReadyTimeout";
@@ -154,8 +177,59 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
*/
String CHROMEDRIVER_EXECUTABLE = "chromedriverExecutable";
+ /**
+ * An array of arguments to be passed to the chromedriver binary when it's run by Appium.
+ * By default no CLI args are added beyond what Appium uses internally (such as {@code --url-base}, {@code --port},
+ * {@code --adb-port}, and {@code --log-path}.
+ * @since 1.12.0
+ */
+ String CHROMEDRIVER_ARGS = "chromedriverArgs";
+
+ /**
+ * The absolute path to a directory to look for Chromedriver executables in, for automatic discovery of compatible
+ * Chromedrivers. Ignored if {@code chromedriverUseSystemExecutable} is {@code true}
+ * @since 1.8.0
+ */
+ String CHROMEDRIVER_EXECUTABLE_DIR = "chromedriverExecutableDir";
+
+ /**
+ * The absolute path to a file which maps Chromedriver versions to the minimum Chrome that it supports.
+ * Ignored if {@code chromedriverUseSystemExecutable} is {@code true}
+ * @since 1.8.0
+ */
+ String CHROMEDRIVER_CHROME_MAPPING_FILE = "chromedriverChromeMappingFile";
+
+ /**
+ * If true, bypasses automatic Chromedriver configuration and uses the version that comes downloaded with Appium.
+ * Ignored if {@code chromedriverExecutable} is set. Defaults to {@code false}
+ * @since 1.9.0
+ */
+ String CHROMEDRIVER_USE_SYSTEM_EXECUTABLE = "chromedriverUseSystemExecutable";
+
+ /**
+ * Numeric port to start Chromedriver on. Note that use of this capability is discouraged as it will cause undefined
+ * behavior in case there are multiple webviews present. By default Appium will find a free port.
+ */
+ String CHROMEDRIVER_PORT = "chromedriverPort";
+
+ /**
+ * A list of valid ports for Appium to use for communication with Chromedrivers. This capability supports multiple
+ * webview scenarios. The form of this capability is an array of numeric ports, where array items can themselves be
+ * arrays of length 2, where the first element is the start of an inclusive range and the second is the end.
+ * By default, Appium will use any free port.
+ * @since 1.13.0
+ */
+ String CHROMEDRIVER_PORTS = "chromedriverPorts";
+
+ /**
+ * Sets the chromedriver flag {@code --disable-build-check} for Chrome webview tests.
+ * @since 1.11.0
+ */
+ String CHROMEDRIVER_DISABLE_BUILD_CHECK = "chromedriverDisableBuildCheck";
+
/**
* Amount of time to wait for Webview context to become active, in ms. Defaults to 2000.
+ * @since 1.5.2
*/
String AUTO_WEBVIEW_TIMEOUT = "autoWebviewTimeout";
@@ -190,11 +264,13 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
* the test app using adb. In other words, with dontStopAppOnReset set to true,
* we will not include the -S flag in the adb shell am start call.
* With this capability omitted or set to false, we include the -S flag. Default false
+ * @since 1.4.0
*/
String DONT_STOP_APP_ON_RESET = "dontStopAppOnReset";
/**
* Enable Unicode input, default false.
+ * @since 1.2.0
*/
String UNICODE_KEYBOARD = "unicodeKeyboard";
@@ -207,6 +283,7 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
/**
* Skip checking and signing of app with debug keys, will work only with
* UiAutomator and not with selendroid, default false.
+ * @since 1.2.2
*/
String NO_SIGN = "noSign";
@@ -223,6 +300,7 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
* Disables android watchers that watch for application not responding and application crash,
* this will reduce cpu usage on android device/emulator. This capability will work only with
* UiAutomator and not with selendroid, default false.
+ * @since 1.4.0
*/
String DISABLE_ANDROID_WATCHERS = "disableAndroidWatchers";
@@ -243,18 +321,57 @@ public interface AndroidMobileCapabilityType extends CapabilityType {
/**
* In a web context, use native (adb) method for taking a screenshot, rather than proxying
* to ChromeDriver, default false.
+ * @since 1.5.3
*/
String NATIVE_WEB_SCREENSHOT = "nativeWebScreenshot";
/**
* The name of the directory on the device in which the screenshot will be put.
* Defaults to /data/local/tmp.
+ * @since 1.6.0
*/
String ANDROID_SCREENSHOT_PATH = "androidScreenshotPath";
+ /**
+ * Set the network speed emulation. Specify the maximum network upload and download speeds. Defaults to {@code full}
+ */
+ String NETWORK_SPEED = "networkSpeed";
+
+ /**
+ * Toggle gps location provider for emulators before starting the session. By default the emulator will have this
+ * option enabled or not according to how it has been provisioned.
+ */
+ String GPS_ENABLED = "gpsEnabled";
+
+ /**
+ * Set this capability to {@code true} to run the Emulator headless when device display is not needed to be visible.
+ * {@code false} is the default value. isHeadless is also support for iOS, check XCUITest-specific capabilities.
+ */
+ String IS_HEADLESS = "isHeadless";
+
+ /**
+ * Timeout in milliseconds used to wait for adb command execution. Defaults to {@code 20000}
+ */
+ String ADB_EXEC_TIMEOUT = "adbExecTimeout";
+
+ /**
+ * Sets the locale for more details.
*/
String SYSTEM_PORT = "systemPort";
+
+ /**
+ * Optional remote ADB server host.
+ * @since 1.7.0
+ */
+ String REMOTE_ADB_HOST = "remoteAdbHost";
+
+ /**
+ * Skips unlock during session creation. Defaults to {@code false}
+ */
+ String SKIP_UNLOCK = "skipUnlock";
+
+ /**
+ * Unlock the target device with particular lock pattern instead of just waking up the device with a helper app.
+ * It works with {@code unlockKey} capability. Defaults to undefined. {@code fingerprint} is available only for
+ * Android 6.0+ and emulators.
+ * Read unlock doc in
+ * android driver.
+ */
+ String UNLOCK_TYPE = "unlockType";
+
+ /**
+ * A key pattern to unlock used by {@code unlockType}.
+ */
+ String UNLOCK_KEY = "unlockKey";
+
+ /**
+ * Initializing the app under test automatically.
+ * Appium does not launch the app under test if this is {@code false}. Defaults to {@code true}
+ */
+ String AUTO_LAUNCH = "autoLaunch";
+
+ /**
+ * Skips to start capturing logcat. It might improve performance such as network.
+ * Log related commands will not work. Defaults to {@code false}.
+ * @since 1.12.0
+ */
+ String SKIP_LOGCAT_CAPTURE = "skipLogcatCapture";
+
+ /**
+ * A package, list of packages or * to uninstall package/s before installing apks for test.
+ * {@code '*'} uninstall all of thrid-party packages except for packages which is necessary for Appium to test such
+ * as {@code io.appium.settings} or {@code io.appium.uiautomator2.server} since Appium already contains the logic to
+ * manage them.
+ * @since 1.12.0
+ */
+ String UNINSTALL_OTHER_PACKAGES = "uninstallOtherPackages";
+
+ /**
+ * Set device animation scale zero if the value is {@code true}. After session is complete, Appium restores the
+ * animation scale to it's original value. Defaults to {@code false}
+ * @since 1.9.0
+ */
+ String DISABLE_WINDOW_ANIMATION = "disableWindowAnimation";
}