Skip to content

Java desktop app to manage many connected Android devices

Notifications You must be signed in to change notification settings

jpage4500/AndroidDeviceManager

Repository files navigation

AndroidDeviceManager

Description

Java desktop app to manage multiple Android devices via adb

Features

  • View all connected (and wireless) devices
  • Populates device phone number, free space, IMEI, carrier (if available)
  • Remote control selected devices (requires scrcpy)
  • Capture screenshots of selected devices
  • Drag and drop an apk to install on selected devices
  • Drag and drop a file to copy to selected devices
  • File Explorer / Browse filesystem of device
    • download and view folders/files
    • delete folders/files
    • root mode supported
  • View Device Logs
    • NOTE: this is a work in progress!
  • Restart selected devices
  • Run user-defined adb commands
  • Set and display custom properties on each device
  • Start an adb shell session with selected devices
  • View version of user-defined list of apps

Screenshots

devices

More Screenshots devices
file explorer
logs
logs

Prerequisites

  • adb - android debugging tools
  • scrcpy - used to mirror a device (link)
Mac Setup

Install Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install adb

brew install --cask android-platform-tools
  • add adb to PATH
echo 'export ANDROID_HOME=$HOME/Library/Android/sdk' >> ~/.profile
echo 'export PATH="/opt/homebrew/bin:$ANDROID_HOME/platform-tools:$PATH"' >> ~/.profile

Install scrcpy

brew install scrcpy
Windows Setup

Install adb

download from here and extract archive

  • move extracted platform-tools/ folder to your /Program Files/Android/
  • add the location to your PATH
  • test this by running “adb” in a command window

Install scrcpy

download and install from here

  • make sure “scrcpy” in in PATH
Linux Setup

Install adb

sudo apt-get install adb

Install scrcpy

see this link

Install Android Device Manager

I'm using jdeploy to package this as a native app for Mac/Windows/Linux. This also allows for automatic updates

To install open a terminal and run this command:

/bin/bash -c "$(curl -fsSL https://www.jdeploy.com/~android-device-manager/install.sh)"

See this page to download the installer directly

Build

Build Android Device Manager

Prerequisites

  • Java SDK
    • min version 17; I'm using openjdk 22.0.1 2024-04-16
    • MacOSX -> Homebrew -> brew install openjdk
    • Linux - link
  • Maven
    • MacOSX -> Homebrew -> brew install maven
    • Linux - link

Build

  • sync this repo
    • git clone https://github.com/jpage4500/AndroidDeviceManager.git
  • build
    • mvn compile
  • run:
    • mvn exec:java

Use Cases

We want to manage a lot of Android devices and had previously used MDM (mobile device management) software such as AirDroid and ScaleFusion. These tools aren't free ($$) but more importantly trying to remote control/view an Android device was often a very slow and choppy experience.

So, instead we took a different approach. Instead of running MDM software on every individual Android device, we connected all of the devices to a single macbook laptop using multiple 16-port USB hubs. The Macbook is running Splashtop remote control software. I can now remote login and using Android Device Manager control all of the devices with very little to no lag.


Tested with 45 Android devices connected to 1 Macbook laptop (using multiple 16-port USB hubs)