Cuttlefish是一种可配置的虚拟 Android 设备,可以远程运行(使用第三方云产品,例如 Google Cloud Engine)和本地运行(在 Linux x86 机器上)。
墨鱼目标
- 让平台和应用程序开发人员不再依赖物理硬件来开发和验证代码更改。
- 通过保持与核心框架的紧密对齐,复制真实设备基于框架的行为,注重高保真度。
- 支持 28 之后的所有 API 级别。
- 提供跨 API 级别的一致功能级别,与物理硬件上的行为保持一致。
启用比例:
- 提供并行运行多个设备的能力。
- 以较低的入门成本实现高保真度的并发测试执行。
为可配置设备提供调整外形尺寸、RAM、CPU 等的能力。
将 Cuttlefish 与其他设备进行比较
Cuttlefish 和 Android 模拟器
与Android Emulator有很多相似之处,但 Cuttlefish 保证与 Android 框架完全一致(无论是纯 AOSP 还是您自己的树中的自定义实现)。在实际应用中,这意味着您应该期望 Cuttlefish 在操作系统级别响应您的交互,就像使用相同的定制或纯 Android 操作系统源构建的物理手机目标一样。
Android Emulator 围绕简化应用程序开发的用例而构建,它包含许多功能挂钩以吸引 Android 应用程序开发人员的用例。如果您想使用自定义的 Android 框架构建模拟器,这可能会带来挑战。如果您需要一个虚拟设备来代表您的自定义平台/框架代码或树尖 Android,那么 Cuttlefish 是一个理想的虚拟选项。它是代表 AOSP 开发当前状态的规范设备。
墨鱼和物理设备
Cuttlefish 虚拟设备和您的物理设备之间的主要区别在于硬件抽象层 (HAL) 级别,以及与任何自定义硬件交互的任何软件。除了特定于硬件的实现之外,您应该期望 Cuttlefish 和物理设备之间的功能等效行为。
墨鱼有什么帮助?
您可以与 Cuttlefish 进行交互,就像与您可能用于调试的任何其他 Android 设备进行交互一样。它会通过 adb 将自己注册为普通设备,您可以通过远程桌面像物理设备一样与它交互。用例广泛,可以涵盖应用程序测试、自定义系统构建测试等。
因为 Cuttlefish 力求完全的框架保真度,所以它可以用于框架和/或应用程序的功能测试,其中没有无法模拟的物理硬件依赖性。
如今 Cuttlefish 通常如何用于测试?
Cuttlefish 的一些常见测试应用包括:
- 华侨城
- 框架合规性
- 持续集成测试
- 自定义测试套件
我可以在云中托管墨鱼吗?
是的,Cuttlefish 原生支持 Google Cloud,并计划支持其他云平台。
入门
有关基于 AOSP 创建 Cuttlefish 实例的指南,请参阅使用 Cuttlefish 。