android-emulator-skill
Production-ready scripts for Android app testing, building, and automation. Provides semantic UI navigation, build automation, log monitoring, and e…
它会碰到什么
逐条看命中(20 条严重或高危)
- 高
scripts/build_and_test.py:39exec-spawnprocess = subprocess.Popen(
- 高
scripts/common.py:15cred-envreadandroid_home = os.environ.get("ANDROID_HOME") - 高
scripts/common.py:23exec-spawnsubprocess.run(["adb", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=True)
- 高
scripts/common.py:60exec-spawnreturn subprocess.run(full_cmd, capture_output=True, text=True, check=check)
- 高
scripts/emu_health_check.ps1:66cred-envread$envAndroidHome = $env:ANDROID_HOME
- 高
scripts/emu_health_check.ps1:70cred-envread$userProfile = $env:USERPROFILE
- 高
scripts/emu_health_check.ps1:72cred-envread$userProfile = $env:HOME
- 高
scripts/emu_health_check.ps1:79cred-envread$env:ANDROID_HOME = $commonPath
- 高
scripts/emu_health_check.ps1:83cred-envread$env:ANDROID_HOME = $macPath
- 高
scripts/emu_health_check.ps1:109cred-envreadif (-not [string]::IsNullOrWhiteSpace($env:ANDROID_HOME)) { - 高
scripts/emu_health_check.ps1:110cred-envread$platformToolsPath = Join-Path $env:ANDROID_HOME 'platform-tools'
- 高
scripts/emu_health_check.ps1:112cred-envread$env:PATH += ";$platformToolsPath"
- 高
scripts/emu_health_check.ps1:138cred-envreadif (-not [string]::IsNullOrWhiteSpace($env:ANDROID_HOME)) { - 高
scripts/emu_health_check.ps1:139cred-envread$emulatorPath = Join-Path $env:ANDROID_HOME 'emulator'
- 高
scripts/emu_health_check.ps1:141cred-envread$env:PATH += ";$emulatorPath"
- 高
scripts/emulator_manage.py:16cred-envreadandroid_home = os.environ.get("ANDROID_HOME") - 高
scripts/emulator_manage.py:24exec-spawnsubprocess.run(["emulator", "-version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
- 高
scripts/emulator_manage.py:35exec-spawnres = subprocess.run([emu, "-list-avds"], capture_output=True, text=True, check=True)
- 高
scripts/emulator_manage.py:47exec-spawnsubprocess.Popen([emu, "-avd", avd_name], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
- 高
scripts/log_monitor.py:64exec-spawnprocess = subprocess.Popen(full_cmd, stdout=sys.stdout, stderr=sys.stderr)
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Android Emulator Skill
Build, test, and automate Android applications using accessibility-driven navigation and structured data instead of pixel coordinates.
Quick Start
# 1. Check environment (use .sh on macOS/Linux, .ps1 on Windows)
bash scripts/emu_health_check.sh
# or on Windows: .\scripts\emu_health_check.ps1
# 2. Launch app
python scripts/app_launcher.py --launch com.example.app
# 3. Map screen to see elements
python scripts/screen_mapper.py
# 4. Tap button
python scripts/navigator.py --find-text "Login" --tap
# 5. Enter text
python scripts/navigator.py --find-type EditText --enter-text "user@example.com"
All scripts support --help for detailed options and --json for machine-readable output.
Production Scripts
Build & Development
- build_and_test.py - Build Android projects, run tests, parse results
- Wrapper around Gradle
- Support for assemble, install, and connectedCheck
- Parse build errors and test results
- Options:
--task,--clean,--json
- log_monitor.py - Real-time log monitoring with intelligent filtering
- Wrapper around
adb logcat - Filter by tag, priority, or PID
- Deduplicate repeated messages
- Options:
--package,--tag,--priority,--duration,--json
Navigation & Interaction
- screen_mapper.py - Analyze current screen and list interactive elements
- Dump UI hierarchy using
uiautomator - Parse XML to identify buttons, text fields, etc.
- Options:
--verbose,--json
- navigator.py - Find and interact with elements semantically
- Find by text (fuzzy matching), resource-id, or class name
- Interactive tapping and text entry
- Options:
--find-text,--find-id,--tap,--enter-text,--json
- gesture.py - Perform swipes, scrolls, and other gestures
- Swipe up/down/left/right
- Scroll lists
- Options:
--swipe,--scroll,--duration,--json
- keyboard.py - Key events and hardware buttons
- Input key events (Home, Back, Enter, Tab)
- Type text via ADB
- Options:
--key,--text,--json
- app_launcher.py - App lifecycle management
- Launch apps (
adb shell am start) - Terminate apps (
adb shell am force-stop) - Install/Uninstall APKs
- List installed packages
- Options:
--launch,--terminate,--install,--uninstall,--list,--json
Emulator Lifecycle Management
- emulator_manage.py - Manage Android Virtual Devices (AVDs)
- List available AVDs
- Boot emulators
- Shutdown emulators
- Options:
--list,--boot,--shutdown,--json
- emu_health_check - Verify environment is properly configured
- Use
emu_health_check.shon macOS/Linux andemu_health_check.ps1on Windows - Check ADB, Emulator, Java, Gradle, ANDROID_HOME
- List connected devices
Common Patterns
Auto-Device Detection: Scripts target the single connected device/emulator if only one is present, or require -s <serial> if multiple are connected.
Output Formats: Default is concise human-readable output. Use --json for machine-readable output.
Requirements
- Android SDK Platform-Tools (adb, fastboot)
- Android Emulator
- Java / OpenJDK
- Python 3
Key Design Principles
Semantic Navigation: Find elements by text, resource-id, or content-description.
Token Efficiency: Concise default output with optional verbose and JSON modes.
Zero Configuration: Works with standard Android SDK installation.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
.github/skills/testing_and_automation/android-emulator-skill/SKILL.md