设置用于 SDV 开发的 IDE

Android Studio for Platform (ASfP) 是推荐的集成开发环境 (IDE),用于开发 Android 平台,包括 Android Automotive 操作系统 (AAOS) 软件定义型车辆 (SDV) 项目。ASfP 提供了一套丰富的工具,用于代码编辑、构建、调试和测试,包括:

  • AI 赋能的辅助功能 (Gemini)
  • 支持 Rust、C 或 C++、Java 语言
  • 适用于 AAOS SDV 开发的实用集成(例如,Cuttlefish 模拟器支持和 VSIDL 语言支持)

为平台安装 Android Studio

如需安装 ASfP,请执行以下操作:

  1. 下载 Android Studio for Platform

  2. 选择最符合您需求的版本:

    • 稳定版:最新的正式版,建议大多数用户使用
    • Canary 版:包含最新功能的抢先体验版,但稳定性可能较差
  3. 按照下载页面上提供的安装说明操作。

设置 AAOS SDV 项目

如需设置 AAOS SDV 项目,请执行以下操作:

  1. 验证您是否有权访问 AAOS SDV 源代码库,以及是否已初始化并同步本地签出。如需详细了解如何访问源代码和初始化代码库,请参阅下载、构建和运行

  2. 启动 Android Studio for Platform。

  3. 如果您是初次使用,请按照设置向导自定义开发环境。

  4. 创建一个新项目:

    • 如果您未打开任何项目,请在欢迎屏幕上点击新建
    • 如果您已打开项目,请点击 Open 或从菜单中依次选择 ASfP > Project > Import ASfP Project
  5. 在向导中填写项目配置详细信息:

    • Repo 检出:指定本地 AAOS SDV 源代码检出的根目录的绝对路径(例如 /path/to/sdv_source)。

    • lunch 目标:输入 Cuttlefish 上 AAOS SDV 开发的相应 lunch 目标,例如 sdv_core_cf-aosp_current-userdebug。如需了解更多可用的目标,请参阅选择目标

    • 项目来源:列出要纳入项目中的初始目录或模块,或点击文件夹图标打开文件系统浏览器以选择目录。选择过多的目录或模块会影响 IDE 的索引编制和搜索性能,因此请仅包含相关目录或模块。

    • 语言支持:选择 Rust 和 C++ 作为支持的语言。

    • 项目名称:为项目提供一个描述性名称。

    • 完成设置:点击完成。ASfP 会创建项目结构和 .asfp-project 配置文件。

ASfP 会自动启动初始同步流程。ASfP 会分析您的源代码,使用 Soong 构建系统解析依赖项,并构建代码智能功能所需的信息。这可能需要相当长的时间,尤其是首次同步。

自定义项目

项目根目录中的 .asfp-project 文件可用于进一步自定义。 您可以修改此文件以执行以下操作:

  • 添加或移除目录和模块。
  • 启用对其他语言(例如 C++ 或 Rust)的支持(Java 和 Kotlin 是默认语言)。
  • 配置 build 标志。

如需更改配置文件,请依次选择 ASfP > Project > Open Config。如需了解可用的配置选项,请参阅项目概览

调试和测试

如需在 ASfP 中调试和测试代码,请参阅调试平台代码使用 atest 测试平台代码

可用的集成

ASfP 为 AAOS SDV 开发提供了一些实用的集成,包括在 VSIDL 中支持 Cuttlefish 和语言服务器协议 (LSP)。

Cuttlefish 插件

借助 Cuttlefish 插件,用户可以直接从 ASfP 创建和运行本地 Cuttlefish 设备。

安装插件

Cuttlefish 插件已预安装在 ASfP 中,无需进行任何设置。该插件要求在设备上安装 Cuttlefish 工具。如果需要,请按照说明安装 Cuttlefish 工具。

创建 Cuttlefish 设备

