适用于 Android Studio 的 Google Home 插件

Google Home Plugin for Android Studio 是为 Google Home 平台开发者设计和创建的。借助此插件,您可以访问 Google Assistant Simulator、Cloud Logging 和其他工具,从而简化您的 智能家居开发流程。

适用于 Android Studio 的 Google Home 插件

安全通知

如需阻止 Android Studio 存储密钥和 密码,请完成以下步骤:

  1. 依次点击 FileSettings...
  2. Appearance & Behavior 中,展开 System Settings ,然后点击 Passwords
  3. 选择 Do not save, forget passwords after restart.
适用于 Android Studio 的 Google Home 插件

功能

助理模拟器

如需测试智能家居设备是否能与 Google Home 生态系统正常搭配使用,您可以随时与 Assistant Simulator 互动,而无需 离开 Android Studio

借助 Assistant Simulator,您 可以通过输入查询(例如 “打开灯”)轻松控制设备。Android Studio 中, Assistant Simulator 会根据您的 命令以文本消息的形式做出响应,例如 “好的,正在打开灯。”

使用 Google 助理模拟器进行测试

查看 Cloud Logging

Google Cloud Logging 提供调试信息和关键指标,让您深入了解 Action 的使用情况。为了简化开发,Google Home Plugin 会 显示实时 Cloud Logging 消息,以便在 问题排查期间在代码旁边查看。

您可以显示实时日志,也可以选择日期范围。

Cloud Logging 视图

批量话语

Assistant Simulator 对单个话语的响应不是 确定的。例如,响应可以是以下任何短语:

  • 好的,正在打开 2 个灯。
  • 好的,正在打开 2 个灯。
  • 好的,正在打开 2 个灯。
  • 好的,正在打开 2 个灯。

如需运行自动化测试并验证 Google 集成如何处理 这些不同的响应,您可以通过运行批量话语向 Assistant Simulator发送话语脚本。保存脚本后,您可以收集响应并针对查询运行多项测试。

Home Graph 查看器

Home Graph 查看器允许您 在浏览器中显示设备的状态并启动 Google Home 测试套件

Android 调试桥 (adb) 日志查看器

adb 日志查看器是一种用于查看和分析日志文件的工具,例如 Matter设备日志文件、Google Home 日志和 Android 日志。

安装

如需在 Google Home Plugin 中安装 Android Studio, 请按以下步骤操作:

  1. 下载或更新 Android Studio. 下载 Android Studio
  2. 依次前往 File > Settings (在 MacOS 上,依次前往 Android Studio > Preferences )。
  3. Plugins 部分中,前往 Marketplace 并搜索 google home
  4. 安装该工具,然后重启 Android Studio

您也可以直接从 JetBrains Marketplace下载该插件。

设置

安装插件后,您需要完成以下步骤,然后才能使用 Assistant Simulator 并 查看 Cloud Logging:

使用 Google 账号登录

您可以从 Google Home 家居控制面板登录开发者账号,授权 Android Studio 代表您与 Google 服务通信。

  1. 点击 Google Home 标签页,该标签页位于窗口左侧垂直标签页列中 Android Studio

  2. 对于 Sign in with,点击 Google 以启动浏览器。

    Android Studio Google 登录
  3. 选择与智能家居设备关联的账号。

  4. 使用 Google 账号登录 授权页面上,点击 Allow

  5. 关闭浏览器窗口,然后返回到 Android Studio

现在您应该已登录,并且可以选择 Sign Out

选择云项目

登录后,从下拉列表中选择一个 Project 。如需过滤项目列表,请输入 Filter 表达式,例如 matter,然后按 Enter

Project 下拉列表会根据您的 Filter 加载前 100 个项目。退出时,系统会保留您的选择 Android Studio

选择项目

如需获得有关项目过滤器的帮助,请参阅 Google Cloud 参考文档 中的查询参数。

使用助理模拟器

如需在 Android Studio 中打开 Assistant Simulator,请从 Google Home Plugin 面板中 点击 Utterances Panel

打开话语面板

您可以通过多种方式向 Assistant Simulator 发送查询。接下来,我们将介绍每个选项。

输入查询并收集响应

如需与 Assistant Simulator 互动,请输入查询,然后按 Enter 键。

您可以点击查询末尾的 重新发送图标,重新发送查询。

提交一个或多个查询后,点击 Replay 以重新运行您的 查询并检查响应。Utterances 面板会在存储的缓存中跟踪您的查询和响应。Replay 只会将新响应添加到此内部缓存,而不会在您每次点击该按钮时重复查询。

使用 Google 助理模拟器重放话语

点击 Save 以保存您在 Utterances 面板中输入的查询和 响应。您的互动会转换为以下格式的 JSON:

  • ask:您的查询。
  • answers:可能响应的数组。Assistant Simulator

您可以在 Android Studio 中修改此 JSON 文件。

{
  "collected": false,
  "lines": [
    {
      "ask": "turn lights on",
      "answers": [
        "OK, turning 2 lights on.",
        "Sure, turning on 2 lights."
      ]
    }
  ]
}

收集批量响应

Google Home Plugin 面板中,点击 Utterances File 以在新标签页中打开 已保存的 JSON 文件。对于 Select Path,您可以选择 文件或文件夹。如果您选择文件夹,CollectTest 将对该文件夹中的所有话语 .json 文件生效。

您可以为同一文件或不同文件打开多个标签页,例如 lightslights(1)plug

