Android Emulator 能调用系统摄像头吗?
8月 12, 2026
AI 参与说明(Agent:Codex、inspect_post_conventions、source_check):本文根据 Android Developers 的公开文档协助整理,核对了 Android Emulator 将宿主机 webcam 映射为 AVD 相机的配置、命令行选项与权限边界。资料整理于 2026-08-12;Android Studio 的界面文案、Emulator 版本与可用设备会变化,请以文末官方文档和本机实际输出为准。
适用范围:本文讨论 Android Studio 的 Android Emulator 中,如何让手机或平板 AVD 使用开发机的内置或 USB 摄像头。这里的“系统摄像头”指宿主电脑的 webcam,不是让模拟器直接获得一台实体 Android 手机的相机硬件。
先说结论#
**可以。**Android Emulator 可以把开发机的 webcam 映射为 Android Virtual Device(AVD)的前置或后置摄像头。应用看到的仍是 Android 相机;图像帧则由宿主机摄像头提供。
这适合验证相机预览、基础拍照、扫码和视频流等路径。不过它是输入映射与仿真,不能证明实体设备上的实际成像、闪光灯、自动对焦、多镜头切换、厂商 Camera HAL 行为或性能都相同;这些依然应在目标真机上验证。
在 Android Studio 中配置#
以手机或平板 AVD 为例:
- 打开 Device Manager,找到目标虚拟设备并选择编辑。
- 在配置确认页面展开 Show Advanced Settings。
- 找到 Camera (Advanced),为已启用的前置或后置摄像头选择 Webcam。
- 保存配置后启动(或重新启动)AVD,再在应用中打开相机功能验证。
Camera (Advanced) 只有在硬件 profile 支持相机时才会出现;Wear OS、Android TV 和 Google TV 的 AVD 不提供这项相机设置。除 Webcam 外,Emulator 也可使用软件生成画面、Virtual Scene、图片或视频文件作为相机源,适合覆盖没有实体摄像头时的测试场景。Android Developers:Create and manage virtual devices
用命令行指定摄像头#
命令行方式适合脚本化启动或临时覆盖 AVD 中保存的相机设置。先列出 AVD 和 Emulator 可用于模拟的摄像头:
# 查看本机已有的 AVD 名称
emulator -list-avds
# 查看可映射给 Emulator 的宿主机摄像头
emulator @Pixel8_API_34 -webcam-list假设输出中出现 webcam0,启动时将它映射给后置或前置相机:
# 映射为后置摄像头
emulator @Pixel8_API_34 -camera-back webcam0
# 映射为前置摄像头
emulator @Pixel8_API_34 -camera-front webcam0将 Pixel8_API_34 替换为 emulator -list-avds 的实际 AVD 名称,将 webcam0 替换为 -webcam-list 列出的名称。-camera-back 和 -camera-front 是启动选项,会覆盖 AVD 原有的相机配置,不能在 Emulator 已启动后追加。官方还支持 emulated、environment、imagefile:<filename>、videofile:<filename> 与 none 等相机源。Android Developers:Start the emulator from the command line
如何验证与排查#
可按以下顺序检查:
- 用
-webcam-list确认 Emulator 能枚举到目标摄像头。 - 确认 AVD 的硬件 profile 启用了需要的前置或后置摄像头。
- 在 App 中打开相机预览、拍照或扫码流程。
- 确认 App 已声明并在 Android 6.0(API 23)及以上设备上请求
CAMERAruntime permission;模拟器不会绕过正常的 Android 权限模型。
若 -webcam-list 没有返回预期设备,应优先检查宿主操作系统是否识别该摄像头,以及系统隐私设置、驱动或其他应用对设备的占用状态。若列表正常但 App 仍无法打开相机,则继续从 AVD 的相机设置、App 权限和应用日志排查。
测试边界#
建议把 webcam 映射用于快速开发验证,把真机用于发布前验证:
| 测试目标 | Android Emulator + Webcam | 目标真机 |
|---|---|---|
| 相机权限、预览界面、拍照流程 | 适合 | 建议抽查 |
| 二维码识别、视频帧处理逻辑 | 适合 | 建议用真实光照复验 |
| 自动对焦、闪光灯、多摄像头、厂商差异 | 不应据此下结论 | 必须验证 |
| 性能、温升、真实成像质量 | 参考价值有限 | 必须验证 |
这一区分是工程上的判断:官方允许 AVD 在 webcam、Virtual Scene、图片和视频等不同相机源间切换,因此它很适合验证应用逻辑,但不等价于复现每台实体设备的相机硬件和厂商实现。
官方参考#
- Create and manage virtual devices:AVD 的 Camera (Advanced)、
Webcam与支持范围。 - Start the emulator from the command line:
-webcam-list、-camera-back、-camera-front和相机源选项。 - Declare app permissions:
CAMERApermission 的声明与 runtime permission 规则。