當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]Android是Google公司開發(fā)的基于Linux平臺的開源手機操作系統(tǒng),它包括操作系統(tǒng)、中間件、用戶界面和應(yīng)用程序,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專利權(quán)障礙,并由Google公司于2007年11月5日正式發(fā)布。同時,Google公司組建了一個開放手機聯(lián)盟,這個聯(lián)盟由中國移動、摩托羅拉、高通、宏達電和T-Mobile等在內(nèi)的全球30多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成,Google通過與運營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動電話軟件平臺,在移

Android是Google公司開發(fā)的基于Linux平臺的開源手機操作系統(tǒng),它包括操作系統(tǒng)、中間件、用戶界面和應(yīng)用程序,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專利權(quán)障礙,并由Google公司于2007年11月5日正式發(fā)布。同時,Google公司組建了一個開放手機聯(lián)盟,這個聯(lián)盟由中國移動、摩托羅拉、高通、宏達電和T-Mobile等在內(nèi)的全球30多家技術(shù)和無線應(yīng)用的領(lǐng)軍企業(yè)組成,Google通過與運營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng);可預(yù)見地,生產(chǎn)和使用基于Android系統(tǒng)的嵌入式手持移動設(shè)備將是未來的發(fā)展趨勢,對相應(yīng)軟件的需求量也將日趨增長,因此對Android系統(tǒng)內(nèi)部作一個完整和深入的分析,對基于Android平臺的軟件移植和開發(fā)是很有益處的。

1 Android系統(tǒng)平臺架構(gòu)

對操作系統(tǒng)而言,必須做到設(shè)計合理、層次分明,同時還需考慮整個系統(tǒng)的結(jié)構(gòu)要聚耦適當(dāng),Android系統(tǒng)是基于linux內(nèi)核的,因此還必須具備開源的特性,以符合開源人員共同工作。

從系統(tǒng)的組成要件來講,Android平臺架構(gòu)包括硬件設(shè)備、板級支持包、驅(qū)動程序、操作系統(tǒng)內(nèi)核、程序運行庫,運行框架,應(yīng)用程序等,它們的有機結(jié)合和協(xié)同工作共同完成了整個系統(tǒng)的正常運行和對事務(wù)的處理。

依據(jù)Google開源資料可知,整個系統(tǒng)由Linux內(nèi)核、程序庫、Android Runtime、應(yīng)用程序框架和應(yīng)用程序等5部分組成,,系統(tǒng)架構(gòu)如圖1所示。

參照圖1,由上而下對組成系統(tǒng)各部分的主要組件作以下描述。

1.1 Linux內(nèi)核

Android基于Linux 2.6內(nèi)核,但并非完全照搬內(nèi)核,而是對內(nèi)核作了部分增刪和修改,在Linux 2.6內(nèi)核的基礎(chǔ)上,Android核心系統(tǒng)實現(xiàn)了安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型等功能,Linux內(nèi)核也同時作為硬件和軟件棧之間的抽象層。

①硬件驅(qū)動程序:完成與各種硬件的通信,Linux內(nèi)核提供了大部分設(shè)備的驅(qū)動程序,如顯示屏,攝像頭,內(nèi)存,鍵盤,無線網(wǎng)絡(luò),音頻設(shè)備,電源等組件。

②系統(tǒng)內(nèi)存管理:對所有可用的內(nèi)存進行統(tǒng)一編碼管理,定義一整套內(nèi)存定位,使用與回收的策略。

③系統(tǒng)進程管理:內(nèi)核管理進程的創(chuàng)建與銷毀,管理進程間的通信,以及采取必要的措施避免死鎖等內(nèi)容。

④網(wǎng)絡(luò)管理系統(tǒng):無線網(wǎng)絡(luò)設(shè)備工作原理,內(nèi)核掌控如何讀取網(wǎng)絡(luò)設(shè)備中的緩存數(shù)據(jù)。

1.2 程序庫

