API 参考(Android)
当你需要自定义设备行为、把 Midscene 接入框架,或排查 adb 问题时,请查阅本节。关于通用构造函数(报告、Hook、缓存等)的参数说明,请参考平台无关的 API 参考。
Action Space(动作空间)
AndroidDevice 使用以下动作空间,Midscene Agent 在规划任务时可以使用这些操作:
Tap—— 点击元素。DoubleClick—— 双击元素。Input—— 输入文本,支持replace/append/clear模式,可选autoDismissKeyboard。Scroll—— 以元素为起点或从屏幕中央向上/下/左/右滚动,支持滚动到顶/底/左/右。DragAndDrop—— 从一个元素拖拽到另一个元素。KeyboardPress—— 按下指定键位。LongPress—— 长按目标元素,可选自定义时长。PullGesture—— 上拉或下拉(如下拉刷新),可选距离与持续时间。ClearInput—— 清空输入框内容。Launch—— 打开网页或package/.Activity。RunAdbShell—— 执行原始adb shell命令。AndroidBackButton—— 触发系统返回。AndroidHomeButton—— 回到桌面。AndroidRecentAppsButton—— 打开多任务/最近应用。
AndroidDevice
创建一个可供 AndroidAgent 驱动的 adb 设备实例。
导入
构造函数
设备选项
deviceId: string—— 来自adb devices或getConnectedDevices()的值。autoDismissKeyboard?: boolean—— 输入完成后自动隐藏键盘,默认true。keyboardDismissStrategy?: 'esc-first' | 'back-first'—— 关闭键盘的顺序,默认'esc-first'。androidAdbPath?: string—— adb 可执行文件的自定义路径。remoteAdbHost?: string/remoteAdbPort?: number—— 指向远程 adb server。imeStrategy?: 'always-yadb' | 'yadb-for-non-ascii'—— 控制何时调用 yadb 进行文本输入,默认'yadb-for-non-ascii'。'yadb-for-non-ascii'(默认)—— 对 Unicode 字符(包括 Latin Unicode 如 ö、é、ñ)、中文、日文以及格式化符号(如 %s、%d)使用 yadb。纯 ASCII 文本使用更快的原生adb input text。'always-yadb'—— 对所有文本输入始终使用 yadb,提供最大兼容性,但对纯 ASCII 文本稍慢。
displayId?: number—— 在设备镜像多个屏幕时,选择特定虚拟屏幕。screenshotResizeScale?: number—— 在发送给模型前对截图进行缩放,默认1 / devicePixelRatio。alwaysRefreshScreenInfo?: boolean—— 每一步都重新查询旋转角度与屏幕尺寸,默认false。scrcpyConfig?: object—— Scrcpy 高性能截图配置,默认关闭。详见下方 Scrcpy 截图模式。
Scrcpy 截图模式
默认情况下,Midscene 通过 adb shell screencap 截图,每次耗时约 500–2000ms。开启 Scrcpy 模式后,通过 H.264 视频流实时获取画面,每次截图耗时约 100–200ms。
开启方式:
可选参数:
Tip
Scrcpy 模式在连接失败时会自动降级到 ADB 截图,无需额外处理。