状态栏 会显示上次测试的结果(如果适用)、一个黄色或绿色圆点(用于指示文件是否已收集)以及话语 .json 文件路径。点击 Collect后, Assistant Simulator会运行您的查询。 收集到新响应后,您会收到通知,并且在处理查询时,Status Bar 会显示一个计数器。

使用 Google 助理模拟器收集语音指令

Collect 完成后,状态栏 会更新,并在 .json 路径前面显示一个绿色对勾,并且话语文件中会填充可能的响应。

使用 Google 助理模拟器收集语音指令
{
  "collected": true,
  "lines": [
    {
      "ask": "turn lights on",
      "answers": [
        "OK, turning 2 lights on.",
        "Sure, turning on 2 lights.",
        "Sure, turning 2 lights on.",
        "Got it, turning 2 lights on.",
        "Alright, turning on 2 lights.",
        "OK, turning on 2 lights.",
        "Got it, turning on 2 lights.",
        "Alright, turning 2 lights on."
      ]
    }
  ]
}

如果您提前 Stop 收集,系统不会将 .json 路径标记为已收集。

测试批量话语

收集响应后,点击 Test 以重播查询 并检查响应和日志。测试批量话语时, Assistant Simulator会预期保存到 JSON 文件中的响应。如果测试返回尚未收集的响应,您会收到类似于以下响应的通知:

Expected one of: "Got it, turning on 2 lights."

使用 Google 助理模拟器运行话语

此场景表示测试失败。否则, Assistant Simulator将运行每个查询并返回响应。 如果测试成功, Status Bar 中会显示一个 对勾 check。

使用 Google 助理模拟器运行话语

查看 Cloud Logging

如需在 Cloud Logs 工具窗口中打开项目标签页,请从 Google Home Plugin 面板中点击 Cloud Logs 。您可以为每个项目打开单独的 Cloud Log 标签页。

Cloud Logging 标签页

查询字词

对于所选项目,您还可以使用 Query 字段过滤日志。 例如,如需过滤关键字为 light 的日志,请执行以下操作:

Cloud Logging 查询

选择 Use QL 以使用 Logging 查询语言

Cloud Logging 查询语言

以下是一些 QL 查询示例,可帮助您快速入门:

severity = (DEBUG OR INFO OR NOTICE OR WARNING OR ERROR OR CRITICAL OR ALERT OR EMERGENCY) AND resource.type="assistant_action_project" AND timestamp > "2022-04-07T00:40:18Z"
jsonPayload.executionLog.executionResults.actionResults.action.trait = "TRAIT_ON_OFF"
jsonPayload.executionLog.executionResults.actionResults.action.actionType = "ONOFF_ON"

日期和时间查询

您还可以选择按日期查询日志,只需点击 AfterBefore 即可启用此功能。您可以在提供的文本 字段中输入日期和时间格式,例如 5/11/22, 12:37 PM,也可以使用日期选择器 选择日期,然后在文本字段中输入时间。

  • 如需选择 5/1/22 之后的日期,请选择 After ,然后点击日期图标
  • 如需选择 5/1/22 之前的日期,请选择 Before ,然后点击日期 图标
  • 如需选择 5/1/226/30/22 之间的日期,请选择 BeforeAfter ,然后从日期图标 中选择日期。

选择 Real time 以提取实时项目日志。点击 Stop 以结束实时 Feed。

严重级别

您还可以从下拉列表中选择 Minimal Severity

查询结果

点击 Fetch 以提交 查询参数。

加载日志后,点击任意记录 以展开完整的 JSON 载荷。再次点击 以显示完整消息。

您也可以选择在 Filter 框中输入关键字,以缩小日志结果范围。点击 x 可移除过滤器并返回到原始提取结果。

查看 Cloud Logging

查看 Home Graph 并运行测试

如需列出设备,请从 Google Home Plugin面板中选择 Home Graph

点击 Refresh 以显示与所选项目关联的设备的 Device nameDevice idDevice type。您可以为不同的项目打开多个 Google Home Graph 面板。

加载设备后,点击任意记录 以展开完整的 JSON 载荷。

Home Graph JSON 载荷

您还可以使用 ExpandCollapse 来显示和隐藏设备的 JSON 载荷。

Home Graph 展开和收起 JSON

如需为特定设备启动测试套件, 请点击 Test。这会在浏览器中启动测试套件,并选择您的设备以供测试。点击 Start ,然后等待测试结果。

Home Graph 运行测试

测试完成后,您可以查看测试详情并查看日志。

Home Graph 已完成的测试

Android 调试桥 (adb) 日志查看器

如需在 Adb Log 工具窗口中打开项目标签页,请点击 Google Home 插件工具栏(位于左侧)中的 Adb Log 命令。您可以为每个日志文件打开单独的 Adb Log 标签页。如需删除标签页,请点击 图标。

使用 Select 字段选择要查看的特定日志记录组件,并使用 Severity 下拉列表仅显示具有匹配日志严重性的条目。

对于所选 adb 日志,您可以使用 Filter 字段过滤日志条目,并可选择使用 Case-sensitiveRegex 修饰符。

此外,您还可以:

  • 使用 Find 字段以及 Find Next 图标)和 Find Previous 图标)命令查找特定条目。
  • 使用可选的 Case-sensitiveRegex 修饰符。
  • Jump to line 可跳转到日志中的指定行(按行号)。

选择 Numbered 以查看添加了行号的日志行。选择 Raw 以查看原始日志条目。

Adb 日志查看器

资源和反馈

点击 Resources 可查看开发者工具和资源列表。

如需提交您对如何改进 Google Home Plugin 开发 体验的想法或反馈,请点击 Feedback

发送反馈