如需创建新设备,请执行以下操作:

  1. 依次选择 Tools > Device Manager 或点击右侧面板中的 Running Devices 图标(如果设备管理器已固定在该面板中),打开“Device Manager”工具窗口。

  2. 点击 + 图标,然后选择 Create Cuttlefish Device

  3. 配置新的 Cuttlefish 设备。您可以通过以下两种方式创建 Cuttlefish 设备:

    • 从本地 Android 源代码树检出:

      • 选择与启动配置对应的已构建目标的路径(如需了解详情,请参阅选择目标)。
      • 选择宿主路径。
      • 您可以选择可用的设备配置,也可以选择以使用默认配置。
    • 从规范配置(使用此选项可根据单个配置创建多个设备):

      • 选择设备配置的路径。
      • 可以选择提供任何替换标志来替换配置选项。
  4. 等待 Cuttlefish 设备创建完成并添加到设备管理器中正在运行的设备列表中。

  5. Running Devices 菜单中选择 Cuttlefish 设备。

您可以在设备管理器中点击设备旁边的停止或启动图标,以启动或停止单个 Cuttlefish 设备。

访问 Cuttlefish 设备页面

Cuttlefish 插件有一个工具窗口,用于显示 Cuttlefish 设备页面,您可以在该页面上访问屏幕镜像功能。

如需打开 Cuttlefish 工具窗口,请点击左侧面板中的 图标,然后选择 Cuttlefish。或者,您也可以在帮助 > 查找操作菜单项中搜索 Cuttlefish

VSIDL 中的语言服务器协议

在 VSIDL 中,LSP 提供了一组丰富的 IDE 功能,可帮助您在 ASfP 中处理 VSIDL 文件(扩展名为 .vsidl)时改进开发工作流程。

语义语法突出显示

LSP 服务器为 VSIDL 文件提供语法突出显示功能。

  • 作用:突出显示关键字(service_bundlepublisher)、字段(package:message:)和字面值。

  • 尝试方法:打开任意 VSIDL 文件。该文件采用颜色编码,以区分结构性关键字与用户定义的标识符。

实时诊断(错误和警告)

LSP 服务器会持续验证文件并实时报告问题。

  • 作用:检测整个目录及其依赖项中的语法错误、无效类型引用和其他错误。

  • 如何尝试:在消息名称(例如 TiiirePressure)中引入拼写错误。拼写错误下方会显示红色波浪线。将鼠标悬停在相应字词上即可查看错误消息,或者在 IDE 底部的 Problems 工具窗口中查看完整列表。

您可以使用导航和智能功能来探索 VSIDL 目录中不同部分之间的关系。

  • 自动补全:按 Ctrl+空格键可查看关键字、protobuf 消息、RPC 服务、主题和频道的建议。关键字建议直接在自动补全菜单中包含简短实用的用途说明。LSP 还为 publisherserver 等代码块提供智能代码段,以加快您的工作流程。

  • 前往定义:按住 Control 并点击(或按 Control+B)消息、服务、主题或渠道引用,即可直接跳转到其源定义,即使该定义位于不同的 VSIDL 或 protobuf 文件中也是如此。

  • 查找引用:将光标放在 publishersubscriberserverclient 关键字上,然后按 Alt+Shift+F7 查找所有出现位置。

  • 悬停信息:将光标移至某个类型或属性(或按 Control+Q)。系统会显示一个提示,其中包含该函数的文档注释(如果有)。

结构化功能

LSP 服务器可帮助您管理和浏览大型 VSIDL 文件的结构:

  • 文档符号(大纲):按 Ctrl+F12 可显示快速导航工具提示,或打开结构工具窗口 (Ctrl+Alt+7),以查看文件中所有软件包和单元的树状视图。

  • 折叠范围:点击装订线(行号旁边)中的 >V 图标,可折叠或展开大型逻辑块,例如 service_bundle 或映射定义。

  • 文档格式设置:按 Ctrl+Alt+L 自动重新设置文件格式,从而创建一致的缩进和间距。