Desired Capabilities for Android

Since Appium caters to both Android and iOS, there are different set of desired capabilities for Android and iOS.

This section will list all the desired capabilities associated with Android. Majority of them are optional but you can choose to use them as it suits your needs.The one's in bold are required for initial kick-off

Capability

Description

Values

appActivity

Activity name for the Android activity you want to launch from your package

MainActivity, .Settings

appPackage

Java package of the Android app you want to run

com.example.android.myApp, com.android.settings

appWaitActivity

Activity name for the Android activity you want to wait for

SplashActivity

appWaitPackage

Java package of the Android app you want to wait for

com.example.android.myApp, com.android.settings

deviceReadyTimeout

Timeout in seconds while waiting for device to become ready

5

androidCoverage

Fully qualified instrumentation class. Passed to -w in adb shell am instrument -e coverage true -w

com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation

enablePerformanceLogging

(Chrome and webview only) Enable Chromedriver’s performance logging (default false)

true, false

androidDeviceReadyTimeout

Timeout in seconds used to wait for a device to become ready after booting

e.g., 30

androidDeviceSocket

Devtools socket name. Needed only when tested app is a Chromium embedding browser. The socket is open by the browser and Chromedriver connects to it as a devtools client.

e.g., chrome_devtools_remote

avd

Name of avd to launch

e.g., api19

avdLaunchTimeout

How long to wait in milliseconds for an avd to launch and connect to ADB (default 120000)

300000

avdReadyTimeout

How long to wait in milliseconds for an avd to finish its boot animations (default 120000)

300000

avdArgs

Additional emulator arguments used when launching an avd

e.g., -netfast

useKeystore

Use a custom keystore to sign apks, default false

true or false

keystorePath

Path to custom keystore, default ~/.android/debug.keystore

e.g., /path/to.keystore

keystorePassword

Password for custom keystore

e.g., foo

keyAlias

Alias for key

e.g., androiddebugkey

keyPassword

Password for key

e.g., foo

chromedriverExecutable

The absolute local path to webdriver executable (if Chromium embedder provides its own webdriver, it should be used instead of original chromedriver bundled with Appium)

/abs/path/to/webdriver

specialChromedriverSessionArgs

Custom arguments passed directly to chromedriver in chromeOptions capability. Passed as object which properties depend on a specific webdriver.

e.g., {'androidDeviceSocket': 'opera_beta_devtools_remote',}

autoWebviewTimeout

Amount of time to wait for Webview context to become active, in ms. Defaults to 2000

e.g. 4

intentAction

Intent action which will be used to start activity (default android.intent.action.MAIN)

e.g.android.intent.action.MAIN, android.intent.action.VIEW

intentCategory

Intent category which will be used to start activity (default android.intent.category.LAUNCHER)

e.g. android.intent.category.LAUNCHER, android.intent.category.APP_CONTACTS

intentFlags

Flags that will be used to start activity (default 0x10200000)

e.g. 0x10200000

optionalIntentArguments

Additional intent arguments that will be used to start activity. See Intent arguments

e.g. --esn, --ez, etc.

unicodeKeyboard

Enable Unicode input, default false

true or false

resetKeyboard

Reset keyboard to its original state, after running Unicode tests with unicodeKeyboard capability. Ignored if used alone. Default false

true or false

If you notice above some of the capabilities like appWaitActivity , avd, androidDeviceReadyTimeout are very handy and would be recommended to make use of in your automation suite.

Last updated

Was this helpful?