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,请执行以下操作:
选择最符合您需求的版本:
- 稳定版:最新的正式版,建议大多数用户使用
- Canary 版:包含最新功能的抢先体验版,但稳定性可能较差
按照下载页面上提供的安装说明操作。
设置 AAOS SDV 项目
如需设置 AAOS SDV 项目,请执行以下操作:
验证您是否有权访问 AAOS SDV 源代码库,以及是否已初始化并同步本地签出。如需详细了解如何访问源代码和初始化代码库,请参阅下载、构建和运行。
启动 Android Studio for Platform。
如果您是初次使用,请按照设置向导自定义开发环境。
创建一个新项目:
- 如果您未打开任何项目,请在欢迎屏幕上点击新建。
- 如果您已打开项目,请点击 Open 或从菜单中依次选择 ASfP > Project > Import ASfP Project。
在向导中填写项目配置详细信息:
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 设备
如需创建新设备,请执行以下操作:
依次选择 Tools > Device Manager 或点击右侧面板中的 Running Devices 图标(如果设备管理器已固定在该面板中),打开“Device Manager”工具窗口。
点击 + 图标,然后选择 Create Cuttlefish Device。
配置新的 Cuttlefish 设备。您可以通过以下两种方式创建 Cuttlefish 设备:
从本地 Android 源代码树检出:
- 选择与启动配置对应的已构建目标的路径(如需了解详情,请参阅选择目标)。
- 选择宿主路径。
- 您可以选择可用的设备配置,也可以选择无以使用默认配置。
从规范配置(使用此选项可根据单个配置创建多个设备):
- 选择设备配置的路径。
- 可以选择提供任何替换标志来替换配置选项。
等待 Cuttlefish 设备创建完成并添加到设备管理器中正在运行的设备列表中。
从 Running Devices 菜单中选择 Cuttlefish 设备。
您可以在设备管理器中点击设备旁边的停止或启动图标,以启动或停止单个 Cuttlefish 设备。
访问 Cuttlefish 设备页面
Cuttlefish 插件有一个工具窗口,用于显示 Cuttlefish 设备页面,您可以在该页面上访问屏幕镜像功能。
如需打开 Cuttlefish 工具窗口,请点击左侧面板中的 … 图标,然后选择 Cuttlefish。或者,您也可以在帮助 > 查找操作菜单项中搜索 Cuttlefish。
VSIDL 中的语言服务器协议
在 VSIDL 中,LSP 提供了一组丰富的 IDE 功能,可帮助您在 ASfP 中处理 VSIDL 文件(扩展名为 .vsidl)时改进开发工作流程。
语义语法突出显示
LSP 服务器为 VSIDL 文件提供语法突出显示功能。
作用:突出显示关键字(
service_bundle、publisher)、字段(package:、message:)和字面值。尝试方法:打开任意 VSIDL 文件。该文件采用颜色编码,以区分结构性关键字与用户定义的标识符。
实时诊断(错误和警告)
LSP 服务器会持续验证文件并实时报告问题。
作用:检测整个目录及其依赖项中的语法错误、无效类型引用和其他错误。
如何尝试:在消息名称(例如
TiiirePressure)中引入拼写错误。拼写错误下方会显示红色波浪线。将鼠标悬停在相应字词上即可查看错误消息,或者在 IDE 底部的 Problems 工具窗口中查看完整列表。
导航和智能功能
您可以使用导航和智能功能来探索 VSIDL 目录中不同部分之间的关系。
自动补全:按 Ctrl+空格键可查看关键字、protobuf 消息、RPC 服务、主题和频道的建议。关键字建议直接在自动补全菜单中包含简短实用的用途说明。LSP 还为
publisher或server等代码块提供智能代码段,以加快您的工作流程。前往定义:按住 Control 并点击(或按 Control+B)消息、服务、主题或渠道引用,即可直接跳转到其源定义,即使该定义位于不同的 VSIDL 或 protobuf 文件中也是如此。
查找引用:将光标放在
publisher、subscriber、server或client关键字上,然后按 Alt+Shift+F7 查找所有出现位置。悬停信息:将光标移至某个类型或属性(或按 Control+Q)。系统会显示一个提示,其中包含该函数的文档注释(如果有)。
结构化功能
LSP 服务器可帮助您管理和浏览大型 VSIDL 文件的结构:
文档符号(大纲):按 Ctrl+F12 可显示快速导航工具提示,或打开结构工具窗口 (Ctrl+Alt+7),以查看文件中所有软件包和单元的树状视图。
折叠范围:点击装订线(行号旁边)中的 > 或 V 图标,可折叠或展开大型逻辑块,例如
service_bundle或映射定义。文档格式设置:按 Ctrl+Alt+L 自动重新设置文件格式,从而创建一致的缩进和间距。