程序庫是指可供使用的各種標(biāo)準(zhǔn)程序、子程序、文件以及它們的目錄等信息的有序集合,Android包含一些C/C++庫,Android系統(tǒng)中不同的組件通過應(yīng)用程序框架可以使用這些庫,以下是一些核心庫:

Surface Manager:管理顯示子系統(tǒng),并且為多個應(yīng)用程序提供2D和3D圖層的無縫融合;

Media Framework:基于OpenCORE的多媒體框架,支持多種常用的音頻、視頻格式文件的回放和錄制,同時支持靜態(tài)圖像文件。

SQLite:一個對于所有應(yīng)用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。

OpenGL ES:3D圖形庫,用于3D圖形渲染,該庫可以使用3D硬件加速。

FreeType:位圖(Bitmap)和矢量(Vector)字體顯示。

WebKit:支持Android瀏覽器和一個可嵌入的Web視圖。

SGL:2D圖形庫,用于2D圖形渲染。

LibC:一個從BSD繼承的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫,它是專門為基于嵌入式Linux設(shè)備定制的。

1.3 Android運行庫(Android Runtime)

Android運行庫包括兩部分:一是核心庫,二是自身的虛擬機。

核心庫提供Java編程語言核心庫的大多數(shù)功能。Dalvik虛擬機是Google專為Android開發(fā)的,比SunJava虛擬機的效率更高,功能也更為復(fù)雜,以更好的支撐Android平臺,并擁有獨立的版權(quán)。每一個Android應(yīng)用程序都在自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例, Dalvik虛擬機執(zhí)行.dex的可執(zhí)行文件,該格式文件針對小內(nèi)存的使用進行了優(yōu)化,同時虛擬機是基于寄存器實現(xiàn)的,所有的類由Java編譯器編譯,然后通過SDK中的相應(yīng)工具轉(zhuǎn)化成.dex格式,最后由虛擬機執(zhí)行。

1.4 應(yīng)用程序框架

應(yīng)用程序框架是指定義了一個應(yīng)用程序運行所必須的全部功能組件,開發(fā)者也可以訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊,并且任何其他的應(yīng)用程序都可以使用其所發(fā)布的功能塊(應(yīng)該遵循框架的安全性限制)。同樣,該應(yīng)用程序的重用機制也使用戶可以方便地替換程序組件。

隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括:

活動管理器(Activity Manager):用來管理應(yīng)用程序生命周期,并且提供常用的導(dǎo)航回退功能。

豐富而又可擴展的視圖(Views):可以用來構(gòu)建應(yīng)用程序,它包括列表(Lists)、網(wǎng)格(Grids)、文本框

(Text Boxes)、按鈕(Buttons),甚至包括可嵌入的Web瀏覽器。

內(nèi)容提供器(Content Providers):使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù),或者可以共享它們自己的數(shù)據(jù)。

資源管理器(Resource Manager):提供非代碼資源的訪問,如本地字符串、圖形和布局文件(Layout Files)。

通知管理器(Notification Manager):使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。

Android程序框架體顯了“統(tǒng)一”與“兼容”的原則,其優(yōu)勢歸納為:

①任何一個應(yīng)用程序都可以發(fā)布它的功能塊。

②所有的應(yīng)用程序在Android平臺上都是平等的。

③所有的應(yīng)用程序與資源都被按類別進行分別管理。

④所有程序各司其職。

1.5 應(yīng)用程序

Android系統(tǒng)發(fā)布時,會同一系列核心應(yīng)用程序和常用程序一起發(fā)布,如常用的手機功能程序,包括語音電話、通訊錄、短信收發(fā)、照相、話機設(shè)置等;數(shù)據(jù)應(yīng)用程序,包括郵件工具,日程表,瀏覽器,地圖導(dǎo)航等,以及Android Market上的各種應(yīng)用程序;所有的應(yīng)用程序都是使用Java語言編寫。

2 Android內(nèi)核

