Android 平台测试

Android 开源项目 (AOSP) 提供了多种工具和测试套件,用于测试您实现的各个部分。在使用本部分中的页面之前,您应该熟悉以下术语

Android 兼容设备
一种可以运行第三方开发者使用 Android SDK 和 NDK 编写的任何第三方应用的设备。Android 兼容设备必须遵守兼容性定义文档 (CDD)的要求,并通过兼容性测试套件 (CTS)。Android 兼容设备有资格参与 Android 生态系统,其中包括 Google Play 的潜在许可、Google 移动服务 (GMS)应用和 API 套件的潜在许可,以及 Android 商标的使用。任何人都可以随意使用 Android 源代码,但要被视为 Android 生态系统的一部分,设备必须与 Android 兼容。
工件
一种与构建相关的日志,可用于本地问题排查。
兼容性定义文档 (CDD)
一份列举了 Android 兼容设备的软件和硬件要求的文件。
兼容性测试套件 (CTS)

一个免费的商业级测试套件,可以二进制文件或 AOSP 源代码的形式下载。CTS 是一组单元测试,旨在集成到您的日常工作流程中。CTS 的目的是揭示不兼容性,并确保软件在整个开发过程中保持兼容。

CTS 和平台测试并非互斥。以下是一些通用指南

  • 如果测试是断言框架 API 函数或行为的正确性,并且应在 OEM 合作伙伴中强制执行,则该测试应位于 CTS 中。
  • 如果测试旨在捕获平台开发期间的回归问题,并且可能需要特许权限才能执行,并且可能依赖于实现细节(如 AOSP 中发布的),则该测试应为平台测试。
Google 移动服务 (GMS)

可在设备上预安装的 Google 应用和 API 的集合。

GoogleTest (GTest)

一个 C++ 测试和模拟框架。GTest 二进制文件通常访问较低级别的抽象层,或对各种系统服务执行原始 IPC。GTest 的测试方法通常与被测服务紧密耦合。CTS 包含 GTest 框架。

Instrumentation 测试

一种由 am instrument 命令启动的特殊测试执行环境,其中目标应用进程会重启并使用基本应用上下文进行初始化,并且 instrumentation 线程在应用进程虚拟机内部启动。CTS 包含 instrumentation 测试。

Logcat

一个命令行工具,用于创建系统消息日志,包括设备抛出错误时的堆栈轨迹以及您使用 Log 类从应用中写入的消息。

日志记录

使用日志来跟踪计算机系统事件(例如错误)。由于 Logcat 工具中混合使用了多种标准,因此 Android 中的日志记录非常复杂。

提交后测试

一种在将新补丁提交到通用内核分支时执行的 Android 测试。通过输入 aosp_kernel 作为部分分支名称,您可以查看包含可用结果的内核分支列表。例如,android-mainline 的结果可以在 https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid 中找到。

预提交测试

一种用于防止将故障引入通用内核的测试。

Trade Federation

也称为 Tradefed,一种持续测试框架,旨在在 Android 设备上运行测试。例如,Tradefed 用于运行兼容性测试套件和供应商测试套件测试。

供应商测试套件 (VTS)

一套用于 Android 测试的广泛功能,可促进测试驱动的开发流程,并自动化硬件抽象层 (HAL) 和操作系统内核测试。

平台测试类型

平台测试通常与一个或多个 Android 系统服务或 HAL 层交互,执行被测对象的功能,并断言测试结果的正确性。平台测试可能

  • (类型 1)使用 Android 框架执行框架 API。正在执行的具体 API 可以包括
    • 面向第三方应用的公共 API
    • 面向特许应用的隐藏 API,即系统 API 或私有 API(@hideprotectedpackage private
  • (类型 2)直接使用原始 binder 或 IPC 代理调用 Android 系统服务。
  • (类型 3)使用低级别 API 或 IPC 接口直接与 HAL 交互。

Type 1 和 Type 2 测试通常是 instrumentation 测试,而 type 3 测试通常是 GTests。

下一步是什么?

以下是您可以阅读以获取更详细信息的文档列表