This module provides tools for benchmarking DroidRun using the AndroidWorld (upstream) task suite - a collection of 116 diverse tasks across 20 Android applications.
Reference: android_world official documentation.
- Download Android Studio
- Create an Android Virtual Device (AVD):
- Hardware: Pixel 6
- System Image: Tiramisu, API Level 33
- AVD Name: AndroidWorldAvd
- Setup video tutorial
Launch the emulator from command line (not Android Studio UI) with the -grpc 8554 flag, which is required for accessibility forwarding.
# Emulator path is usually located at:
# ~/Android/Sdk/emulator/emulator
# ~/Library/Android/sdk/emulator/emulator
EMULATOR_NAME=AndroidWorldAvd
~/Library/Android/sdk/emulator/emulator -avd $EMULATOR_NAME -no-snapshot -grpc 8554git clone https://github.com/droidrun/droidrun-android-world && \
cd droidrun-android-world
# initialize submodules (android_world + droidrun)
git submodule update --init# install dependencies using uv
uv sync
# build cli
uv buildexport GEMINI_API_KEY=your-key # Or other provider keysMust be executed in droidrun-android-world/android_world directory, and keep running:
cd android_world
python -m server.android_server- adb not found
Locate adb path:Then updatewhich adb
adb_pathinandroid_server.py:adb_path="/opt/android/platform-tools/adb"
Run in another terminal (keep server.android_server running):
droidworld checkExecute from droidrun-android-world directory:
# Example: add contact task
droidworld run --tasks ContactsAddContact- Android Emulator must be launched via command line and kept running
- server.android_server must be kept alive in background
- Run tasks only under
droidrun-android-worlddirectory
Run a specific task by index:
droidworld run --min-task-idx 0 --max-task-idx 1Run a specific task by name:
droidworld run --task ContactsAddContactView all available tasks with their IDs:
droidworld list-tasks# Run with a different LLM provider and model
droidworld run --llm-provider Anthropic --llm-model claude-3-sonnet-20240229
# Set maximum steps per task: multiplier * task complexity
droidworld run --max-step-multiplier 15
# Run multiple parameter combinations per task
droidworld run --n-task-combinations 3
# Check all available configuration options with
droidworld run --helpThe benchmark script automatically manages the DroidRun accessibility service, which is required for proper interaction with Android UI elements: If you encounter issues with UI interaction:
- Verify the DroidRun Portal app is installed correctly
- Make sure both Droidrun Portal and Google Accessibility Forwarder are configured and enabled as accessiblity service
To diagnose run droidworld check