Developer Device Platform (DDP) 是 Google Cloud的商业级云优先平台,用于远程移动设备编排、自动化批量测试和智能体开发工作流。DDP 将受管设备农场基础设施直接集成到 Google Cloud 生态系统中。本词汇表按字母顺序提供了 DDP 的关键概念、架构组件、API 接口、CLI 命令和操作范式的技术参考。
如需了解 Developer Device Platform 及相关技术的基本术语,请参阅本页面上的列表。以下是关键术语定义的其他来源:
A
智能体技能(DDP 智能体技能和迁移技能)
DDP 智能体技能
在 Google Cloud
GitHub 上的/skills/cloud/developer-device-platform-basics技能
下发布的开源特定于任务的指令
集。
DDP 智能体技能专为 Antigravity、ChatGPT 和 Claude Code 等 AI 编码助理而设计,使智能体能够通过 Device Streaming API 以编程方式租用远程设备、初始化 ADB 转发守护程序、执行 shell 命令、捕获帧缓冲区屏幕截图,以及使用 gcloud device-run CLI 触发自动化测试套件。
迁移技能
从 Firebase Test Lab 迁移到 Developer Device Platform 的技能,其中详细介绍了标志映射和其他差异,并包含专门针对 AI 智能体的纯文本版本。
Android Test Orchestrator
借助 Android Test Orchestrator,您可以在应用自己的插桩调用中运行应用的每项测试。如需了解详情,请参阅使用 Android Test Orchestrator。
APK 集 (.apks)
由 bundletool 为 Android App Bundle (AAB) 生成的软件包存档格式。DDP 原生支持安装 .apks 文件。
AutomationSession Service (DeviceRun API)
DDP 的核心批处理执行引擎,托管在 devicerun.googleapis.com 下。AutomationSession 服务通过一个统一的 API 调用接受应用二进制文件和硬件条件。后端会将设备分配、环境预配、测试驱动程序执行、日志收集和拆解作为原子操作进行处理。
C
Cloud Storage 模型(用户拥有的存储桶)
DDP 的存储架构,其中所有测试输入工件 (APK) 和输出结果都托管在开发者Google Cloud 项目(例如 gs://<project_id>_devicerun)拥有的存储桶中。
D
Developer Device Platform (DDP)
Google Cloud的企业级平台,用于远程设备测试和智能体移动开发,托管在 Google Cloud上。DDP 提供与 Google Cloud 控制台、IAM、Cloud Billing 和 SDK 原生集成的受管设备农场基础架构。
Device Catalog API
一个统一且符合 AIP 规范的设备发现界面,托管在 devicerun.googleapis.com 下,适用于项目和位置。设备目录提供了一个涵盖实体和虚拟 Android 及 iOS 设备的单一平面集合。每个条目都会公开一个稳定的不透明设备 ID、硬件规格以及实时机群容量和可用性信号。
| 目录属性 | 数据类型 | 说明 |
|---|---|---|
name |
字符串 | 资源路径 (projects/my-project/locations/global/devices/device-id)。 |
form |
枚举 | 硬件类型(PHYSICAL 或 VIRTUAL)。 |
os_version |
字符串 | 操作系统版本或 Android SDK 级别(例如 35 或 17.4)。 |
availability |
消息 | 车队容量信号(HIGH、MEDIUM、LOW、NONE)。 |
Device Run API
devicerun.googleapis.com 伞,它将远程设备测试、目录发现和代理工作流整合到云原生服务中,如 Device Run 概览中所述。
Device Streaming API
内置 Google Cloud 产品
devicestreaming.googleapis.com
提供交互式远程设备串流功能。借助 Device Streaming API,开发者可以将实时设备显示内容直接流式传输到 Android Studio。
E
执行
Developer Device Platform Device Run 的三层资源层次结构(Session -> Job -> Execution)中的最低层。执行表示系统生成的具体运行时尝试,旨在在分配的设备上运行测试套件或分片,并捕获原始输出日志、系统日志和视频录制内容。
F
侧翼
一款热门的第三方开源客户端测试运行程序,旨在优化测试作业和分片。DDP 原生吸收了 Flank 的核心功能,包括基于 YAML 的配置、高级历史智能分片和有针对性的重试,因此无需外部封装容器。
G
gcloud device-run
用于 DDP 批量测试和流式传输操作的主要 Google Cloud SDK 命令行界面。它采用以资源为中心的 gcloud device-run
<resource> <verb> 模式,提供用于提交测试会话、查询设备可用性、轮询执行状态和下载结果的命令。
J
作业
Developer Device Platform Device Run 的三层资源层次结构(Session -> Job -> Execution)中的中间层。作业会将特定的自动化配置(JobAction,例如 Android 插桩测试)与目标设备配置配对。启用分片或重试后,单个作业会自动扩展为多个执行。
否
NO_ACCESS_BLOCKED_BY_ORG_ADMIN
DDP 设备目录中返回的访问状态标记,表示特定设备型号或合作伙伴实验室(例如第三方 OEM 硬件)已被 Organization Administrator 使用 Google Cloud 资源管理器标记或组织政策限制。
O
One Platform API 依赖项组
一项 Google Cloud 服务控制平面功能,可自动触发依赖 API 的后端激活。当开发者启用 DDP API 时,依赖项组会在后台自动激活。
P
Partner Device Labs
由 Google OEM 合作伙伴(例如三星、小米、OPPO、一加、vivo、传音)直接运营并集成到 DDP 中的远程设备实验室。合作伙伴实验室扩大了设备目录的多样性,并且需要在Google Cloud 控制台中进行明确的项目级启用。
S
依序重试不可靠的测试
DDP 中的一种节省成本的重试机制,可隔离并仅重试分片中失败的单个测试用例,默认情况下会按顺序运行这些用例,而不是同时重新运行整个分片。
服务代理(服务账号)
在 Google Cloud 项目中启用 DDP API 时自动创建的 Google 管理的 Google Cloud 服务账号。DDP 服务代理拥有 IAM 服务权限,可以安全地从用户拥有的 Google Cloud Storage 存储桶中读取输入测试二进制文件,并将测试输出日志和视频写入其中,将状态通知发布到 Google Cloud Pub/Sub 主题,并代表项目在托管数据中心内编排硬件分配。
Service Usage/API 启用
Google Cloud 服务管理子系统,负责为项目启用和配置 Google Cloud API。启用 DDP 需要项目级权限或 devicerun.googleapis.com、devicestreaming.googleapis.com 和 testing.googleapis.com 服务角色。
会话
Developer Device Platform Device Run 资源层次结构 (projects/my-project/locations/global/sessions/session-id) 中的顶级容器。一个会话封装了用户的批量提交,其中包含在设备矩阵或 Gradle 模块中执行的一个或多个作业,并生成一个汇总的 SessionReport。
在 Developer Device Platform Device Streaming API 中,deviceSession 表示单个远程设备流式传输会话。Device Streaming API 不会运行批处理脚本直至完成,而是预留单个设备并打开实时双向连接,以便工程师或 AI 智能体实时查看屏幕并控制设备。
智能分片
Developer Device Platform Device Run (--sharding-option=smart) 中的一种智能测试分区机制。智能分片会分析最多 30 天的历史测试作业数据,跟踪特定设备型号的运行时,并考虑 Android Test Orchestrator 启动开销,将测试套件分配到平衡的分片中,以实现指定的时长。
U
统一分片
Developer Device Platform Device Run 中的一种测试分发策略 (--sharding-option=uniform
--uniform-sharding-count=N),该策略使用 AndroidJUnitRunner 的原生 -e numShards 和 -e shardIndex 参数,将 Android 插桩测试套件划分到固定数量的分片 ($N$) 中。