作為手機(jī)行業(yè)的一貫對手 Google 亦在車機(jī)上早有布局,包括 Android Auto 和 Automotive。雖推出已有數(shù)年,但中國開發(fā)者還很陌生,今天讓我們來簡單了解一下。
Android Automotive OS, AAOS
Android Automotive OS 簡稱 AAOS,是擴(kuò)展自 Android OS 的操作系統(tǒng)、直接基于車載硬件運(yùn)行。和 Android 一樣是一個(gè)可定制程度非常高的全棧開源平臺。
在電動車大浪潮下,可為車企的信息娛樂體驗(yàn)提供強(qiáng)大的技術(shù)支持。同時(shí)為了兼容性考慮,AAOS 支持專為 Android 打造的應(yīng)用,以及專為 Android Auto 打造的應(yīng)用。
Android VS Android Auto VS AAOS
Auto 和 Automotive 的命名比較相似,貌似分不清楚,實(shí)則區(qū)別非常明顯。
首先,Android Auto 不是 OS。它是集成在 Android OS 里的 feature。當(dāng)通過 USB、Wi-Fi 將 Android Phone 連接到支持 Android Auto 的車機(jī)上后,Android OS 將自動加載支持 Auto 模式下的 App 并將圖像投屏到車機(jī)屏幕上。
跟 CarPlay 一樣,其本質(zhì)上是投屏。Phone 提供計(jì)算、渲染,車機(jī)只是 Display,Display 和按鍵回傳 Input 的事件,Phone 處理好之后將新的幀數(shù)據(jù)回傳進(jìn)行 Display。
而 Android Automotive 是 OS,其歸屬于 AOSP 項(xiàng)目,代碼也在 Android OS 之中。在編譯的時(shí)候選擇 automotive 的編譯 target 即可生成車載機(jī)使用的 AAOS。
它支持加載 Android Auto 的 App,即將 Android Phone 和 AAOS 車機(jī)仍舊能像 Android Auto 一樣使用。同時(shí)支持 Android OS 的 App,即使不適配車載機(jī)亦能運(yùn)行在 AAOS 上。這可能也是主流互聯(lián)網(wǎng) App 無意適配 AAOS 的部分原因,同時(shí)導(dǎo)致適配車機(jī) UI 的任務(wù)落到了車企身上。
Android Eco | What | Target | Compativity |
---|---|---|---|
Android | OS | Phone | Android App |
Android Auto | Platform | Phone when connected to Car supported Auto | Android App supported Auto |
AAOS | OS | Car | Android + Auto + AAOS App |
Develop Apps for Android Cars
模擬器
車機(jī)資源比較寶貴、稀少,很難像手機(jī)、平板設(shè)備一樣非常便捷地在真機(jī)上開發(fā)和測試,而模擬器則是比較好的選擇。Google 和車企都有相應(yīng)的 AAOS Image 可供創(chuàng)建模擬器。
Generic AOSP Image
官方說 9.0 公開了 AAOS Image,打開 AS 的 SDK Manager 頁面反復(fù)刷新和嘗試都沒有出現(xiàn)官方的 Image Item。偶然間還會出現(xiàn)如下的錯誤:
No System Images available. Are you connected to the internet?
即基于未知原因官方暫時(shí)下架了 AAOS 的 Image。
OEM Image
好在 Volvo 及旗下的 Polestar 作為最早開發(fā) Android Automotive 車機(jī)的車企,對外公開了 Image。雖不支持 ARM 架構(gòu),可以在 PC 上安裝體驗(yàn)。
在 SDK Manager 的 SDK Update Sites 頁面可以添加如下的 Url 來添加 Volvo 的站點(diǎn)。
https://developer.volvocars.com/sdk/volvo-sys-img.xml
添加好了之后,可以再次打開 SDK Manager 頁面,就可以在 SDK Platforms 頁面看到 Volvo 的 Image 了。
Check 之后會自動下載,像手機(jī) Image 一樣方便的創(chuàng)建 Automotive 車機(jī)模擬器。
啟動之后,可以看到整體界面:
除了 Drawer、Video、座椅、空調(diào)等 Icon 以外還有 Map、BT、Google Assistant 這幾個(gè)常用 App。
點(diǎn)擊 Assistant App 可以進(jìn)行語音操作:
點(diǎn)擊抽屜按鈕,可以看到除了 Map、BT、Google Assistant 還可以看到 Google Play、Car 使用說明這幾個(gè) App。
Car 使用說明 App 的截圖:
Polestar2 車型也對外公開了 Image,像上面一樣添加如下的 Url 即可創(chuàng)建其模擬器。
https://developer.polestar.com/sdk/polestar2-sys-img.xml
不愧是一家的,界面和 Volvo 差不多,Launcher 的布局由列表布局改成了四宮格。
其他也有車企采用了 AAOS,比如 Honda,只是沒有公開。
Develop Apps
接下來就可以開發(fā)針對 AAOS 的 App 了,官方提供了 Car 相關(guān)的 SDK 供我們開發(fā),即 Android for Cars App Library。為了兼容非 Car 的設(shè)備集成到了 AndroidX 中。
另外提供了針對導(dǎo)航等幾個(gè)場景提供了開發(fā) Sample:
https://github.com/android/car-samples
這些 Sample 的優(yōu)勢在于,其兼顧了 Phone 和 Automotive 兩種開發(fā)場景。將 App 共通的 Car 部分放置在 Common Module 里,各自的邏輯放在獨(dú)立的 Module 中。
好處是編譯 Phone Task 的話生成的 Apk 安裝在 Phone 上,當(dāng)其進(jìn)入 Android Auto 模式之后會自動加載 Common 里的 Car 邏輯。而編譯到 Automotive 的 Apk 可直接運(yùn)行在 AAOS 上,以執(zhí)行 Common 邏輯和特有的 Car 邏輯。
有點(diǎn)需要注意的是該 Sample 的 Gradle 和 AGP 版本需要升級到最新,才能編譯通過。
Phone 運(yùn)行到 Auto
可以利用 DHU 將手機(jī)轉(zhuǎn)為 Android Auto 模式,這樣的話就可以測試 App 的 Auto 模式下的表現(xiàn)。
Automotive 運(yùn)行在 AAOS
Automotive 的 Sample Apk 運(yùn)行到 Volvo 和 Polestar2 模擬器中都是如下結(jié)果,貌似無法正常使用。
經(jīng)過日志排查和文檔確認(rèn)發(fā)現(xiàn) Sample 依賴了 Car 中最新的特性,需要 AAOS 去下載和安裝最新版的 Google Automotvie App Host Apk。
可是遇到如下問題,無法安裝:
該 App 需要 11 及以上的 AAOS 系統(tǒng),而 Volvo 和 Polestar2 公開的最新的版本都是 10
該 App 在 APK Downloader 等網(wǎng)站上均無法直接下載
Volvo 的 AAOS Emulator 上 GooglePlay 無法連接網(wǎng)絡(luò)
adb shell am start -n com.android.vending/com.google.android.finsky.carmainactivity.MainActivity
參考文檔
Android Auto:https://www.android.com/auto/
支持 Android Auto 的設(shè)備:https://www.android.com/ auto / compatibility/#compatibility-vehicles
Android Automotive:https://source.android.google.cn/devices/automotive?hl=zh-cn
測試 Android 車載應(yīng)用:https://developer.android.google.cn/ training / cars / testing?hl=zh-cn
test-automotive-os:https://developer.android.google.cn/training/cars/testing#test-automotive-os
Car Library:https://developer.android.google.cn/reference/androidx/car/app/package-summary
本文來自微信公眾號:TechMerger (ID:ELC-XTLS-QSW),作者:小蝦米君
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。