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?