跳转到内容

Android 模拟器,在浏览器中流畅运行。

一条命令即可安装。无需 Android Studio。

主屏幕
实时演示

你的模拟器,在浏览器标签页中

选择一个画面或左右滑动。在你的 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、设备和浏览器。 实测性能

功能介绍

模拟器窗口中的一切功能,触手可及

为什么使用它

可供核实的事实

  1. 127.0.0.1

    画面留在你的 Mac 上

    网关仅监听回环地址。其他电脑无法访问它,也不会有任何画面帧经过互联网传输。

    安全性
  2. SDK

    官方 Android 模拟器

    它运行 Google 的模拟器和来自 Android SDK 的系统镜像,与 Android Studio 使用的完全相同。如果你已有 SDK,网关会直接使用它。

    前置要求
  3. 1.24×

    CPU 占用接近 scrcpy

    在搭载 M4 的 Mac 上(Pixel 5 API 34 虚拟设备,1080×2340,Chrome 157,rgba-mmap 传输)进行 16 次连续滑动期间,模拟器、网关和 Chrome 合计使用了 257% CPU。scrcpy 在相同条件下使用了 208%。

    实测性能
  4. MIT

    开源

    网关和页面的每一行代码都在 GitHub 上,遵循 MIT 许可证。

    github.com/twosugar/android-emu-web
对比

与其他查看模拟器方式的区别

仅列可供核实的差异。每种工具都有其擅长之处。

问题android-emu-webAndroid 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 许可证付费套餐
快速开始

三步看到第一帧画面

  1. 检查你的 Mac

    需要 Apple Silicon Mac、Chrome 或 Edge,以及带有 arm64 系统镜像的 Android 模拟器。

    前置要求
  2. 安装网关

    在终端中运行以下命令。它会将单个可执行文件保存到 ~/.local/bin。

    curl -fsSL https://droid.devpier.dev/install.sh | sh

    安装指南
  3. 启动它

    运行 android-emu-web。它会在浏览器中打开页面,并显示正在运行的模拟器。

    首次运行