Android內(nèi)核基于Linux2.6內(nèi)核作了部分修改和增刪,是一個增強內(nèi)核版本,除了修改部分Bug外,它還提供了用于支持Android平臺的設(shè)備驅(qū)動,與標(biāo)準(zhǔn)的Linux內(nèi)核比較、分析可知其內(nèi)核的全貌和基本結(jié)構(gòu),下面對基于Android修改的核心驅(qū)動作初步闡述:

2.1 系統(tǒng)進程管理

Android平臺的進程間通訊基于Binder機制實現(xiàn),它提供了一種進程間通信的方法,即一個進程可以以類似遠程過程調(diào)用的形式調(diào)用另一個進程所提供的功能,然后帶著執(zhí)行的結(jié)果返回。Android Binder是基于Service與Client的,有一個ServiceManager的守護進程管理著系統(tǒng)的各個服務(wù),它負責(zé)監(jiān)聽是否有其他程序向其發(fā)送請求,如果有請求就響應(yīng),每個服務(wù)都要在ServiceManager中注冊,而請求服務(wù)的客戶端去ServiceManager請求服務(wù)。

2.2 內(nèi)存管理

低內(nèi)存管理器(Low Memory Killer):相對于Linux標(biāo)準(zhǔn)OOM(Out Of Memory)機制更加靈活,它可以根據(jù)需要殺死進程來釋放需要的內(nèi)存。匿名共享內(nèi)存(ashmem):為進程間提供大塊共享內(nèi)存,同時為內(nèi)核提供回收和管理這個內(nèi)存的機制。Android PMEM(Physical):PMEM用于向用戶空間提供連續(xù)的物理內(nèi)存區(qū)域,DSP和某些設(shè)備只能工作在連續(xù)的物理內(nèi)存上。

2.3 文件系統(tǒng)管理

Android平臺采用Yaffs2作為MTD nand flash文件系統(tǒng),Yaffs2是一個快速穩(wěn)定的應(yīng)用于NAND和NOR Flash的跨平臺的嵌入式設(shè)備文件系統(tǒng),同其他Flash文件系統(tǒng)相比,Yaffs2使用更小的內(nèi)存來保存它的運行狀態(tài),因此它占用內(nèi)存小;Yaffs2的垃圾回收非常簡單而且快速,因此能達到更好的性能;Yaffs2在大容量的NAND Flash上性能表現(xiàn)尤為明顯,非常適合大容量的Flash存儲。

2.4 時鐘管理

Android Alarm,提供了一個定時器用于把設(shè)備從睡眠狀態(tài)喚醒,同時它也提供了一個即使在設(shè)備睡眠時也會運行的時鐘基準(zhǔn),Android timed device,提供了對設(shè)備進行定時控制功能,目前支持vibrator和LED設(shè)備。

2.5 電源管理

Android電源管理(PM),一個基于標(biāo)準(zhǔn)Linux電源管理系統(tǒng)的輕量級的Android電源管理驅(qū)動,針對嵌入式設(shè)備做了很多優(yōu)化。

2.6 USB管理

Android的USB驅(qū)動是基于gaeget框架的,USB Gadget驅(qū)動是一個基于標(biāo)準(zhǔn)Linux USB gadget驅(qū)動框架的設(shè)備驅(qū)動。

2.7 系統(tǒng)日志管理

Android Logger,一個輕量級的日志設(shè)備,用于抓取Android系統(tǒng)的各種日志。

3 結(jié)束語

Android是一款開放的、基于Linux內(nèi)核的嵌入式操作系統(tǒng),將被廣泛地應(yīng)用到各種移動手持設(shè)備中,充分發(fā)揮其強大的網(wǎng)絡(luò)功能;由于開源的特性,Android不區(qū)分核心應(yīng)用程序和第三方應(yīng)用程序,并可自由的吸納新出現(xiàn)的尖端技術(shù);同時,Android提供廣泛而實用的函數(shù)庫和工具,利用它們可以開發(fā)豐富的應(yīng)用程序。由此可以展望,基于開放手機聯(lián)盟(Open Handset Alliance)平臺強大的技術(shù)實力和市場推廣,Android系統(tǒng)在移動嵌入式領(lǐng)域的應(yīng)用將會非常廣闊。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