<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Android的車載信息娛樂系統(tǒng)構(gòu)架

          基于Android的車載信息娛樂系統(tǒng)構(gòu)架

          作者: 時間:2016-12-20 來源:網(wǎng)絡(luò) 收藏
          引言

          車載電子行業(yè)有著巨大的市場潛力,因?yàn)檐囍鱾兤谕麑⒂迷谑謾C(jī)上面的某些應(yīng)用軟件直接運(yùn)行在自己的私家車上。但同時也面臨諸多挑戰(zhàn),車載電子廠商需要滿足不同汽車型號的要求,而且即便是同一品牌的不同車型往往也需要不同的定制。如今的車主們都希望能夠像使用智能手機(jī)一樣隨心所欲地安裝或者刪除應(yīng)用軟件。要將手機(jī)上使用的軟件移植到車載電子系統(tǒng)中,開發(fā)者必須面對一個嚴(yán)峻的挑戰(zhàn),即第三方應(yīng)用程序必須在一個隔離的環(huán)境中運(yùn)行,以此來阻止對其他車載功能模塊的干擾,以及可能使車主信息泄露等威脅。同時,第三方應(yīng)用軟件必須跟車載其他系統(tǒng)有效地結(jié)合起來,以便給用戶帶來更加完美的用戶體驗(yàn)。最后,第三方軟件開發(fā)者必須針對車載系統(tǒng)的共同特征,開發(fā)一套公用平臺,以方便不同的汽車制造商進(jìn)行移植,而且可以使同一個應(yīng)用程序無縫隙地在不同的品牌的轎車上使用。

          本文是對谷歌Android系統(tǒng)應(yīng)用的一種創(chuàng)新擴(kuò)展,它可以對第三方應(yīng)用程序進(jìn)行隔離,并使可信任的第三方應(yīng)用程序有訪問汽車功能軟件層的權(quán)限,加強(qiáng)了對汽車安全的防范。

          1 背景知識

          人們直觀上感覺汽車內(nèi)部的消費(fèi)電子似乎只是提供同智能手機(jī)、PDA以及MP3類似的功能,但是由于其在使用時不可避免地要與汽車其他功能模塊接觸,所以車載娛樂電子比其他消費(fèi)電子要更加復(fù)雜。一般情況下,汽車上面的大多數(shù)應(yīng)用軟件都是廠商在汽車生產(chǎn)的時候已經(jīng)固化好,它們一般會隨著汽車的報廢而報廢,所以其生命周期一般是手機(jī)或者M(jìn)P3的5~10倍。這就要求車載電子設(shè)計公司支持對其出廠后的應(yīng)用程序進(jìn)行長期升級。但由于電子產(chǎn)品更新?lián)Q代很快,僅靠軟件升級很大程度上提高了成本。

          GENIVI聯(lián)盟去年同一些汽車巨頭、芯片設(shè)計巨頭、軟件開發(fā)公司等召開了一次大會,主要討論的是怎樣為車載電子產(chǎn)品建立一個標(biāo)準(zhǔn)公開的開發(fā)平臺。GENIVI提出開發(fā)一個可擴(kuò)展的架構(gòu),可能會應(yīng)用到下一代車載電子上面,它需要在以下方面進(jìn)行努力:

          ①通過從開源社區(qū)以及專業(yè)軟件開發(fā)聯(lián)盟獲取無縫隙的軟件補(bǔ)丁以及插件,使其可以增加更多的內(nèi)容和特點(diǎn),并始終要考慮系統(tǒng)的安全性以及可靠性。

          ②增加車主和乘客的切身享受,并且盡量使其性價比更高,努力降低設(shè)備成本。

          GENIVI的軟件架構(gòu)利用英特爾的Moblin平臺作為框架,通過增加或者刪除組件來滿足特定汽車需求和使用。支持用戶自定義安裝應(yīng)用程序正在討論,同時,許多可供選擇的平臺正在磋商中,谷歌的Android系統(tǒng)便是其中之一。

          要強(qiáng)調(diào)的是,目前被GENIVI和Moblin重點(diǎn)強(qiáng)調(diào)支持的汽車電子硬件設(shè)備(CAN總線上網(wǎng)絡(luò)特定的設(shè)備),當(dāng)前在Android上卻未能實(shí)現(xiàn)。但由于Android對開源的大力支持,允許用戶對終端程序安裝并卸載,目前Moblin對這些功能尚未許可。

          2 谷歌Android

          2007年底,在谷歌主持召開的開放手機(jī)聯(lián)盟大會上,一個完全免費(fèi)開放的手機(jī)平臺誕生了,其目標(biāo)是要延伸到更為廣泛的硬件設(shè)備當(dāng)中。谷歌Android基本的特點(diǎn)是其開放性,免費(fèi)的SDK源碼開發(fā)者可以很容易下載得到,Google的號召力以及Android的開源性迅速促使開發(fā)者社區(qū)的形成。

          Android是一個主要為手機(jī)設(shè)備提供的開發(fā)平臺,它包含一個系統(tǒng)內(nèi)核、中間層和底層驅(qū)動以及一些綁定的應(yīng)用程序。整個項(xiàng)目有Apache許可證版本2授權(quán),因此移動運(yùn)營商、軟件企業(yè)、任何開發(fā)人員可以添加或刪除功能。按照2.0范例協(xié)議,即使不是內(nèi)容提供商,共享應(yīng)用程序都是可能的。該平臺允許一些二次開發(fā)商根據(jù)自己的需要添加新的功能或者應(yīng)用,所以可以很容易開發(fā)出豐富的端對端應(yīng)用程序。

          2.1 結(jié)構(gòu)概述

          Android系統(tǒng)架構(gòu)由5部分組成:Linux內(nèi)核、庫函數(shù)、Android運(yùn)行態(tài)、應(yīng)用程序框架、應(yīng)用程序。
          在線性架構(gòu)的底層是Linux內(nèi)核,基本上是Linux2.6.27版本。通過Linux內(nèi)核為Android更新補(bǔ)丁,內(nèi)核負(fù)責(zé)管理系統(tǒng)服務(wù)程序以及驅(qū)動模塊、內(nèi)存管理、任務(wù)調(diào)度。根文件系統(tǒng)使用rootfs,而數(shù)據(jù)及文件使用YAFFS,它是專門為NAND和NOR存儲器設(shè)計驅(qū)動的文件系統(tǒng)。

          應(yīng)用程序框架和Android運(yùn)行時態(tài)主要通過C/C++庫,這部分庫包括標(biāo)準(zhǔn)的C庫、多媒體庫、圖形界面庫、瀏覽器、字體庫以及數(shù)據(jù)庫。

          Android運(yùn)行態(tài)包括核心庫以及Java Dalvik虛擬機(jī),Dalvik是一種允許在有限的內(nèi)存上運(yùn)行多進(jìn)程的虛擬機(jī),每一個程序運(yùn)行在一個獨(dú)立的Linux進(jìn)程里。

          應(yīng)用程序框架由許多類、接口、包組成。它的目的是提供一種簡單、連續(xù)的方式去管理圖形化用戶接口,訪問資源內(nèi)存,收到通知,或者處理來電,主要的組成部分有可視系統(tǒng)、activity類管理、共享管理、資源管理、通知管理、電話管理。

          2.2 安全性

          Android內(nèi)部進(jìn)程通信以及安全性主要指在安裝第三方應(yīng)用的情況下,盡可能保證系統(tǒng)的穩(wěn)定性。底層的許可機(jī)制是由Linux內(nèi)核以及文件系統(tǒng)提供的,基本上可以滿足基于Linux內(nèi)核的其他系統(tǒng)。由于Android設(shè)備針對的是單用戶,因此多用戶服務(wù)的設(shè)備靠分配唯一的標(biāo)識才能應(yīng)用。

          此外,Android是靜態(tài)的安全許可系統(tǒng),它在程序安裝時被強(qiáng)制使用。


          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();