讓汽車運(yùn)行基于HTML5的應(yīng)用
汽車系統(tǒng)與外部世界的交互越來越多,比如與智能手機(jī)和云端的交互,因此迫切需要理解應(yīng)用是如何開發(fā)的、它們的可持續(xù)性以及用HTML5開發(fā)應(yīng)用與用傳統(tǒng)開發(fā)方法開發(fā)應(yīng)用之間的區(qū)別。管理HTML5與汽車信息娛樂系統(tǒng)之間的交互要求采用技術(shù)上先進(jìn)的方法才能獲得最佳結(jié)果,特別是最新HTML5集成面臨著很大的復(fù)雜性和支持挑戰(zhàn)。
將HTML5集成進(jìn)汽車系統(tǒng)所面臨的挑戰(zhàn)
第三方開發(fā)人員操控汽車空間時(shí)面臨著很多困難。可以肯定地說,汽車系統(tǒng)的安全保障是創(chuàng)建車載應(yīng)用時(shí)考慮的最重要因素,因?yàn)槿魏晤愋偷男阅芡讌f(xié)都會(huì)增加用戶的危險(xiǎn)。應(yīng)用開發(fā)人員開發(fā)的應(yīng)用在汽車行駛過程中必須限制使用,并且不能中斷汽車系統(tǒng)的正常運(yùn)行。只有專門配置的應(yīng)用才能訪問汽車的信息。
除了安全性外,還有其它技術(shù)性挑戰(zhàn)需要考慮。首先也是最重要的是,汽車系統(tǒng)中使用的技術(shù)必須在汽車整個(gè)生命期內(nèi)保持其適用性,并能得到良好的維護(hù)。汽車生命期平均為10年左右,不像智能手機(jī)只有大約2至3年的生命期。隨著新產(chǎn)品的不斷開發(fā),汽車技術(shù)也需要能夠不斷支持最新的技術(shù)標(biāo)準(zhǔn)。
另外還存在著確保汽車中使用方便的挑戰(zhàn)。如果汽車有多個(gè)屏幕(如抬頭單元、儀表群顯示器、高鑲嵌式顯示器等),所有應(yīng)用必須能夠同時(shí)運(yùn)行,并能夠與全部屏幕進(jìn)行交互。此外,消費(fèi)者期望他們的車載汽車應(yīng)用能夠像他們的智能手機(jī)應(yīng)用那樣,具有豐富的用戶界面、簡單的命令和輸入以及復(fù)雜的動(dòng)畫效果。
在汽車系統(tǒng)中使用HTML5的好處
HTML5應(yīng)用的最大特點(diǎn)之一是,它們?nèi)菀组_發(fā),適合在各種移動(dòng)設(shè)備上運(yùn)行。與汽車系統(tǒng)的集成尤其重要,因?yàn)樗鼈冇谢谧陨硖厥饧夹g(shù)的要求。今天的市場上已經(jīng)充斥著大量與汽車系統(tǒng)有關(guān)的HTML5應(yīng)用(想想大量的音樂和GPS應(yīng)用吧),而且隨著無數(shù)開發(fā)人員熟悉并使用HTML5開展工作,未來基于HTML5的汽車應(yīng)用只會(huì)越來越多。
HTML5還配備有必要的基礎(chǔ)架構(gòu)用于汽車應(yīng)用開發(fā)。附加的好處是通過CSS(用于建立網(wǎng)頁的另外一種關(guān)鍵技術(shù))很容易改變應(yīng)用的風(fēng)格,從而使得這種自適應(yīng)過程能夠完美匹配多種平臺(tái)和云端技術(shù)。
創(chuàng)建HTML5解決方案的七個(gè)步驟
為了成功創(chuàng)建HTML5解決方案,開發(fā)人員應(yīng)該遵循以下幾個(gè)高層次的步驟:
創(chuàng)建瀏覽器——這是七個(gè)步驟中第一個(gè)也是最先進(jìn)的步驟,因?yàn)樗婕霸S可或自己創(chuàng)建一個(gè)瀏覽器并將它與目標(biāo)平臺(tái)整合在一起。通常會(huì)集成和優(yōu)化一些硬件與輸入方法,同時(shí)剔除不必要的組件,并進(jìn)行性能加速??梢岳糜邢薜囊恍g覽器供應(yīng)商,如Dolphin、Obigo、Access Systems、ZetaKey.與第三方網(wǎng)絡(luò)瀏覽器提供商合作的關(guān)鍵優(yōu)勢是,能夠在汽車整個(gè)生命期內(nèi)開發(fā)和維護(hù)解決方案。另外一種方法是在Webkit瀏覽器基礎(chǔ)上開發(fā)自己的解決方案。Webkit瀏覽器可以是基于QT發(fā)行版,也可以從網(wǎng)絡(luò)獲得最新版本。還可以用更快的Javascript引擎(如谷歌的V8)進(jìn)一步優(yōu)化Webkit瀏覽器。最后一種方法是使用另外一種得到良好維護(hù)的開源瀏覽器,如基于谷歌的Chromium.
固有集成——瀏覽器可以進(jìn)一步集成一些固有組件。極具挑戰(zhàn)性的用戶界面任務(wù)可以利用瀏覽器插件或運(yùn)行獨(dú)立的進(jìn)程用固有組件完成,這些組件將通過HTML/Socket服務(wù)器與HTML應(yīng)用進(jìn)行交互。這些組件例子包括媒體播放器、導(dǎo)航/地圖映射、免提電話整合等。對(duì)這種功能的訪問可以通過特定API提供給第三方應(yīng)用。
創(chuàng)建仿真環(huán)境——為了向第三方開發(fā)人員提供創(chuàng)建與測試他們應(yīng)用的能力,必須為每種臺(tái)式機(jī)操作系統(tǒng)(Windows,Mac及可能的Linux)提供仿真環(huán)境。仿真環(huán)境應(yīng)直接反映目標(biāo)平臺(tái)瀏覽器環(huán)境、通過用戶界面仿真硬件按鈕、能夠安裝和刪除應(yīng)用,并提供控制臺(tái)輸出和網(wǎng)絡(luò)應(yīng)用調(diào)試能力。
硬件按鈕的整合——在汽車系統(tǒng)中通常存在許多種控制方式,比如觸摸屏、方向盤按鈕、旋鈕等,它們必須被整合進(jìn)同一平臺(tái)。這些控制一般不推薦使用專門的API,要開發(fā)成標(biāo)準(zhǔn)導(dǎo)航控制(如用作改變活動(dòng)焦點(diǎn)的tab控制的旋鈕)。然而,這些控制可以呈現(xiàn)擴(kuò)展的JavaScript API,允許特定應(yīng)用以不同方式使用它們。瀏覽器可以檢查活動(dòng)單元是否有注冊過的句柄用于專門的控制,如果有,則使用它的函數(shù)。如果沒有注冊過的句柄,瀏覽器可以求助于標(biāo)準(zhǔn)行為。
應(yīng)用JavaScript架構(gòu)——運(yùn)行第三方應(yīng)用的能力是基于HTML5的汽車系統(tǒng)的主要要求和優(yōu)點(diǎn)之一。系統(tǒng)必須提供一個(gè)能夠下載、執(zhí)行應(yīng)用并且應(yīng)用間能流暢通信的平臺(tái)。下面的JavaScript部分提出并詳細(xì)介紹了一種可能的架構(gòu)。
私有軟件開發(fā)套件——諸如訪問汽車信息、GPS、診斷信息、駕駛狀態(tài)等附加功能在當(dāng)今汽車系統(tǒng)中很常見。為了提供更好的整合經(jīng)驗(yàn),系統(tǒng)也可以提供私有軟件開發(fā)套件(SDK),以便允許第三方應(yīng)用相互間的通信。這可以通過應(yīng)用能夠方便鏈接和使用的JavaScript API實(shí)現(xiàn)。建議將標(biāo)準(zhǔn)JavaScript API用于標(biāo)準(zhǔn)功能,如定位API(GPS),因?yàn)樗试S應(yīng)用具有更好的可移植性,并且更容易開發(fā)。
多屏整合——汽車環(huán)境中的應(yīng)用可以在多個(gè)屏幕上操作,比如主應(yīng)用運(yùn)行的中央棧顯示器以及諸如顯示附加信息(如互聯(lián)網(wǎng)收音機(jī)、下一個(gè)拐彎指令等)的儀表盤等其它顯示器。下面介紹和描述了一種可能的多屏架構(gòu)。
應(yīng)用JavaScript架構(gòu)例子
在使用JavaScript架構(gòu)時(shí),可以通過標(biāo)準(zhǔn)HTML方法將HTML5實(shí)現(xiàn)為基本的用戶界面框架。一些抽象元素是通過JavaScript庫創(chuàng)建的,獨(dú)立的JavaScript組件和應(yīng)用則用于模塊化方法。針對(duì)更為復(fù)雜的用戶界面元素,可以用固有組件擴(kuò)展瀏覽器。為了更加方便地進(jìn)行開發(fā)和應(yīng)用維護(hù),模塊之間需要保持獨(dú)立。jQuery之所以被用作基本用戶界面框架是因?yàn)榭梢缘玫降谌接脩艚缑嫘〔寮?。用戶界面框架也可以作為jQuery的擴(kuò)展。
應(yīng)用的生命期和窗口管理是通過應(yīng)用管理框架(AMF)進(jìn)行的,并且這些應(yīng)用通過div元素(用于通用組織型或格式化應(yīng)用)和iframe元素(內(nèi)聯(lián)浮動(dòng)幀)獨(dú)立運(yùn)行。應(yīng)用連接庫(ACL)是應(yīng)用程序與應(yīng)用框架管理這些獨(dú)立模塊之間的通信橋梁,應(yīng)用管理框架和應(yīng)用連接庫都使用JavaScript.
擴(kuò)展JS庫是一個(gè)可選功能。鑒于所有事情使用純JS/HTML都能正確完成,因此這個(gè)功能是不必要的。它的作用是將固有的插件功能展示為JavaScript.
一個(gè)多屏架構(gòu)例子
如下圖所示,汽車系統(tǒng)可以使用高鑲嵌式顯示器(HMD)、儀表盤顯示器(ICD)或中央棧顯示器(CSD)運(yùn)行多個(gè)應(yīng)用。這些應(yīng)用通過AppHost(Qt)與系統(tǒng)內(nèi)部消息模塊(ISM)進(jìn)行通信。ISM允許應(yīng)用廣播消息或注冊消息收聽者。AppHost將消息廣播到其它主機(jī),隨即被翻譯成JavaScript,并廣播回ISM.屏幕之間的動(dòng)畫或其它用戶界面同步也可以使用這種機(jī)制。
HTML5的好處遠(yuǎn)勝過挑戰(zhàn)
即使成功創(chuàng)建HTML5系統(tǒng)的主要挑戰(zhàn)是搭建和維護(hù)一個(gè)最優(yōu)化的瀏覽器,但專門為汽車系統(tǒng)這樣做將允許汽車在整個(gè)生命期內(nèi)保持不落伍。然而,還必須考慮到其它一些重要的汽車特殊因素,包括特殊的汽車人機(jī)界面和多屏系統(tǒng)。
上述高層架構(gòu)提供了一種解決其中一些特殊汽車難題的有效方法,有效激發(fā)了HTML5在汽車領(lǐng)域中大規(guī)模應(yīng)用的潛能。