Android Studio 学习路线

Journeys for Android Studio 利用 AI 的视觉和推理能力,根据您的自然语言指令浏览和测试您的应用。 您的一组指令(称为 journey)会转换为 AI 在您的应用上执行的操作。此外,您还可以编写和描述更复杂的断言,AI 会根据其在设备上看到的内容评估这些断言。

Android Studio 的学习路线。
Journeys for Android Studio。

由于 Gemini 会推理出要执行哪些操作才能实现目标,因此 journey 对应用布局或行为的细微变化具有更强的适应能力,从而在针对不同版本的应用和不同的设备配置运行时,可以减少测试失败的情况。

您可以直接在 Android Studio 中或通过命令行针对任何本地或远程 Android 设备编写和运行 journey。IDE 提供了一种新的编辑器体验,用于编写 journey,并提供丰富的测试结果,帮助您更好地了解 Gemini 的推理过程和 journey 的执行情况。

编写 journey

Android Studio 提供了一个文件模板和新的编辑器体验,让创建和修改 journey 变得更加轻松。journey 使用 XML 语法编写,用于整理 journey 说明和步骤。

Android Studio 中的历程编辑器,显示了一个包含历程步骤的 XML 文件。

如需创建并开始修改 journey,请执行以下操作:

  1. 在 Android Studio 的 Project 面板中,右键点击要为其编写 journey 的应用模块。
  2. 依次选择 New > Journey Test
  3. 在随即显示的对话框中,提供 journey 的名称和说明。

    Android Studio 中用于创建历程文件的对话框。
    您在 Android Studio 中用于创建 journey 文件的对话框。

  4. 点击 Finish 。Android Studio 会使用您选择的名称为您的 journey 创建一个 XML 文件。您可以使用 Code 视图直接修改 XML,也可以使用 Design 视图获得简化的修改体验。

  5. Design 视图中查看 journey 时,请使用文本字段描述 journey 的每个步骤。每个步骤都可以包含您希望 Gemini 执行的描述性操作,或者您希望 Gemini 评估的断言。

  6. 按键盘上的 Enter 键,在同一 journey 中开始新步骤。您可以根据需要为要定义的 journey 的每个步骤重复此操作。

配置 build 变体

journey 针对应用的特定 build 变体运行。首次使用向导创建 journey 时,生成的测试套件会配置为针对 Android Studio 中处于活跃状态的 build 变体运行。

但是,如果您稍后在 Android Studio 中切换了活跃的 build 变体(例如,切换到不同的产品风味,如 demoDebug),但未更新配置,则运行 journey 将会失败。如需解决此问题,您必须将新 变体添加到模块级 build.gradle.kts(或 build.gradle)文件的 testSuites 块中的 targetVariants 属性。

例如,如需为 demoDebug 变体配置 journeysTest 套件,请执行以下操作:

android {
    // ...
    testSuites {
        create("journeysTest") {
            // ...
            targetVariants += listOf("demoDebug")
        }
    }
}

编写 journey 的提示

虽然 AI 能够理解以受支持的语言编写的大多数步骤,但遵循以下编写 journey 的提示可以获得更准确、更符合预期的结果:

  • 假设您的应用已在前台运行: 运行 journey 会自动启动您的应用。journey 的步骤应在应用完全启动后开始。 也就是说,您无需将“启动应用”作为步骤包含在内。
  • 使用明确的语言: 准确的语言可以最大限度地减少误解并提高可靠性。
不要使用 建议做法
“选择关闭按钮” “点按‘关闭’”或直接使用“关闭”
“输入‘芹菜’” “在主屏幕顶部的搜索栏中输入‘芹菜’”
“滑动以关闭” “向左滑动以关闭,然后该卡片应不再可见”
  • 将成功条件作为步骤的一部分包含在内: 这有助于 Gemini 更好地理解您的意图,并明确操作何时完成以及何时可以开始下一步操作。
不要使用 建议做法
“选择发送按钮” “点按提交按钮发送电子邮件。这应该会关闭电子邮件并返回到收件箱。”
“前往购物车” “点按购物车图标,系统会将您带到购物车页面。验证其中是否包含零件商品”
“点击第一个视频” “点击第一个视频并等待其完全加载”
  • 优化您的 journey: 如果您的 journey 未按预期执行,您可以 查看结果并检查“Action Taken”(采取的操作)和相应的 “Reasoning”(推理),了解 Gemini 可能未按预期执行步骤的原因。使用此信息可以使您的指令更加清晰。
  • 将您的 journey 分解为更具体的步骤: 虽然 AI 可以解读多操作步骤,但有时更精细的离散步骤可以提高 journey 的准确性和可重现性。
    • “错误:无法在允许的最大尝试次数内成功完成操作”:如果您遇到此错误,请尝试将失败的步骤分解为两个或更多个较小的步骤。这是因为,如果 AI 在尝试与您的应用进行最大次数的互动后无法完成操作,则会发生此错误。

受支持和不受支持的功能

