feat: add android-docker

This commit is contained in:
Sun-ZhenXing
2026-01-18 23:48:30 +08:00
parent 10313b35e9
commit 55318da0b2
12 changed files with 512 additions and 262 deletions

View File

@@ -0,0 +1,59 @@
# Docker Android Emulator
[English](./README.md) | [中文](./README.zh.md)
This service deploys the HQarroum Docker Android emulator image.
## Usage
- Start the default emulator:
```bash
docker compose up -d
```
- Start with GPU acceleration:
```bash
docker compose --profile gpu up -d
```
- Connect with ADB:
```bash
adb connect 127.0.0.1:5555
```
## Services
- `docker_android`: Android emulator (default).
- `docker_android_gpu`: Android emulator with CUDA support (profile: `gpu`).
## Configuration
- `DOCKER_ANDROID_VERSION`: Image tag, default is `api-33`.
- `DOCKER_ANDROID_GPU_VERSION`: GPU image tag, default is `api-33-cuda`.
- `DOCKER_ANDROID_ADB_PORT_OVERRIDE`: Host port for ADB, default is `5555`.
- `DOCKER_ANDROID_CONSOLE_PORT_OVERRIDE`: Host port for emulator console, default is `5554`.
- `DOCKER_ANDROID_KVM_DEVICE`: KVM device path, default is `/dev/kvm`.
- `DOCKER_ANDROID_KEYS_DIR`: ADB key directory for Play Store images, default is `./keys`.
- `DOCKER_ANDROID_DISABLE_ANIMATION`: Disable animations, default is `false`.
- `DOCKER_ANDROID_DISABLE_HIDDEN_POLICY`: Disable hidden API policy, default is `false`.
- `DOCKER_ANDROID_SKIP_AUTH`: Skip ADB authentication, default is `true`.
- `DOCKER_ANDROID_MEMORY`: Emulator RAM in MB, default is `8192`.
- `DOCKER_ANDROID_CORES`: Emulator CPU cores, default is `4`.
- `DOCKER_ANDROID_GPU_COUNT`: Number of GPUs, default is `1`.
- `DOCKER_ANDROID_CPU_LIMIT`: CPU limit, default is `2`.
- `DOCKER_ANDROID_MEMORY_LIMIT`: Memory limit, default is `8G`.
- `DOCKER_ANDROID_CPU_RESERVATION`: CPU reservation, default is `1`.
- `DOCKER_ANDROID_MEMORY_RESERVATION`: Memory reservation, default is `4G`.
## Volumes
- `docker_android_data`: Android AVD data stored at `/data`.
## Notes
- Linux with KVM is required for performance. Ensure `/dev/kvm` is available.
- For Play Store images, set `DOCKER_ANDROID_VERSION=api-33-playstore` and place `adbkey` and `adbkey.pub` in the `./keys` directory.
- The emulator is headless and can be controlled with `scrcpy` after connecting ADB.