你可以做什么
启用 Android 模拟器支持后,Devin 可以覆盖完整的移动开发闭环:构建并冒烟测试
Devin 会在模拟器上构建并运行你的应用,并在每次后逐一点击关键流程。你会获得一份可证明功能正常的视频记录——看过即可合并。
端到端移动测试
在真实的 Android 运行栈上测试完整的用户流程——登录、页面导航、表单提交、结账——而不是 mock。Devin 会按步骤执行整个流程,并标记任何出错的地方。
UI 验证
验证不同屏幕尺寸和 API 级别下的布局、主题和响应式表现。Devin 会在关键节点截图,并标记元素重叠或文本被截断等视觉问题。
调试崩溃和 ANR
在模拟器上复现问题、捕获
logcat 输出、检查行为、定位根因并推送修复——全部在同一个会话中完成。跨平台验证
正在使用 React Native、Flutter 或 Kotlin Multiplatform 构建?Devin 可以在同一个会话中,同时测试 Android 端以及你的 Web 或桌面构建。
执行插桩测试
在模拟器上运行 Espresso 或 UI Automator 测试套件,并获取回传结果,无需单独的 CI 设备农场或物理设备。
多配置测试
通过配置多个 AVD,验证你的应用在不同 API 级别或设备 Profile 下的表现。这有助于在兼容性问题影响用户前提前发现它们。
工作原理
Android 模拟器支持基于与 Devin 其余环境相同的声明式配置系统。你只需将 Android SDK 和模拟器添加到蓝图中,Devin 的快照就会构建一个预装好所有必需内容的 VM。每个会话都会从该快照启动,模拟器开箱即用。 在会话期间,Devin 会通过两种方式与模拟器交互:
模拟器窗口运行在 Devin 的桌面上,因此你可以通过 webapp 中的 Desktop 选项卡实时观看 Devin 与你的应用交互。
设置 Android 模拟器
- 让 Devin 处理(推荐)
- 手动设置蓝图
这是最简单的开始方式。Devin 会分析你的 Android 项目,安装所需的 SDK 组件,并为你配置模拟器。
1
启动 Devin 会话
打开一个新会话,请 Devin 设置 Android 模拟器。例如:“为这个 repo 设置一个 Android 模拟器。”
2
审核并批准
Devin 会提供一个包含 Android SDK、构建工具和模拟器配置的蓝图。查看时间线中的建议卡片,然后点击 Approve。
3
验证
构建完成后,启动一个新会话。请 Devin 在模拟器上构建并运行你的应用,确认一切正常。
会安装哪些内容
典型的 Android 模拟器支持蓝图会安装:使用模拟器
按需测试
在会话期间的任何时候,你都可以让 Devin 构建并运行你的应用——无需特殊语法,直接用自然语言即可:- “在 Android 模拟器上构建并运行这个应用”
- “在模拟器上测试登录流程,并把录屏发给我”
- “在模拟器上打开设置界面,并确认新的开关已显示”
- “在模拟器上运行 Espresso 测试,并向我展示结果”
adb 执行程序化操作,并使用 Computer Use 进行可视化交互。
与测试和录制的集成
Android 模拟器支持可直接接入 Devin 的测试与录制工作流程。创建拉取请求后:- Devin 会提供测试应用选项——点击按钮或直接提出要求
- Devin 会在模拟器中构建并运行应用,并执行有针对性的测试计划
- 模拟器屏幕会被录制成带注释的视频录制
- 录制内容会发送给你,方便你查看测试过程并放心合并
技能建议
在测试你的 Android 应用后,Devin 会记下它学到的内容——如何启动模拟器、需要运行哪些 Gradle 任务、如何进入待测功能——并通过拉取请求建议创建或更新一个技能。你可以直接按原样合并,也可以稍作修改,以完善这些指示。 随着时间推移,这意味着 Devin 会越来越擅长测试你的 Android 项目。每个会话中学到的内容都会在上一次的基础上不断积累——因此,当 Devin 第二次测试你的应用时,它已经知道如何构建应用、该启动哪个 Activity,以及哪些流程最关键。 你也可以随时提示 Devin 执行此操作 (例如:“为如何构建和测试这个 Android 应用创建一个技能”) 。完整详情请参阅技能指南。通过桌面进行交互
Android 模拟器会作为 Devin Linux 桌面上的一个窗口运行。这意味着:- Devin 可以通过 Computer Use 与其交互 — 点击按钮、滑动、输入文本,以及在不同界面之间导航
- 你可以通过 Devin webapp 中的 Desktop 选项卡实时观看
- 录制内容会捕获模拟器屏幕,以及 Devin 桌面上可见的任何其他内容
使用 adb
Devin 还可以通过 adb 以编程方式与模拟器交互,这在以下场景中非常有用:
- 安装 APK —
adb install app-debug.apk - 运行插桩测试 —
adb shell am instrument -w com.example.test/androidx.test.runner.AndroidJUnitRunner - 抓取日志 — 使用
adb logcat调试崩溃或异常行为 - 截图 —
adb exec-out screencap -p > screenshot.png - 模拟用户输入 —
adb shell input tap 500 800,用于脚本化交互
adb 和 Computer Use 之间进行选择:adb 适合追求速度和自动化的场景,Computer Use 适合进行视觉验证和处理复杂的 UI 流程。
蓝图示例
适用于常见 Android 配置的可直接复制粘贴蓝图。每个模板都可单独使用——将其粘贴到你的蓝图编辑器中并保存即可。原生 Android(Kotlin/Java + Gradle)
原生 Android(Kotlin/Java + Gradle)
React Native
React Native
Flutter
Flutter
Kotlin Multiplatform
Kotlin Multiplatform
故障排查
模拟器无法启动
常见原因: VM 中无法使用 KVM、内存不足,或缺少系统镜像。 修复: 当 Devin 检测到模拟器需要硬件加速时,它可以尝试自动配置 KVM——在大多数情况下,无需手动干预即可解决该问题。如果在 Devin 尝试后 KVM 仍不可用,模拟器可以回退到软件渲染模式——在模拟器启动命令中添加-no-accel,但性能会有所下降。另请检查你的蓝图是否安装了模拟器以及兼容的 x86_64 系统镜像。
构建因 SDK 错误失败
常见原因: 缺少 SDK 组件、ANDROID_HOME 路径配置错误,或 Gradle 找不到正确版本的构建工具。
修复: 确认你的蓝图中已正确设置 ANDROID_HOME,并确保 sdkmanager 安装了项目所需的平台版本和构建工具版本。检查项目的 build.gradle 中的 compileSdk、targetSdk 和 buildToolsVersion,并在蓝图中保持一致。
模拟器运行缓慢
Android 模拟器运行在 Devin 的 VM 中,因此其性能取决于系统镜像和渲染模式。 提示:- 使用
x86_64系统镜像 (不要使用 ARM) ,以启用硬件加速模拟 - 使用
-gpu swiftshader_indirect进行无需 GPU 直通的软件渲染 - 当 Devin 不需要可视界面时,使用
-no-window -no-audio(例如,通过adb运行插桩测试时) - 如果不太看重画面保真度,可考虑使用较低分辨率的设备 Profile
Devin 无法与模拟器屏幕交互
**常见原因:**未启用桌面模式、模拟器窗口不可见,或模拟器正以无头模式运行。 **修复:**请确保已在你的组织设置中启用桌面模式。如果你需要 Devin 通过可视界面与模拟器交互,请在启动时不要使用-no-window 标志,这样模拟器 GUI 就会显示在 Devin 的桌面上。在让 Devin 与其交互之前,请先确认模拟器已完全启动 (adb shell getprop sys.boot_completed 应返回 1) 。
