
实时演示
你的模拟器,在浏览器标签页中
选择一个画面或左右滑动。在你的 Mac 上,每次点击和拖动都会作用于真实模拟器。
三个程序,全在你的 Mac 上
网关通过 gRPC 和共享内存从官方 Android 模拟器读取画面帧,并通过 127.0.0.1 上的 WebSocket 发送到页面。点击、滑动和按键以相同路径回传。
- 浏览器Chrome 或 Edge 标签页
- 网关android-emu-web 运行于 127.0.0.1
- 模拟器官方 Android 模拟器
- 画面帧:原始 RGBA 经共享内存,再经 WebSocket 传输
- 点击、滑动和按键:WebSocket,再经 gRPC 传输
- 帧率中位数
- 60fps
- 点击延迟 p50
- 20ms
- 点击延迟 p90
- 30ms
在搭载 M4 的 Mac 上,使用 Pixel 5 API 34 虚拟设备(1080×2340)于 Chrome 157 中测量,采用 rgba-mmap 帧传输方式,进行 16 次连续滑动和 30 次点击。实际数值取决于你的 Mac、设备和浏览器。 实测性能
模拟器窗口中的一切功能,触手可及
全分辨率画面
画面帧按画布尺寸乘以屏幕像素比采集:在 Retina 屏幕上为 1080×2340,而非模糊的半尺寸副本。
点击、滑动与输入
点击即为轻触,拖动即为滑动,使用 Mac 键盘直接输入。返回、主页和最近任务按钮位于屏幕上方。
双向剪贴板
Cmd+V 粘贴 Mac 上的内容。在 Android 内复制的文字会同步到 Mac 剪贴板。中文及其他非 ASCII 文字通过剪贴板传输。
启动和停止设备
列出你的 Android 虚拟设备,启动一个,停止它,或接管已在运行的模拟器。
旋转、音量、截图
提供旋转、音量和电源的设备按钮。截图保存为全分辨率 PNG 文件。
滚轮支持
鼠标滚轮和触控板滚动会转换为设备上的短距离滑动,让长列表按预期方式滚动。
可供核实的事实
- 127.0.0.1
- SDK
- 1.24×
CPU 占用接近 scrcpy
在搭载 M4 的 Mac 上(Pixel 5 API 34 虚拟设备,1080×2340,Chrome 157,rgba-mmap 传输)进行 16 次连续滑动期间,模拟器、网关和 Chrome 合计使用了 257% CPU。scrcpy 在相同条件下使用了 208%。
实测性能 - MIT
与其他查看模拟器方式的区别
仅列可供核实的差异。每种工具都有其擅长之处。
| 问题 | android-emu-web | Android Studio 模拟器 | scrcpy | 云端模拟器(如 Appetize) |
|---|---|---|---|---|
| Android 在哪里运行 | 你 Mac 上的官方模拟器 | 你 Mac 上的官方模拟器 | 你连接的设备或模拟器 | 供应商的服务器 |
| 在哪里查看 | Chrome 或 Edge 标签页 | Android Studio 的运行设备窗口,或模拟器自身窗口 | 桌面应用窗口 | 浏览器标签页 |
| 需要 Android Studio | 不需要;需要网关、模拟器和系统镜像 | 需要(用于运行设备视图) | 不需要 | 不需要 |
| 画面如何传输 | 原始 RGBA 帧经 127.0.0.1 传输 | 模拟器窗口或 Android Studio,均在你的 Mac 上 | H.264 视频 | 视频经互联网传输 |
| 价格 | 免费,MIT 许可证 | 免费 | 免费,Apache-2.0 许可证 | 付费套餐 |