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