What is appium-adb?
The appium-adb npm package is a Node.js library that provides a set of tools and utilities for interacting with Android devices using the Android Debug Bridge (ADB). It is primarily used in the context of mobile automation, particularly with the Appium framework, to perform various operations on Android devices such as installing apps, managing device state, and executing shell commands.
What are appium-adb's main functionalities?
Install an APK
This feature allows you to install an APK file on a connected Android device. The code sample demonstrates how to create an ADB instance and use it to install an APK.
const ADB = require('appium-adb');
(async () => {
const adb = await ADB.createADB();
await adb.install('/path/to/your/app.apk');
})();
Execute Shell Command
This feature allows you to execute shell commands on a connected Android device. The code sample shows how to list the contents of the /system directory.
const ADB = require('appium-adb');
(async () => {
const adb = await ADB.createADB();
const result = await adb.shell(['ls', '/system']);
console.log(result);
})();
Start an App
This feature allows you to start an application on a connected Android device. The code sample demonstrates how to start an app by specifying its package and main activity.
const ADB = require('appium-adb');
(async () => {
const adb = await ADB.createADB();
await adb.startApp({
pkg: 'com.example.yourapp',
activity: 'com.example.yourapp.MainActivity'
});
})();
Get Device Properties
This feature allows you to retrieve various properties of a connected Android device. The code sample shows how to get and print the device properties.
const ADB = require('appium-adb');
(async () => {
const adb = await ADB.createADB();
const properties = await adb.getProperties();
console.log(properties);
})();
Other packages similar to appium-adb
adbkit
adbkit is a pure Node.js client for the Android Debug Bridge (ADB) protocol. It provides a set of tools for interacting with Android devices, similar to appium-adb. However, adbkit is more focused on providing a low-level interface to ADB, whereas appium-adb is tailored for use with the Appium automation framework.
adb-driver
adb-driver is another Node.js library for interacting with Android devices via ADB. It offers functionalities like installing APKs, running shell commands, and more. Compared to appium-adb, adb-driver is more lightweight and may lack some of the higher-level abstractions provided by appium-adb.
adbkit-apkreader
adbkit-apkreader is a library for reading information from APK files. While it does not provide direct ADB functionalities, it can be used in conjunction with other ADB libraries to gather detailed information about APKs. It complements appium-adb by offering additional capabilities for APK analysis.
appium-adb
A wrapper over android-adb, implemented using ES6 and along with async/await
. This package is mainly used by Appium to perform all adb operations on android device.
Installing
npm install appium-adb
Watch
npm run watch
Test
unit tests
npm run test
functional tests
gulp e2e-test
Usage:
example:
import ADB from 'appium-adb';
let adb = new ADB();
await adb.createADB();
console.log(await adb.getPIDsByName('m.android.phone'));
List of methods:
- createADB
- initJars
- getAdbWithCorrectAdbPath
- initAapt
- initZipAlign
- getApiLevel
- isDeviceConnected
- mkdir
- isValidClass
- forceStop
- clear
- stopAndClear
- availableIMEs
- enabledIMEs
- enableIME
- disableIME
- setIME
- defaultIME
- keyevent
- lock
- back
- goToHome
- isScreenLocked
- isSoftKeyboardPresent
- sendTelnetCommand
- isAirplaneModeOn
- setAirplaneMode
- broadcastAirplaneMode
- isWifiOn
- setWifiState
- isDataOn
- setDataState
- setWifiAndData
- rimraf
- push
- pull
- processExists
- forwardPort
- forwardAbstractPort
- ping
- restart
- startLogcat
- stopLogcat
- getLogcatLogs
- getPIDsByName
- killProcessesByName
- killProcessByPID
- broadcastProcessEnd
- broadcast
- endAndroidCoverage
- instrument
- androidCoverage
- processFromManifest
- packageAndLaunchActivityFromManifest
- compileManifest
- insertManifest
- hasInternetPermissionFromManifest
- getSdkBinaryPath
- getCommandForOS
- getBinaryFromSdkRoot
- getBinaryFromPath
- getConnectedDevices
- getDevicesWithRetry
- restartAdb
- adbExec
- shell
- getAdbServerPort
- getEmulatorPort
- getPortFromEmulatorString
- getConnectedEmulators
- setEmulatorPort
- setDeviceId
- getRunningAVD
- getRunningAVDWithRetry
- killAllEmulators
- launchAVD
- waitForEmulatorReady
- waitForDevice
- reboot
- signWithDefaultCert
- signWithCustomCert
- sign
- zipAlignApk
- checkApkCert
- checkCustomApkCert
- getKeystoreMd5
- checkApkKeystoreMatch
- isAppInstalled
- startApp
- getFocusedPackageAndActivity
- waitForActivityOrNot
- waitForActivity
- waitForNotActivity
- uninstallApk
- installFromDevicePath
- install