Automatic ADB device discovery with connection monitoring, TTL caching, emulator detection, and seamless device selection for install operations.
Device Manager is the foundation of ADB Pro. It handles ADB device discovery, connection monitoring, and device selection so that every other module — AAB Tools, Build Tools, Signing Tools — can install APKs and target devices without manual configuration. Instead of hunting for the ADB binary or running adb devices in a terminal, Device Manager automatically locates ADB, polls for connected devices with intelligent TTL caching, and provides a clean, always-current device list.
Both physical hardware and emulators are supported. Device Manager distinguishes between the two, displays detailed device metadata (model, Android version, API level, connection state), and remembers your device preferences across sessions. When a device disconnects mid-operation, Device Manager handles the event gracefully rather than surfacing cryptic ADB errors.
Managing ADB and connected devices manually introduces friction that compounds over time:
ANDROID_HOME, ANDROID_SDK_ROOT, IDE settings, and system PATH all vary. Without automatic discovery, each team member must manually configure the ADB path.adb devices gives you a snapshot in time, but the list becomes stale the moment a device connects or disconnects. There is no built-in mechanism for live updates.Device Manager locates the ADB binary without any manual configuration. It checks multiple sources in a defined resolution order and uses the first valid binary found. If multiple ADB versions are detected, the most recent one is preferred. The 7-step resolution order is:
The device list shows every connected device with its serial number, model name, Android version, API level, and connection state (device, unauthorized, offline, no permissions). Devices in the unauthorized state are flagged with a prompt to accept the USB debugging authorization on the device itself. Offline and disconnected devices are grayed out but remain visible so you can track when they come back online.
Polling adb devices on every UI interaction would be wasteful and slow. Device Manager caches the device list with a configurable time-to-live (TTL), defaulting to 5 seconds. Within the TTL window, device queries return instantly from cache. Once the TTL expires, the next query triggers a background refresh. The TTL is adjustable from 1 to 30 seconds in settings.
When AAB Tools or Build Tools need to install an APK, they query Device Manager for the target device. If a single device is connected, it is selected automatically. If multiple devices are connected, Device Manager presents a chooser dialog with device details so you can pick the right target. The last-selected device is remembered for the session, so repeated installs go to the same device without prompting.
Device Manager distinguishes between physical devices and emulators by parsing the device serial number format (emulator-5554 for emulators, USB serial numbers for physical devices). Emulators are displayed with a distinct icon and show additional details like the AVD name and snapshot status. This distinction matters for install operations — some teams prefer to test on emulators during development and only deploy to physical devices for release testing.
Device Manager runs a background listener that detects when devices are connected or disconnected. When a new device appears, the device list refreshes automatically and a notification appears in the IDE status bar. When a device disconnects mid-operation (e.g., during an APK install), the operation is paused gracefully and resumes when the device reconnects or a new device is selected.
| Device | Serial | Android | API | Type | Status |
|---|---|---|---|---|---|
| Pixel 8 Pro | 29281JEGR12345 | 15 | 35 | Physical | Connected |
| Medium Phone AVD | emulator-5554 | 14 | 34 | Emulator | Connected |
| Samsung Galaxy S24 | R5CX30ABXYZ | 14 | 34 | Physical | Unauthorized |
| Pixel Tablet AVD | emulator-5556 | 13 | 33 | Emulator | Offline |
Device Manager operates automatically in the background, but you can interact with it directly:
To view and select devices for install operations:
Unauthorized, unlock the device and accept the USB debugging prompt.To configure Device Manager, go to Settings > Tools > ADB Pro > Device Manager. Here you can set a custom ADB binary path (overriding automatic discovery), the device list TTL in seconds (default: 5, range: 1-30), connection monitoring toggle, default device preference (physical vs. emulator), auto-select behavior when only one device is connected, and the status bar device indicator.
After setup, confirm Device Manager is working correctly: