自 2026 年起,为了与我们的主干稳定开发模型保持一致,并确保生态系统的平台稳定性,我们将在第 2 季度和第 4 季度将源代码发布到 AOSP。对于构建 AOSP 和向 AOSP 贡献代码,我们建议使用 android-latest-release 而不是 aosp-main。android-latest-release 清单分支将始终引用推送到 AOSP 的最新版本。如需了解详情,请参阅 AOSP 变更。
Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
VSIDL 和中间件概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
车辆服务接口定义语言 (VSIDL) 是一种基于协议缓冲区的特定于领域的语言。 VSIDL 旨在定义软件定义车辆 (SDV)
中服务软件包之间的接口和交互。如需了解服务软件包,请参阅
服务单元和服务软件包。
VSIDL 提供与 SDV 生态系统中的较低级别服务进行交互的接口。您可以使用 VSIDL 指定使用 RPC(包括一元、客户端流式传输和服务器流式传输)或数据隧道进行通信的服务单元。
VSIDLC 生成的代码负责向 SDV 服务发现注册服务单元。
借助其他配置文件,VSIDLC 为服务软件包生成的代码可以打包为 APEX,这些 APEX 可以由 Orchestrator 和 SDV 生命周期管理器控制。
实现 SDV 服务
以下是在 SDV 中定义服务软件包之间的接口和交互,并创建 APEX 软件包以进行部署的高级步骤:
- 在 protobuf 文件(扩展名为
.proto 的文件)中定义数据结构。使用 protobuf 定义由 VSIDL 定义的服务单元之间交换的数据结构。
- 在 VSIDL 文件(扩展名为
.vsidl 的文件)中定义服务架构。VSIDL 用于定义服务软件包和服务单元。
VSIDL 引用由 protobuf 声明的类型(第 1 步)。
- 生成中间件。中间件为服务提供了一种标准化的方式来相互通信和交互。
- 在 Rust 中实现自定义业务逻辑。
- 将服务软件包(包括生成的和自定义的业务逻辑代码)打包到 APEX 软件包中以进行部署。
- 配置目录以实现自动更新和 IDE 支持。
VSIDLC 的类型系统在两个级别运行:Protobuf 和 VSIDL。Protobuf 用于定义由 VSIDL
定义的服务单元之间交换的数据结构。本部分介绍了如何在 VSIDL 和 protobuf 中定义数据结构。
后续步骤
接下来,您可以阅读以下文档:
- 如需了解如何在 protobuf 中定义数据结构,请前往定义数据
结构。
- 如需了解 VSIDL 语言的主要元素,请参阅 语言
规范。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-06-18。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2026-06-18。"],[],[]]