網站開發(fā)的目的 實習報告百度云搜索引擎入口盤搜搜
一、模塊主要成員
CarServiceHelperService?
SystemServer 中專門為 AAOS 設立的系統(tǒng)服務,用來管理車機的核心服務 CarService。該系統(tǒng)服務的具體實現(xiàn)在?CarServiceHelperServiceUpdatableImpl
CarService
Car模塊核心服務APP,Android 13版本開始分為兩個,一個是掌管 CarService 服務類的?builtin app,源碼在:packages/services/Car/service-builtin/,一個是擁有具體實現(xiàn)和大量 Service 的?updatable app,源碼在:packages/services/Car/service/;在系統(tǒng)中,它是在/system/priv-app/CarService/CarService.apk
Car-lib(Car API)
Android 車機里提供給系統(tǒng)使用汽車相關功能的專用接口,源碼在:packages/services/Car/car-lib/,它會編譯到 android.car.jar 中,其中包括常用的 Car、CarPowerManager、CarSettings 等。
Car APPs
AAOS 專為汽車設計的系統(tǒng)app,目錄在:packages/apps/Car/。例如面向 Car 的 SystemUI、Launcher、Settings等。
二、Car模塊內部交互機制
下面用一張圖以 CarInputService 和 CarpropertyService 演示說明:
?三、總結
Car 相關組件 | 所屬進程 | 作用 |
---|---|---|
CarServiceHelperService | SystemServer | 管理 Car Serivce 的系統(tǒng)服務 |
CarService | builtin app | Car 核心服務 |
updatable app | Car 核心服務的具體實現(xiàn) | |
Car-lib | android.car.jar | Car API SDK |
Car Apps | Launcher 等 | Car 專門設計的一系列 App |
- SystemServer 進程在系統(tǒng)啟動的時候發(fā)現(xiàn) OS 具備?Automotive?的 feature,則啟動 CarServiceHelperService 系統(tǒng)服務,并交由 CarServiceHelperServiceUpdatableImpl 實際負責和 CarService 的綁定
- CarService 的?builtin app?由父類 ServiceProxy 完成中轉,即反射出?updatable app?中 CarServiceImpl 實例
- CarServiceImpl 的初始化將構建 ICarImpl 實例并構建內部的一堆具體服務 CarServiceBase,比如負責輸入的 CarInputService 、負責車輛屬性的 CarPropertyService 等
- 這些具體服務通過 HalServiceBase 和 VehicleHal 進行交互,比如調度輸入事件的 InputHalService、讀寫/轉換車輛屬性的 PropertyHalService 等
- 后續(xù)的交給 VehicleHal 通過 HIDL 和 HAL 層交互
- 其他 Apps 可以通過?Car lib?提供的 Car?API 獲取 CarService 中的服務接口即 ICarImpl
- ICarImpl 通過啟動時候注冊的服務名稱和 CarServiceBase 實例對照表向 Apps 返回對應的接口實例,比如控制、監(jiān)聽輸入的 CarInputManager、讀寫車輛屬性的?CarPropertyManager
- 其他 Apps 拿到這些 Manager 接口之后,像 AOSP 中使用 ActivityManager 等接口一樣通過 AIDL 和 CarService 進行交互