基于Android系統(tǒng)的車載娛樂(lè)系統(tǒng)軟件架構(gòu)
2.1 結(jié)構(gòu)概述
Android系統(tǒng)架構(gòu)由5部分組成:Linux內(nèi)核、庫(kù)函數(shù)、Android運(yùn)行態(tài)、應(yīng)用程序框架、應(yīng)用程序。
在線性架構(gòu)的底層是Linux內(nèi)核,基本上是Linux2.6.27版本。通過(guò)Linux內(nèi)核為Android更新補(bǔ)丁,內(nèi)核負(fù)責(zé)管理系統(tǒng)服務(wù)程序以及驅(qū)動(dòng)模塊、內(nèi)存管理、任務(wù)調(diào)度。根文件系統(tǒng)使用rootfs,而數(shù)據(jù)及文件使用YAFFS,它是專門為NAND和NOR存儲(chǔ)器設(shè)計(jì)驅(qū)動(dòng)的文件系統(tǒng)。
應(yīng)用程序框架和Android運(yùn)行時(shí)態(tài)主要通過(guò)C/C++庫(kù),這部分庫(kù)包括標(biāo)準(zhǔn)的C庫(kù)、多媒體庫(kù)、圖形界面庫(kù)、瀏覽器、字體庫(kù)以及數(shù)據(jù)庫(kù)。
Android運(yùn)行態(tài)包括核心庫(kù)以及Java Dalvik虛擬機(jī),Dalvik是一種允許在有限的內(nèi)存上運(yùn)行多進(jìn)程的虛擬機(jī),每一個(gè)程序運(yùn)行在一個(gè)獨(dú)立的Linux進(jìn)程里。
應(yīng)用程序框架由許多類、接口、包組成。它的目的是提供一種簡(jiǎn)單、連續(xù)的方式去管理圖形化用戶接口,訪問(wèn)資源內(nèi)存,收到通知,或者處理來(lá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è)備針對(duì)的是單用戶,因此多用戶服務(wù)的設(shè)備靠分配唯一的標(biāo)識(shí)才能應(yīng)用。
此外,Android是靜態(tài)的安全許可系統(tǒng),它在程序安裝時(shí)被強(qiáng)制使用。
2.3 進(jìn)程間的通信
Android有兩種進(jìn)程間通信的模型:intent和code綁定。intent類框架提供上層的進(jìn)程間通信,這是最好的方式,可以動(dòng)態(tài)地利用SDK包進(jìn)行開發(fā),并與上層應(yīng)用程式綁定。intent類包含了幾個(gè)用來(lái)描述調(diào)用者真正意圖的域,調(diào)用者發(fā)送intent給Android的intent解析器,And-roid系統(tǒng)將通過(guò)intent過(guò)濾器從所有的應(yīng)用程序中選擇最適合處理該intent的activity類。intent域包含了期望的處理方式、類以及數(shù)據(jù)字符、數(shù)據(jù)的MIME類型。
intent能夠被用來(lái)觸發(fā)activities,發(fā)送數(shù)據(jù)給廣播并啟動(dòng)相應(yīng)的服務(wù)。安全性方面的限制主要通過(guò)Android系統(tǒng)提供的權(quán)限框架類來(lái)實(shí)現(xiàn)。
每個(gè)程序運(yùn)行在自身的進(jìn)程里,但開發(fā)者能夠?qū)懸粋€(gè)服務(wù)運(yùn)行在不同的進(jìn)程中,一些對(duì)象在進(jìn)程間傳遞也是允許的。在Android平臺(tái)上,一個(gè)進(jìn)程通常不能進(jìn)入其他進(jìn)程內(nèi)存。因此,兩個(gè)進(jìn)程間如果相互通信,需要把他們的對(duì)象分解成操作系統(tǒng)可以識(shí)別的基礎(chǔ)類型,并且通過(guò)進(jìn)程的邊界來(lái)控制對(duì)象。附帶SDK的AIDL工具自動(dòng)生成控制代碼段,AIDL是用來(lái)生成在兩個(gè)進(jìn)程之間通信代碼的一種接口描述語(yǔ)言。AIDL IPC機(jī)制就是使用代理類在客戶端和實(shí)現(xiàn)端傳遞參數(shù)。
3 Android應(yīng)用在車載電子的一種架構(gòu)
Android擴(kuò)展了汽車的總體結(jié)構(gòu),基本架構(gòu)如圖1所示,自定義的Android平臺(tái)應(yīng)用在汽車功能模塊和支持組件的一邊。這種擴(kuò)展的目的是提供一種允許可信任的應(yīng)用程序訪問(wèn)汽車功能模塊(車輛制動(dòng)、轉(zhuǎn)向或電力傳動(dòng)分配)的安全機(jī)制,而不可信任的程序被隔離并且不可以訪問(wèn)。應(yīng)用程序之間的這種強(qiáng)制性的安全策略是源于可靠性要求的IVI系統(tǒng)。通過(guò)汽車管理類可信任應(yīng)用程序有機(jī)會(huì)訪問(wèn)一些特性(CAN總線),但處理不當(dāng)也可能危及車輛安全(例如通過(guò)連續(xù)發(fā)送無(wú)效的數(shù)據(jù)幀使得CAN總線帶寬飽和)。這種方案的主要特點(diǎn)是使上層邏輯去耦合,那樣就可以方便上層應(yīng)用獲取并處理來(lái)自底層數(shù)據(jù)。本文引用地址:http://www.ex-cimer.com/article/197288.htm
評(píng)論