下面简要介绍了编写 journey 时受支持和尚未完全受支持的功能。以下列表并不详尽。

journey 中支持 以下操作:

  • 点按 界面元素。
  • 输入 文本,以将其输入到文本字段中。
  • 滑动/滚动 到特定方向,以浏览界面。

目前尚未完全支持 以下功能,或者这些功能可能会以不一致的方式执行:

  • 多指手势(例如,双指张合以进行缩放) - 需要同时在屏幕上进行两个 或更多个接触点的互动,例如双指张合以进行缩放 以进行放大或缩小,或者使用双指滑动。
  • 长按 - 按住手指的时间长于 标准点按。
  • 点按两次 - 快速连续点按屏幕上的同一位置两次。
  • 屏幕旋转/折叠 - 处理设备方向 (例如,在竖屏和横屏之间)或可折叠设备 的物理状态(例如,打开或关闭)的变化。
  • 记忆 - 在之前的互动或步骤中保留和回忆特定信息、上下文或用户 输入。
  • 计数 - 准确跟踪数量、频率或进度。
  • 条件语句 - 根据是否满足其他 指定条件来执行操作。

功能和能力在不断改进。建议您稍后查看此页面,了解其他功能和能力。如需帮助我们改进 Journeys,请分享您的反馈

运行 journey

您可以像运行任何其他插桩测试一样,在任何可用的本地或远程设备上运行 journey,Android Studio 会生成丰富的测试结果,帮助您了解 journey 的执行情况。

如需测试 journey,请执行以下操作:

  1. 从主工具栏中选择目标设备,就像运行插桩测试时一样。
  2. 找到要测试的 journey XML 文件,并在编辑器中将其打开。
  3. 在编辑器中,执行以下操作之一:
    1. 如果您处于 Design 视图中,请点击 Run Journey
    2. 如果您处于 Code 视图中,请点击 Run 'test' (运行“测试”),该选项位于 XML 中定义 journey 名称的位置旁边的装订线中。

Android Studio 会为您创建一个 Journeys Test 配置,并在目标设备上运行该配置。在执行期间,Android Studio 会构建和部署您的应用,并连接到 Gemini 以确定要为 journey 的每个步骤采取哪些操作。

Android Studio 中的 Journey 测试结果面板,显示了步骤详细信息和 Gemini 的推理。
Android Studio 中的 journey 测试结果面板,显示 步骤详细信息和 Gemini 的推理。

针对任何预安装的应用运行 journey

您可以在测试设备上针对预安装的应用运行 journey。如果您想测试应用的正式版,或者尚未将应用更新到 Android Gradle 插件 9.0.0 或更高版本,则此功能非常有用。

  1. 打开或创建一个已更新到 Android Gradle 插件 9.0.0 或更高版本的新项目
  2. 编写 journey
  3. 修改运行配置 for the journey,并添加以下环境变量。当您尝试从 Android Studio 运行 journey 时,系统会自动创建运行配置。
    • JOURNEYS_CUSTOM_APP_ID 设置为目标应用的软件包 ID。
  4. 运行您修改的 journey。Android Studio 应在您指定的目标应用上执行 journey 的步骤。

通过命令行运行 journey

如需通过命令行运行 Journeys,请使用 Android CLI

查看结果

当 Android Studio 完成 journey 测试后,测试结果面板会自动显示,向您展示结果。

Android Studio 中的 Journey 测试结果面板,显示了步骤详细信息和 Gemini 的推理。
Android Studio 中的 journey 测试结果面板,显示 步骤详细信息和 Gemini 的推理。

与您可能在 Android Studio 中运行的其他插桩测试相比,journey 的结果显示方式存在一些差异。

  • Tests (测试)面板会将 journey 分解为离散的步骤。您可以点击每个步骤,详细了解 Gemini 如何执行该步骤。
  • Results (结果)面板会显示丰富的信息,帮助您了解 Gemini 如何理解和推理您的 journey,以及如何执行该 journey。
    • 系统会显示发送给 Gemini 的屏幕截图,以便在步骤中的每个操作中提供视觉辅助。
    • 每张屏幕截图旁边都会描述采取的每项操作以及 Gemini 采取该操作的原因。
    • 步骤中的每个操作都有编号。

已知问题

  • Gradle 配置缓存问题: 启用 Gradle 配置缓存后,journey 的行为可能会出乎意料。例如,当存在多个 journey 文件时,这可能会导致运行错误的 journey 文件。它还可能导致身份验证问题。

    如需解决此问题,您可以在项目的 gradle.properties文件中设置 org.gradle.configuration-cache=false,以停用配置缓存。

  • 测试 journey 时,系统默认会授予应用的所有权限。

  • 在搭载 Android 15(API 级别 35)的设备上测试 journey 时,您 可能会在设备上看到一条警告,指出“Unsafe App Blocked”(不安全的应用已屏蔽),并显示 “AndroidX Crawler”。您可以点击 Install anyway (仍要安装)以绕过此检查。或者,您可以 配置设备上的开发者选项,并停用 “通过 USB 验证应用”选项。