关于 PreviewAPK
PreviewAPK 提供托管的云端 Android 手机,供 AI Agent 操作并测试 APK 应用。其开源客户端包含 CLI 和 MCP 服务,可控制设备并查看截图、界面层级和日志。
主要功能
- 01推送并热替换 APK
- 02点击、滑动、输入和按键
- 03检查 UI 层级
- 04捕获帧缓冲区截图
- 05读取会话日志
- 06选择设备并交接控制权
适用场景
- 01在人工审查前测试 Android 构建
- 02自动执行应用导航和输入
- 03检查截图和崩溃日志
- 04向客户分享长期有效的预览链接
MCP 相关
开源客户端包含 MCP 服务,使用 PREVIEWAPK_API_KEY 连接托管的 PreviewAPK 服务。它提供 17 个工具,用于选择设备、部署 APK、交互操作、截图、查看层级和日志,以及交接控制权。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://previewapk.siteport.site/mcpclaude mcp add --transport http livetaub-previewapk https://previewapk.siteport.site/mcp{"mcpServers":{"livetaub-previewapk":{"type":"http","url":"https://previewapk.siteport.site/mcp"}}}在 Cursor 中打开{"servers":{"livetaub-previewapk":{"type":"http","url":"https://previewapk.siteport.site/mcp"}}}在 VS Code 中打开{"mcpServers":{"livetaub-previewapk":{"type":"http","url":"https://previewapk.siteport.site/mcp"}}}{"mcpServers":{"livetaub-previewapk":{"serverUrl":"https://previewapk.siteport.site/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://previewapk.siteport.site/mcp需要授权工具
详细介绍
PreviewAPK — 为 AI Agent 提供一部手机
你的 Agent 构建了一个 Android 应用,然后……你们谁也看不到它运行。 机器上没有模拟器,桌面上没有设备,而 Play Store 也不是反馈渠道。
PreviewAPK 为你的 Agent 提供一部真实的云端 Android 手机。 推送 APK 后,它几秒内就会在浏览器中启动。Agent 可以操控它——点击、输入、截图、查看日志——并在你查看之前验证自己的成果。你可以通过链接查看同一部手机,随时接管操作;每台设备都有一个永久预览链接,可交给客户或贴到 PR 中。
- 每台设备每月 $19,运行次数不限。每台设备一次运行一个应用;可随时切换应用。
- 链接始终为只读。只有所有者的密钥(Agent)或门户中的所有者可以操控设备——每个会话只有一名操作者,可在会话中通过明确交接来切换。
- 手机不包含 Google Play 服务。需要 Google 登录、Maps 或 FCM 的应用会受此限制;其他应用都能正常运行。
本仓库提供开源客户端:CLI 和 MCP 服务(两者都只有一个文件,且仅使用 Python 标准库)。PreviewAPK 服务本身托管在云端——你需要使用自己在 previewapk.siteport.site 帐户中的 API 密钥。目前 PreviewAPK 正处于候补名单 Beta 阶段;可在该网站加入候补名单。
快速开始 — CLI
curl -O https://previewapk.siteport.site/cli/previewapk.py
export PREVIEWAPK_API_KEY=pvk_… # from your portal's Developers card
python3 previewapk.py devices # see your devices
python3 previewapk.py use "Device 1" # pick the working device (like cd)
python3 previewapk.py push app.apk --run
python3 previewapk.py tree # the screen as an element tree
python3 previewapk.py tap --text "Log in"
python3 previewapk.py text "[email protected]"
python3 previewapk.py shot # a screenshot you can open
python3 previewapk.py logs --errors # the app's logcat, noise filtered
python3 previewapk.py relaunch # app back in front, ~2s, no reboot
python3 previewapk.py handoff user # hand the human the wheel
python3 previewapk.py links # your permanent preview link
向正在运行的设备推送应用会热切换应用——在同一会话中完成安装并重新启动,无需重启设备。
坐标使用比例值(0–1),而非像素;CLI 和 API 会拒绝超出范围的值,而不会悄悄点错位置;如果没有聚焦字段,text 会拒绝输入,而不会把文字打进虚空。
Agent 可以信赖这些信号:错误会说明发生了什么以及应该怎么做。
快速开始 — MCP 服务
从此仓库下载 previewapk_mcp.py,然后在 MCP 客户端中注册。Claude Code:
claude mcp add previewapk \
--env PREVIEWAPK_API_KEY=pvk_… \
-- python3 /path/to/previewapk_mcp.py
Cursor / Claude Desktop / 其他 MCP 客户端(JSON 配置):
{
"mcpServers": {
"previewapk": {
"command": "python3",
"args": ["/path/to/previewapk_mcp.py"],
"env": { "PREVIEWAPK_API_KEY": "pvk_…" }
}
}
}
17 个工具:列出/使用设备、推送(对正在运行的设备进行热切换)、启动、停止、链接、按坐标或标签点击、滑动、按键、输入文字、重新启动、截图(返回真实图像,来自帧缓冲区——与层级结构一致)、UI 层级结构、会话日志、交接。
工作设备模型与 CLI 一致:Agent 会话选择一次设备(previewapk_use_device 或 previewapk_start),之后即可在该设备上操作,无需重复指定设备名称。设备没有默认值——未选择设备时,操作会被拒绝,因此构建结果绝不会因默认假设而发送到错误的手机上。
Agent 应如何操控设备
使用层级结构(元素树:类、标签、中心点、状态标志)进行导航和断言——快速、成本低、精准。通过截图验证视觉效果。操作后查看日志;崩溃的确切原因就在其中。模拟器噪声(虚拟 GPU 产生的图形栈垃圾信息)会被标记,并从仅显示错误的视图中排除;复制和下载的始终是完整原始日志。
完整文档:previewapk.siteport.site/docs(包含 API、CLI、MCP 指南,以及 CI 示例)。 Agent 入门说明:previewapk.siteport.site/agents
许可证
本仓库中的客户端工具采用 MIT 许可证(参见 LICENSE)。PreviewAPK 服务是独立托管的产品。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。