Android Debug Bridge (ADB) Connect to Device over USB, WiFi

What is Android Debug Bridge (ADB)?

Android Debug Bridge (ADB) is a command-line tool that allows you to communicate with a device. It is used to bridge communication between an emulator instance (Android device) and the background running daemon process (server). It helps you perform different actions like installing or debugging a device and run various commands on a device by providing access to a Unix shell.

Using any real device for mobile automation Testing has always been a challenge for testers. But, Android offers a handful of solutions to connect a real device over USB (Universal Serial Bus), i.e., Android Debug Bridge (ADB).

USB debugging and ADB Configuration

APPIUM offers an advantage to execute test on real devices. But prior to run the test, we need to setup following pre-requisite.

  • USB debugging should be enabled
  • ADB configuration
  • Desired capability setup as per the hardware changes.

Here we will see both, connecting to emulator as well as with real device for testing. See steps below for connecting to an emulator.

How to Connect to an Emulator

Pre-Requisite- SDK (Software Development Kit) should be installed on the machine. ADB in Android is packaged with Google’s Android SDK (Software Development Kit).

Steps to enable ADB from SDK Manager.

Step 1) Open Android SDK folder

Step 2) Double click on SDK Manager

Step 3) From the list of all packages select Tools and mark the checkbox for

  • Android SDK Tools and
  • Android SDK Platform-tools.

Connect to an Emulator

How to Connect Android Device with ADB (Android Debug Bridge)

Step 1) Enable USB Debugging on your device

Enable USB debugging option from ‘Developer Option’ in Android phone. Now, connect your Android device to the computer using USB cable.

Connect Android Device with ADB

Step 2) Go to the Android SDK folder

Open the local folder where Android SDK files has been saved ‘Android SDK >> Platform-tools’ eg: C:\android-sdk\platform-tools

Connect Android Device with ADB

Step 3) Open the Command window

Inside folder hold Shift + Right click menu >> Select ‘Open command window here’ option.

It will open the folder using command prompt.

Note– you can also open the folder path directly from the Run command in command prompt.

Connect Android Device with ADB

This command window will directly open the folder in command prompt window.

Connect Android Device with ADB

Step 4) Connect an external Android device

Now, prior to check the device, user have to connect an external Android device (mobile phone). To connect use the device USB cable connector to the system. Then in above command prompt type command-

'adb devices' & press Enter

It will display all list of all the connected devices.

Connect Android Device with ADB

But, prior to this we should check that ADB server. Check whether it is running as background process or not. Just open the command prompt from above mentioned procedure and write ‘adb’ and press enter. It should display all the adb’s process running.

When server starts, it always bind the local TCP port 5037. All ADB clients listen to 5037 TCP port to communicate with server request.

Now, the running ADB server can scan all connected emulator or device instances by scanning the port.

Always remember that ADB daemon runs on odd numbered port between the ranges of 5555 to 5558.

ADB daemon process runs with console connection that acquires even number port for connection.

For example: If single device connected then server automatically scan the device and get connected but if multiple device or emulator running the user need to give ADB connect to device USB command line instruction to connect.

The emulator instance connected on odd numbered port 5557 has the same console running over even numbered 5556 port ie. Each running devices has 1 odd and 1 even connected port.

emulator 1: console 5556
emulator 1: adb 5557
emulator 2: console 5554
emulator 2: adb 5555

Command to detect all connected device –

<$ adb devices>
emulator-5554 device
emulator-5556 device
emulator-5558 device

Command detecting a single device from multiple connected devices-

<$ adb –s emulator-5554 install Guru99.apk>

It will detect the adb connection for device -5554 and install the application.

So, this way user can set up a successful connection to access ADB USB connect instances using ADB commands.

Syntax used to access ADB instances from commands line:
Adb [-d – An adb command when a single USB device is connected
Adb [-e – An adb command when only single emulator is running
Adb devices--- This will print all the list of emulator / devices attached.
Adb version--- List the adb version number.
Adb help---- Print the list of supported commands.

How to Configuring ADB for Wi-Fi Support

Just like configuring ADB connect USB, user can also configure ADB over wi-fi.

Pre-requisite

  • Both Android device and the host computer should be connected to same wireless network and
  • Device Bluetooth option should disabled.

Steps to connect-

  1. Connect device using USB cable to the host computer. Confirm USB debugging is enabled in device.
  2. Set target device to connect TCP/IP on port 5555
    $ adb tcpip 5555

Configuring ADB for Wi-Fi Support

  1. Now, disconnect the USB cable from the device.
  2. In Android device find the IP address from Settings >> wi-fi Setting >> Advanced >> IP Address.Use the same Android Debug Bridge IP address to connect the device via ADB connect device USB connection
    eg: Network IP address is- 148.100.1.17
    $ adb devices
    List of devices attached
    148.100.1.17:5555 device

Hence, the final configuration done and ‘adb’ successfully configured over wireless network.

NOTE- If any connection error occurred just reset or kill the adb host connection. For that use following command

<adb kill server> and again ADB connect to phone from first step. If you’re working with Android devices and looking for an emulator, consider checking out this list of the best Android emulators for Windows to find the right solution for your needs.