Skip to content

xieyuquanxx/AndroidEmulatorWatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emulator Watcher iconEmulator Watcher

PyQt-based desktop app that connects to remote servers over SSH, discovers running Android emulators via adb, and continuously streams their screenshots into a multi-panel viewer.

Screenshot

Emulator Watcher demo Demo screenshot showing multiple emulator feeds streamed into the viewer.

Features

  • Reads available hosts directly from your ~/.ssh/config file for quick selection.
  • Establishes an SSH session using Paramiko and runs all adb commands remotely.
  • Lists connected emulators (adb devices) and lets you start/stop watchers per instance.
  • Streams frames by executing adb -s <serial> exec-out screencap -p in worker threads and renders them in the GUI with timestamps.
  • Supports multiple concurrent emulators; each feed is labeled by its emulator serial and port.
  • Provides a manual "Remote adb path" input so you can point to a non-standard adb binary on the server.

Requirements

  • Python 3.10 or newer on the local machine.
  • The remote server must have Android SDK platform tools (adb) installed and available on PATH.
  • Your ~/.ssh/config must contain the target host definitions (non-wildcard entries) and the associated SSH keys must be accessible (agent or local files).
  • Local machine needs an X server (macOS + Qt is fine) and access to PyQt6.

Quick Start

  1. Install dependencies:
    uv sync
    source .venv/bin/activate
  2. Launch the GUI:
    uv run emulator-watcher
  3. Enter the absolute path to adb on the remote server, then select a host and click Connect.
  4. Click Refresh Emulators to list running emulators.
  5. Highlight one or more emulators and click Start Watching to begin streaming their screens.

Project Structure

src/emulator_watcher/
├── app.py              # PyQt application + main window
├── adb_service.py      # SSH-backed adb helpers and screenshot workers
├── ssh_config.py       # Parser for ~/.ssh/config entries
├── ssh_client.py       # Paramiko session wrapper
├── models.py           # Shared dataclasses
└── widgets/
    └── emulator_panel.py

About

monitor remote Android Emulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages