Android Device Manager is a Python library for creating, launching, and managing Android device programmatically.
Project description
Android Device Manager Python
Android Device Manager is a Python library for creating, launching, and managing Android emulators (AVDs) programmatically.
📖 Table of Contents
🚀 Features
📦 AVD Management
- Create AVDs programmatically from system images
- List existing AVDs and check availability
- Delete AVDs cleanly
- Validate AVD names according to Android rules
- Force recreation of AVDs with
force=True
▶️ Emulator Control
- Start emulators in headless or windowed mode
- Automatic port allocation for multiple running instances
- Stop emulators gracefully or force-kill when needed
- Custom emulator options via
EmulatorConfiguration
📡 ADB Integration
- Execute
adbcommands directly from Python - Install APKs and manage applications (install/uninstall)
- List installed packages and check if a package is installed
- Push and pull files between host and device
- Access
logcatoutput and clear logs
🐍 Requirements
- Python: 3.10 or higher
- Android SDK: Latest version recommended
- System Resources: Sufficient RAM and storage for emulators
📦 Installation
📦 From PyPI (Recommended)
pip install android-device-manager
🚧 From Source
git clone https://github.com/jwoirhaye/python-android-avd-manager-python.git
cd python-android-avd-manager
pip install -e .
⚡ Quickstart
With everything set up, here’s the simplest way to create and run an emulator:
from android_device_manager import AndroidDevice , AndroidProp
from android_device_manager.avd import AVDConfiguration
from android_device_manager.emulator import EmulatorConfiguration
# Define AVD configuration
avd_config = AVDConfiguration(
name="quickstart_avd",
package="system-images;android-34;google_apis;x86_64"
)
# Define Emulator configuration
emulator_config = EmulatorConfiguration(
no_window=True # Run emulator in headless mode
)
# Create and run the device using context manager
with AndroidDevice(avd_config, emulator_config) as device:
print(f"Device {device.name} is running!")
print("Android Version:", device.get_prop(AndroidProp.ANDROID_VERSION))
# Or
#print("Android Version:", device.get_prop("ro.build.version.release"))
📜 License
This project is licensed under the MIT License.
📧 Support
- 🐛 Issues: GitHub Issues
- 📬 Contact: [jerem.woirhaye@gmail.com]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file android_device_manager-1.1.0.tar.gz.
File metadata
- Download URL: android_device_manager-1.1.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91f2f34f13d6e964f06115976085a4b8743a5382e359dfdb20109c297d65bf0a
|
|
| MD5 |
9dd824f9f5b723dad699183bdc172018
|
|
| BLAKE2b-256 |
6461e8b695ae398deea9ac30ec9f53beb3ad43da7df841343bf719950842c9ac
|
File details
Details for the file android_device_manager-1.1.0-py3-none-any.whl.
File metadata
- Download URL: android_device_manager-1.1.0-py3-none-any.whl
- Upload date:
- Size: 23.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb168dbdfc5b91d1cffbd76170fa9c49fa5d4ea448e91deaed5bb24bb003d3ff
|
|
| MD5 |
8b8db0b016dfc2558d4450b66780ff8b
|
|
| BLAKE2b-256 |
5e4a0ace4a25293262f975d4fb867e76d998380fd064d590f6fddbed1ed04f8d
|