这个项目能做什么

Expo Device Hub 是一个 Expo DevTools 插件,为 iOS 模拟器和 Android 模拟器提供统一控制界面,让开发者无需离开工作流即可在浏览器中预览设备并与之交互。运行 `expo start` 时,它会注册一个设备仪表盘,显示任意设备的实时画面并允许直接交互。 主要功能: - 在浏览器中实时流式传输 iOS 模拟器和 Android 模拟器。 - 直接交互:点击、滑动、滚动以及向设备输入文字。 - 无需打开 Xcode 或 Android Studio 即可启动、关闭和添加设备。 - 跟随系统浅色/深色主题,并可切换设备外观。 - 可从检查器的 Camera 区域向 Android 模拟器的摄像头输入 PNG 图像。 要求:iOS 模拟器需要 macOS 和 Xcode;Android 模拟器需要 Android SDK(emulator、adb)。在 Expo 应用中使用该 Hub 需要 Expo SDK 57 或更高版本。 用法:通过 `npx expo install expo-device-hub` 安装,然后运行 `npx expo start`。终端中会出现一个链接。它也可以通过 `npx expo-device-hub` 独立运行。 该仓库是一个使用 Turborepo 编排的 Bun workspace。包包括主 DevTools 插件、设备客户端层(@expo/hub-client,统一了 serve-sim 的 MJPEG/H.264、二进制触摸包与 serve-emu 的 WebCodecs H.264、JSON 手势等不同传输协议)、基于 Expo styleguide tokens 构建的无依赖 UI 工具包、Apple 和 Android 设备工具,以及内置的 serve-sim/serve-emu 服务器。一个示例 Expo 应用展示了最终用户视角下的插件效果。 开发:使用 Bun 1.3.14 安装依赖,并通过 `bun run build` 构建所有包。示例应用可通过 `bun start` 启动。对于 UI 迭代,插件可以作为独立 Expo Web 应用运行,并支持 Metro 快速刷新;设备服务器已打包,因此对 src/server 下的更改需要运行 `bun run build:server`。