车辆软件功能特性构建与管理指南
立即解锁
发布时间: 2025-08-19 01:22:52 阅读量: 2 订阅数: 8 


OSGi与Equinox:构建高度模块化的Java系统
### 车辆软件功能特性构建与管理指南
#### 1. 后端特性创建
在创建后端特性时,为了简化操作并区分后端特性与相关捆绑包,建议使用相同的特性 ID 和项目名称,例如 `org.equinoxosgi.toast.backend.feature`。具体操作步骤如下:
- 点击“Next”,会出现“Referenced Plug - ins and Fragments”页面。在此页面,你可以选择手动添加捆绑包到正在创建的特性中,也可以使用“Initialize from a launch configuration”选项。由于之前我们启动过后端,工作区中应该有 `backend.product` 启动配置,可将其作为新特性的基础。
- 后端特性项目创建完成后会在特性编辑器中打开,此时你能看到在向导中输入的值。回到后端产品编辑器,会发现新创建的 `org.equinoxosgi.toast.backend.feature` 已列在“Dependencies”页面的“Features”部分。
#### 2. 客户端特性重构
客户端的重构相对更具挑战性,因为 Toast 客户端是一个平台,是车辆系统的外壳,上面安装了一系列车辆功能。下面将对客户端进行分解:
##### 2.1 外壳特性
- 按照创建后端特性的相同流程,创建名为 `org.equinoxosgi.toast.client.shell.feature` 的外壳特性,此次使用 `client.product` 启动配置作为新特性的基础。完成这些步骤后,新特性将包含所有客户端捆绑包,但数量过多,不过删减多余捆绑包比添加新的更容易。
- 筛选特性中的捆绑包,仅保留以 `org.eclipse` 开头或在以下列表中的捆绑包:
- `org.equinoxosgi.core.autostart`
- `org.equinoxosgi.crust.artwork.toast`
- `org.equinoxosgi.crust.display`
- `org.equinoxosgi.crust.shell`
- `org.equinoxosgi.crust.widgets`
- `org.equinoxosgi.toast.core`
- `org.equinoxosgi.toast.core.channel.sender`
- `org.equinoxosgi.toast.devsim`
保存特性后,客户端产品会更新以指向新特性。再次启动产品,由于移除了所有车辆功能,你将只看到一个空的 Crust 外壳。
##### 2.2 音频支持特性
创建音频支持特性的步骤如下:
- 在 `client.product` 编辑器的“Dependencies”页面,点击右上角的“new feature”按钮打开“New Feature”向导。将项目名称和特性 ID 设置为 `org.equinoxosgi.toast.client.audio.feature`,填写有用的特性名称和描述后点击“Next”。
- 在向导的下一页的捆绑包列表中,选择以下所有捆绑包:
- `org.equinoxosgi.toast.dev.amplifier`
- `org.equinoxosgi.toast.dev.amplifier.fake`
- `org.equinoxosgi.toast.dev.cdplayer`
- `org.equinoxosgi.toast.dev.cdplayer.fake`
- `org.equinoxosgi.toast.dev.radio`
- `org.equinoxosgi.toast.dev.radio.fake`
- `org.equinoxosgi.toast.swt.audio`
- 点击“Finish”完成向导,创建音频特性。由于从产品编辑器启动向导,新特性会自动添加到产品的特性列表中。
##### 2.3 气候控制特性
创建气候控制特性的步骤与音频特性类似,但特性 ID 使用 `org.equinoxosgi.toast.client.climate.feature`,并在特性中包含以下捆绑包:
- `org.equinoxosgi.toast.dev.climate`
- `org.equinoxosgi.toast.dev.climate.fake`
- `org.equinoxosgi.toast.swt.climate`
##### 2.4 GPS 特性
创建 GPS 特性,特性 ID 为 `org.equinoxosgi.toast.client.gps.feature`,并包含以下捆绑包:
- `org.equinoxosgi.toast.dev.gps`
- `org.equinoxosgi.toast.dev.gps.sim`
##### 2.5 地图特性
地图特性与其他特性有所不同,因为地图功能依赖于 GPS 功能。创建步骤如下:
- 按照之前的方式创建特性,特性 ID 为 `org.equinoxosgi.toast.client.nav.mapping.feature`,并包含以下捆绑包:
- `org.equinoxosgi.toast.dev.google`
- `org.equinoxosgi.toast.swt.nav.mapping.google`
- 额外步骤:在特性编辑器的“Dependencies”页面,使用“Required Features/Plug - ins”部分的“Add Feature...”按钮添加之前创建的 GPS 特性 `org.equinoxosgi.toast.client.gps.feature`,这表明地图特性只有在 GPS 特性安装后才能正常工作。
##### 2.6 导航系统特性
导航系统特性依赖于地图特性,创建步骤如下:
- 以相同方式创建特性,特性 ID 为 `org.equinoxosgi.toast.client.nav.guidance.feature`,并包含以下捆绑包:
- `org.equinoxosgi.toast.client.nav.guidance`
- `org.equinoxosgi.toast.swt.nav.guidance.google`
- 添加前提特性:在新特性的“Dependencies”页面添加 `org.equinoxosgi.toast.client.nav.mapping.feature`。由于依赖关系是传递的,导航系统特性需要地图特性,而地图特性需要 GPS 特性,所以导航系统特性也需要 GPS 特性。
##### 2.7 应急管理特性
创建应急管理特性,特性 ID 为 `org.equinoxosgi.toast.client.emergency.feature`,并包含以下捆绑包:
- `org.equinoxosgi.toast.client.emergency`
- `org.equinoxosgi.toast.core.emergency`
- `org.equinoxosgi.toast.dev.airbag`
- `org.equinoxosgi.toast.dev.airbag.sim`
- `org.equinoxosgi.toast.swt.emergency`
- 在“Dependencies”页面添加 `org.equinoxosgi.toast.cli
0
0
复制全文
相关推荐









