Android Automotive

語言: CN / TW / HK

theme: smartblue

Android Automotive

版本變更

| 版本 | 日期 | 修改人 | 描述 | ------------ | ------------ | ------------- | ------------ V1.0 | 2022.06.18 | 越過山風 | Android Automotive

目錄

Android Automotive概述

Android Automotive是直接在車載硬體上執行的Android平臺,預安裝了車機音影片娛樂的應用,以及其他一些第二方以及第三方的Android應用

Android Automotive是由Google在2017年推出的Android平臺的車載資訊娛樂系統(In-Vehicle Infotainment 簡稱IVI),2019年宣佈對第三方開發者開放開發許可權。

Android Automotive汽車子系統之間相互連線,可以通過匯流排拓撲實現了車載音影片娛樂系統的互聯互通。

常見匯流排拓撲如下:

  • CAN(Controller Area Network) 匯流排:控制器區域網絡,ISO國際標準化的序列通訊協議。由德國博世公司開發,最終成為國際標準(ISO 11898)。在北美和西歐,CAN匯流排協議已經成為汽車計算機控制系統的標準匯流排。

  • LIN(Local Interconnect Network) 匯流排:局域網際網路絡,針對汽車分散式電子系統而定義的一種低成本的序列通訊網路,是對CAN等其它汽車多路網路的一種補充,適用於對網路的頻寬、效能或容錯功能沒有過高要求的應用,基於SCI(UART)資料格式,採用單主控制器/多從裝置的模式,是UART中的一種特殊情況。

image.png

除此之外,還有面向媒體的系統傳輸 (MOST) 匯流排以及汽車級乙太網和 TCP/IP 網路(如 BroadR-Reach)

同時,Android Automotive通過硬體抽象層(VEHICLE HAL)為Android汽車開發提供了一致的硬體抽象層介面,從而無需過多的考慮物理傳輸層。

正因如此,系統整合供應商可以將平臺特定功能的HAL介面與特定技術的網路介面(如CAN,UART)等介面進行連線,以實現HAL模組功能。

例如,可以通過運行了RTOS實時作業系統的微控制單元MCU,用於進行CAN匯流排訪問或類似操作,然後再通過序列鏈路連線到運行了Android Automotive的CPU。

通過統一的硬體抽象層,每個合作伙伴都可以選擇適合自己的硬體架構。

Android Automotive與Android

Android Automotive與整個Android之間有如下的關係

  • Android Automotive是基於Android平臺。Android Automotive不是Android的分支或者並行開發的分支。與手機和平板電腦等Android裝置使用相同的程式碼庫,可以利用現有的安全模型,開發者工具和基礎架構,並保持了高度的可定製性,可移植行,完全免費提供並且開源。

  • Android Automotive擴充套件了Android平臺,意在打造一個支援車載娛樂的資訊系統,其增加了對汽車的特性,要求及技術的支援,是一個全棧式的車載資訊娛樂開放平臺。

Android Automotive與Android Auto

  • Android Auto是在使用者手機上執行的一個互聯投屏子系統,將支援Android Auto的一些手機應用(例如Spotify)及車載資訊娛樂功能(如訊息,通話,媒體,導航)通過USB連線或者無線連線投射到車載資訊娛樂系統進行互動,這裡的車載資訊娛樂系統可以是基於Android平臺的,也可以是基於Linux平臺的,從而複用了手機上的部分功能。Android Auto 支援為汽車投屏開發設計手機端的應用程式。

image.png

  • Android Automotive是一個基於車載硬體直接執行的,開源的,高可定製的作業系統和平臺,為資訊娛樂提供強大的技術支援。Android Automotive 支援通過Android開發車機端的應用程式。

android_automotive.png

Android Automotive架構

vehicle_hal_arch.png

Android Automotive架構如上圖,簡單說明如下

  • CAR API:Android Automotive 汽車Framework層面向汽車APP開發特有的介面,該API類似於Android原生的Framework API,以android.car.jar提供給APP使用,對應的程式碼詳見:/platform/packages/services/Car/car-lib

  • CAR SERVICE:Android Automotive 汽車系統核心服務,實現了系統中與車相關的服務,對應的程式碼詳見 /platform/packages/services/Car/

  • VEHICLE HAL: 車載HAL,定義了OEM可以實現的車輛屬性的介面,定義詳見hardware/libhardware/include/hardware/vehicle.h, 其實現詳見 hardware/libhardware/modules/vehicle/

「其他文章」