畢業(yè)論文-android系統(tǒng)在beagleboard上的移植【精校排版】_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p>  Android系統(tǒng)在Beagleboard上的移植</p><p>  專 業(yè): 電子信息科學與技術(shù) </p><p>  指導教師: </p><p>  學生姓名:

2、 </p><p>  學生學號: </p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  AbstractI</p><p>&l

3、t;b>  第一章 緒論1</b></p><p>  1.1 前言...................................................1</p><p>  1.2 課題背景及國內(nèi)外研究情況1</p><p>  1.2.1 課題背景1</p><p>  1.2.2 國內(nèi)

4、外研究情況概括2</p><p>  1.3 智能手機操作系統(tǒng)簡介2</p><p>  1.3.1 智能手機系統(tǒng)特點2</p><p>  1.3.2 智能手機系統(tǒng)發(fā)展趨勢3</p><p>  1.4 Android的優(yōu)勢3</p><p>  1.5 Beagleboard開發(fā)平臺的特點及優(yōu)勢

5、4</p><p>  1.6 本文工作安排5</p><p>  第二章 移植開發(fā)平臺概述6</p><p>  2.1 Android的體系結(jié)構(gòu)與設(shè)計實現(xiàn)6</p><p>  2.1.1 Android體系結(jié)構(gòu)簡介6</p><p>  2.1.2 Android架構(gòu)圖7</p>

6、<p>  2.1.3 應用框架(Application Frameworks)8</p><p>  2.1.4 Linux內(nèi)核9</p><p>  2.1.5 庫類9</p><p>  2.2 Android Runtime (Android 運行時組件)10</p><p>  第三章 Beagled

7、oard開發(fā)板12</p><p>  3.1 開發(fā)板簡介12</p><p>  3.2 Beagle Board OMAP3530介紹12</p><p>  3.2.1 OMAP3530特性12</p><p>  3.2.2 OMAP3530的好處12</p><p>  第四章 系統(tǒng)移植

8、13</p><p>  4.1 Android系統(tǒng)解析13</p><p>  4.1.1 Android的API13</p><p>  4.2 移植14</p><p>  4.2.1 U-boot的體系結(jié)構(gòu)14</p><p>  4.3 環(huán)境搭建15</p><p>

9、;  4.4 移植步驟15</p><p>  4.4.1 交叉編譯U-boot19</p><p>  4.4.2 Linux kernel的移植19</p><p>  4.4.3 獲取Android源代碼18</p><p>  4.4.4 配置并編譯 Android20</p><p>  

10、4.4.5 系統(tǒng)功能測試23</p><p>  第五章 總結(jié)、展望29</p><p><b>  參考文獻28</b></p><p><b>  致謝29</b></p><p>  Android系統(tǒng)在Beagleboard上的移植</p><p><

11、;b>  摘要</b></p><p>  自從Google發(fā)表手機開發(fā)軟件平臺——Android系統(tǒng)后,很快引起了全世界自由軟件社群的積極參予,由于開源Android平臺的移動電話的推出,由Google,出現(xiàn)了在OEM社會重大利益,也為其他定制Android的嵌入式平臺,如作為上網(wǎng)本,機頂盒,汽車儀表板等。該機器人可用于制作優(yōu)勢多個設(shè)備平臺將意味著一個設(shè)備開發(fā)的應用程序可以很容易地作出可供移植

12、的需要以最小的另一個平臺。而且現(xiàn)在很多公司正在或計劃推出基于Android的智能手機和平板電腦。</p><p>  Android平臺提供給普通開發(fā)者非常靈活的自由移植空間,本文先介紹智能手機操作系統(tǒng)的體系結(jié)構(gòu)、特點以及國內(nèi)外的研究情形,然后基于Beagleboard一種開放硬件的單板計算機。kernel的代碼在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化, OMAP3530應用處

13、理器:OMAP?3架構(gòu)、微處理器子系統(tǒng)、高達720兆赫的ARM Cortex?- A8內(nèi)核、協(xié)處理器的NEON?SIMD的高性能圖像,視頻,音頻,有助于移植Android 。同時提供一些簡單的Android功能拓展。</p><p>  關(guān)鍵詞:智能手機操作系統(tǒng);Android;BeagleBoard OMAP3530 Kit;移植</p><p>  Android on The Tra

14、nsplant System in Beagle Board</p><p><b>  Abstract</b></p><p>  Ever since Google released the software platform for mobile development - Android system, soon attracted the world

15、9;s active participation in the free software community, the open-source Android platform for mobile phones launched by Google, there was significant interest in the OEM community, Customize Android for other embedded pl

16、atforms, such as the Internet, set-top boxes, automobile instrument panels. The robot can be used to make advantage of multiple device platforms will mean that applica</p><p>  Keywords:smart phone operating

17、 system,Android;BeagleBoard OMAP3530,transplantation</p><p><b>  朗讀</b></p><p>  顯示對應的拉丁字符的拼音</p><p><b>  字典</b></p><p><b>  第一章 緒論</b

18、></p><p><b>  1.1 前言</b></p><p>  現(xiàn)代信息技術(shù)迅猛發(fā)展的同時手機系統(tǒng)也逐漸被大眾所熟知,相應的軟件、操作系統(tǒng)也被廣泛應用,而且其更新速度也非常的迅速。現(xiàn)代微電子技術(shù)的發(fā)展,催生了高性能、低功耗、具有強大圖形處理能力的嵌入式微處理器,更使得嵌入式移動設(shè)備可以搭載具有完全功能的操作系統(tǒng)。在智能手機領(lǐng)域,各大手機廠商都推出了自己

19、獨樹一幟的智能手機操作系統(tǒng),其中比較突出的蘋果公司推出的iphone操作系統(tǒng)和Google推出的Android操作系統(tǒng)。</p><p>  Android作為一個開源的智能平臺,以其開放性和可移植性等優(yōu)勢日益受到大眾的歡迎和更多廠商的青睞。</p><p>  本文首先是對智能手機操作系統(tǒng)和Android做了一個相關(guān)的介紹,然后寫了一些研究方向和工作側(cè)重點。</p><

20、;p>  1.2 課題背景及國內(nèi)外研究情況</p><p>  1.2.1 課題背景</p><p>  2008年9月,Google發(fā)表了Android開放源代碼,釋出Android程序代碼。Android 是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應用程序 —— 移動電話工作所需全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙

21、。Google與開放手機聯(lián)盟合作開發(fā)了Android,它由由33家手機制造商、軟件商和電信業(yè)組成的推廣Andro記平臺的聯(lián)合會。</p><p>  Google通過觀察,全球為數(shù)眾多的移動電話用戶從來沒有使用過任何基于 Android 系統(tǒng)的電話。Google的目標是讓(移動通訊)不依賴于設(shè)備甚至平臺。出于這個目的,Android 將補充,而不會替代Google長期以來奉行的移動發(fā)展戰(zhàn)略;通過與全球各地的手機制

22、造商和移動運營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動服務,并為之推廣。美國運行商T-Mobile USA在紐約正式發(fā)布第一款Android手機T-Mobile G1,該手機是由臺灣宏達電子代工制造,是世界第一部使用了Android操作系統(tǒng)的手機,它支持WCDMA/HSPA網(wǎng)絡,理論下載速率7.2Mbps,并支持Wi-Fi,到目前為止,已經(jīng)有多款使用Android系統(tǒng)的智能手機,超過5萬個應用程序。</p><p&

23、gt;  1.2.2 國內(nèi)外研究情況概括</p><p>  Android是由美國Android公司(Google于2005年8月將美國Android公司收購)研究開發(fā),Google和其他幾十個手機公司建立了開放手機聯(lián)盟。</p><p>  在短短幾年時間里,Android手機系統(tǒng)從一個菜鳥變成今日手機的巨頭,連Steve Paul Jobs(史蒂夫·喬布斯)的蘋果也感到了

24、威脅,這讓我們不得不為之折服。目前Android系統(tǒng)已經(jīng)發(fā)展成了由眾多終端產(chǎn)品支持的超大平臺,而軟件應用數(shù)量也正以難以置信的速度更新著,看來從Google挑起了“開源”與“封閉”爭論之日起的同時Android也開始了走向輝煌之路。</p><p>  Android手機系統(tǒng)內(nèi)核開發(fā)環(huán)境一般都是在Windows或Linux下完成的。由于Android系統(tǒng)的開放性和自由性,在未來應用必定十分廣泛。</p>

25、<p>  1.3 智能手機操作系統(tǒng)簡介</p><p>  1.3.1 智能手機系統(tǒng)特點</p><p>  智能手機的系統(tǒng)特點有以下幾點:</p><p>  (1)它具有一般手機的所有功能,能收發(fā)短信,正常通話等應用功能。</p><p>  (2)它具有PDA功能,其中包括PIM(個人信息管理),日記,任務安排,瀏覽

26、網(wǎng)頁,多媒體應用。</p><p>  (3)它具備無線接入互聯(lián)網(wǎng)能力,即3G網(wǎng)絡或者CDMA網(wǎng)絡下的CDMA等。</p><p>  (4)它擁有人性化特點,可根據(jù)個人喜好或需要進行擴展的功能。</p><p> ?。?)支持第三方軟件,功能強大,拓展性強。</p><p> ?。?)具備開放性的操作系統(tǒng),在這操作系統(tǒng)平臺上,可以安裝更多的

27、應用程序,而使原有的程序得到更好的提升,得到無線的擴展。</p><p>  1.3.2 智能手機系統(tǒng)發(fā)展趨勢</p><p>  智能手機系統(tǒng)的發(fā)展趨勢比較集中的表現(xiàn)在它的開源,電池壽命,Wi-Fi、GPS應用,安全系統(tǒng),以及多媒體系統(tǒng)。</p><p>  開源是智能手機發(fā)展的一個新趨勢,目前,智能手機廠商和運營商都宣布了自</p><p&

28、gt;  己的開源戰(zhàn)略或產(chǎn)品。 不久前,Google 剛剛推出了Android 開源移動平臺計劃。</p><p>  電池壽命,電池持續(xù)時間是衡量智能手機的一個重要標準,藍牙、Wi-Fi、免提等均消耗少量的電量,所以,為使它持續(xù)時間延長,應盡量關(guān)閉不常用的功能。</p><p>  Wi-Fi,新的Wi-Fi芯片,可有效降低能耗,延長電池壽命。</p><p> 

29、 GPS,GPS是目前應用比較普遍的全球定位系統(tǒng),宏達電子、RIM 和其他智能手機廠商均推出了支持GPS 功能的手機 產(chǎn)品。他不僅可以幫助用戶從A 點走到B 點,更重要的是,GPS 服務商也推出各種各樣的服務。</p><p>  安全系統(tǒng),智能手機面臨著各種安全威脅,如功能鎖定、設(shè)備鎖定、驗證、防火墻等等。</p><p>  多媒體系統(tǒng),為提升多媒體應用,智能手機需要平衡商用和個人應用

30、所需功能。</p><p>  Android的優(yōu)勢</p><p>  現(xiàn)代技術(shù)的不斷更新,Android系統(tǒng)在不斷更新,其中有五個方面:開放性,掙脫運營商的束縛,豐富的硬件選擇,不受任何限制的開發(fā)商,以及無縫結(jié)合的Google 應用。</p><p>  開放性,在優(yōu)勢方面,Android 平臺首先就是其開放性,開放的平臺允許任何移動終端廠商加入到Android

31、 聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。開發(fā)性對于Android 的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。</p><p>  掙脫運營商的束縛,在過去很長的一段時間,特別是在歐美地區(qū),手機應用往往受到運營

32、商制約,使用什么功能接入什么網(wǎng)絡,幾乎都受到運營商的控制。自從iPhone 上市,用戶可以更加方便地連接網(wǎng)絡,運營商的制約減少。隨著EDGE、 HSDPA 這些2G至3G 移動網(wǎng)絡的逐步過渡和提升,手機隨意接入網(wǎng)絡已不是運營商口中的笑談,當你可以通過手機IM 軟件方便地進行即時聊天時,再回想不久前天價的彩信和圖鈴下載業(yè)務,就如在地獄一般?互聯(lián)網(wǎng)巨頭Google 推動的Android 終端天生就有網(wǎng)絡特色,將讓用戶離互聯(lián)網(wǎng)更近。</

33、p><p>  豐富的硬件選擇,這一點還是與Android 平臺的開放性相關(guān),由于Android 的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,好比你從諾基亞Symbian 風格手機一下改用蘋果 iPhone,同時還可將Symbian 中優(yōu)秀的軟件帶到iPhone 上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是不是非常方便呢?</p>

34、<p>  不受任何限制的開發(fā)商,Android 平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android 難題之一。</p><p>  無縫結(jié)合的Google 應用,如今叱詫互聯(lián)網(wǎng)的Google 已經(jīng)走過10 年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google

35、服務如地圖、 郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android 平臺手機將無縫結(jié)合這些優(yōu)秀的Google 服務。</p><p>  1.5 Beagleboard開發(fā)平臺的特點及優(yōu)勢</p><p>  Beagleboard單板計算機的特點有以下幾點:完全獨立;有USB 2.0接口,DVI-D接口;SD/MMC卡的擴充;ARM的Cortex-A8處理器;三維高清視頻(

36、720P);運行在2周,無需風扇;512的內(nèi)存。</p><p>  嵌入式和移動開發(fā)人員而言,以O(shè)MAP3530為參考平臺,其中包含ARM的Cortex- A8的@600MHz,PowerVR SGX530的OpenGL/ ES三維,TMS320C64x型的DSP,256MB的LPDDR,USB2 OTG功能,JTAG接口,擴展區(qū),支持SD/ MMC卡,以及1200的DMIPS。&

37、lt;/p><p>  對于愛好者而言物美價廉,且可以自己動手操作,自己進行修改,最后得到一個高科技產(chǎn)品,使得它的愛好者越來越多,其中能制作的產(chǎn)品有:機器人;DIY的無人機(無人駕駛飛行器);DIY的平板電腦,筆記本電腦,移動電話;太陽能供電的計算器;游戲;基于ARM的系統(tǒng)芯片,德州儀器的OMAP編程,嵌入式Linux,數(shù)字信號處理,3D視頻加速度;國產(chǎn)視頻播放器;極低功耗的家用服務器;示意圖可供重新設(shè)計,以適應用戶

38、自己的使用。以上只是一些方面,還有很多可供愛好者自行去發(fā)現(xiàn),去探索。</p><p>  1.6 本文工作安排</p><p>  Android系統(tǒng)本身是一個龐大的系統(tǒng),移植并不需要精通Android的每一個部分,需要考慮的是Android系統(tǒng)的硬件抽象層(HAL)和Linux中的相關(guān)設(shè)備驅(qū)動程序。Android系統(tǒng)的移植工作的目的是為了在特定的硬件上運行Android系統(tǒng)。移植的目的

39、就是為了改動較小的內(nèi)容,支撐較為龐大上層的系統(tǒng)。同時由于硬件抽象層具有標準的接口,在各個不同的平臺的實現(xiàn)中可以互相參考,雖然具體實現(xiàn)的內(nèi)容不同,但是思路類似,可以相互參考。</p><p>  BeagleBoard是一種開放硬件的單板計算機,能夠以合理的速度運行Linux,同時保持價格低廉。其中包含一個Texas Instruments OMAP3530 system-on-a-chip (SoC) 處理器 (

40、ARM Cortex A-8 core),最高運行頻率為 600MHz。本文對Beagleboard開發(fā)板進行了應用,構(gòu)建以Beagleboard開發(fā)板為核心,嵌入式Linux操作系統(tǒng)的開發(fā)平臺。Andriod系統(tǒng)內(nèi)核如何通過軟硬件編譯將系統(tǒng)內(nèi)核移植到Beagleboard開發(fā)板上包括系統(tǒng)文件的移植。</p><p>  另外在移植成功后,完成一個簡單Andriod應用程序開發(fā),最后對移植的效果和問題進行測試和分

41、析。</p><p>  Android系統(tǒng)在移植到BeagleBoard 開發(fā)板的過程中,把握關(guān)鍵要點,減少工作量是一個重要的方面。從工作的角度,通常的方法為,首先要熟悉硬件抽象層的接口,其次要集成和復用已有的驅(qū)動程序,主要的工作量在硬件抽象層的實現(xiàn)中。為了更好地理解和調(diào)試系統(tǒng),也應該適當?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。</p><p><b>  論文安排如下:</b

42、></p><p>  第一章:緒論。該章介紹Android系統(tǒng)的特點,及Beagleboard開發(fā)板特點功能,在此基礎(chǔ)上,結(jié)合設(shè)計背景,給出本文設(shè)計內(nèi)容、課題意義。</p><p>  第二章:移植開發(fā)平臺。對Android操作系統(tǒng)作了系統(tǒng)介紹,并闡述了Android系統(tǒng)的體系結(jié)構(gòu)和設(shè)計方法。</p><p>  第三章:開發(fā)板簡介。介紹Beagleboar

43、d開發(fā)板上的OMAP 3530相關(guān)介紹及應用。</p><p>  第四章:系統(tǒng)移植。解析Android系統(tǒng),搭建工作環(huán)境,下載源代碼,對移植的步驟進行了研究分析。</p><p>  第五章:總結(jié)、展望。</p><p>  第二章 移植開發(fā)平臺概述</p><p>  2.1 Android的體系結(jié)構(gòu)與設(shè)計實現(xiàn)</p>

44、<p>  2.1.1 Android體系結(jié)構(gòu)簡介</p><p>  Android作為一個移動設(shè)備的平臺,其軟件層次結(jié)構(gòu)包括了一個操作系統(tǒng)(OS),中間件(MiddleWare)和應用程序(Application)。根據(jù)Android的軟件框圖,其軟件層次結(jié)構(gòu)自下而上分為以下幾個層次:</p><p><b>  操作系統(tǒng)層(OS)</b></p

45、><p>  Android使用Linux2.6作為操作系統(tǒng),Linux2.6是一種標準的技術(shù),Linux也是一個開放的操作系統(tǒng)。Android對操作系統(tǒng)的使用包括核心和驅(qū)動程序兩部分,Android的Linux核心為標準的Linux2.6內(nèi)核,Android更多的是需要一些與移動設(shè)備相關(guān)的驅(qū)動程序。主要的驅(qū)動如下所示:顯示驅(qū)動(Display Driver):常用基于Linux的幀緩沖(Frame Buffer)驅(qū)

46、動;Flash內(nèi)存驅(qū)動(Flash Memory Driver);照相機驅(qū)動(Camera Driver):常用基于Linux的v4l(Video for )驅(qū)動;音頻驅(qū)動(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高級Linux聲音體系)驅(qū)動;WiFi驅(qū)動(Camera Driver):基于IEEE 802.11標準的驅(qū)動程序;鍵盤驅(qū)動(KeyBoard Driv

47、er);藍牙驅(qū)動(Bluetooth Driver);Binder IPC驅(qū)動: Andoid一個特殊的驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進程間通訊的功能</p><p>  各種庫(Libraries)和Android運行環(huán)境(RunTime)</p><p>  本層次對應一般嵌入式系統(tǒng),相當于中間件層次。Android的本層次分成兩個部分一個是各種庫,另一個是Android 運行環(huán)境

48、。本層的內(nèi)容大多是使用C++實現(xiàn)的。在其中,各種庫包括:C庫:C語言的標準庫,這也是系統(tǒng)中一個最為底層的庫,C庫是通過Linux的系統(tǒng)調(diào)用來實現(xiàn)。多媒體框架(MediaFrameword):這部分內(nèi)容是Android多媒體的核心部分,基于PacketVideo(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一個部分是音頻、視頻的回放(PlayBack),另一部分是則是音視頻的紀錄(Recorder)。其中SGL是2D圖像引擎

49、;SSL即Secure Socket Layer位于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持;OpenGL ES 1.0本部分提供了對3D的支持;界面管理工具(Surface Management)本部分提供了對管理顯示子系統(tǒng)等功能;SQLite是一個通用的嵌入式數(shù)據(jù)庫;WebKit是網(wǎng)絡瀏覽器的核心;Free Type是位圖和矢量字體的功能。</p><p>  Android 的各種庫一般

50、是以系統(tǒng)中間件的形式提供的,它們均有一個顯著特點就是與移動設(shè)備平臺的應用密切相關(guān)。</p><p>  Android 運行環(huán)境主要指的虛擬機技術(shù)——Dalvik。Dalvik虛擬機和一般JAVA虛擬機(Java VM)不同,它執(zhí)行的不是JAVA標準的字節(jié)碼(byte code)而是Dalvik可執(zhí)行格式(.dex)中執(zhí)行文件。在執(zhí)行的過程中,每一個應用程序即一個進程(Linux的一個Process)。二者最大的

51、區(qū)別在于Java VM是以基于棧的虛擬機(Stack-based),而Dalvik是基于寄存器的虛擬機(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實現(xiàn)更大的優(yōu)化,這更適合移動設(shè)備的特點。</p><p>  應用程序框架(Application Framework)</p><p>  Android的應用程序框架為應用程序?qū)拥拈_發(fā)者提供APIs,它實際上是一個應

52、用程序的框架。由于上層的應用程序是以JAVA構(gòu)建的,因此本層次提供的首先包含了UI程序中所需要的各種控件,例如: Views (視圖組件)包括 lists(列表), grids(柵格), text boxes(文本框)等。甚至一個嵌入式的Web瀏覽器。</p><p>  一個Andoid的應用程序可以利用應用程序框架中的以下幾個部分:Activity(活動);Broadcast Intent Receiver(

53、廣播意圖接收者);Service(服務);Content Provider(內(nèi)容提供者)。</p><p>  應用程序(Application)</p><p>  Android的應用程序主要是用戶界面(User Interface)方面的,通常以JAVA程序編寫,其中還可以包含各種資源文件(放置在res目錄中)JAVA程序及相關(guān)資源經(jīng)過編譯后,將生成一個APK包。Android本身提

54、供了主屏幕(Home),聯(lián)系人(Contact),電話(Phone),瀏覽器(Browers)等眾多的核心應用。同時應用程序的開發(fā)者還可以使用應用程序框架層的API實現(xiàn)自己的程序。這也是Android開源的巨大潛力的體現(xiàn)。</p><p>  2.1.2 Android架構(gòu)圖</p><p>  圖2.1展示了Android操作系統(tǒng)的主要組件:</p><p> 

55、 圖2.1 Android系統(tǒng)架構(gòu)圖</p><p>  2.1.3 應用框架(Application Frameworks)</p><p>  Android 的核心應用程序就是依賴框架層次API 開發(fā)的,程序員們可以充分使用這些API。應用架構(gòu)設(shè)計的初衷是:簡化組件復用機制;任何應 用都能發(fā)布自己的功能,這些功能又可以被任何其他應用使用(當然要受來自框架的強制安全規(guī)范的約束)。和

56、復用機制相同,框架允許組件的更換。</p><p>  其中所有應用都是一組服務和系統(tǒng)的,其中包含有:一套豐富且可擴展的視圖組件,含有l(wèi)ists, grids, text boxes, buttons, 甚至嵌入的網(wǎng)絡瀏覽器;Content Providers(內(nèi)容提供器)使一個應用可以訪問另外一個應用的數(shù)據(jù)(如聯(lián)系人),或者使一個應用內(nèi)部可以共享自身數(shù)據(jù);Resource Manager(資源管理器),提供對非

57、編碼資源——例如本地化字符串、圖形和布局文件——的訪問通道;Notification Manager(通告管理器),使應用在狀態(tài)欄顯示自定義的警報通知;Activity Manager(行動管理器)負責管理應用的生命周期,提供通用導航回退支持。</p><p>  2.1.4 Linux內(nèi)核</p><p>  Android是基于Linux內(nèi)核的操作系統(tǒng),由早期Google開發(fā)。And

58、roid系統(tǒng)依賴Linux2.6版,提供核心系統(tǒng)服務:安全、內(nèi)存管理、進程管理、網(wǎng)絡組、驅(qū)動模型。內(nèi)核部分還相當于一個介于硬件層和系統(tǒng)中其他軟件組之間的一個抽象層次。</p><p><b>  2.1.5 庫類</b></p><p>  在Android系統(tǒng)中包含一套C/C++庫,這些庫類都能被Android系統(tǒng)中的不同組件使用。開發(fā)者可以通過這些相應的程序框架

59、使用其功能,部分核心庫如下:</p><p>  surface Manager(管理范圍):主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管</p><p>  理的功能,在[顯示]與[存取操作]間的對應、互動以及實現(xiàn)無接縫的ZD/3D多應用程序之間的整合。例如:在ZD、ZD顯示上的合成、疊合動作。</p><p>  3D libraries :基于OpenGL E

60、S 1.0 API 的實現(xiàn); 該類庫使用硬件3D 加速器(如</p><p>  果硬件支持的話)或者內(nèi)置的、高度優(yōu)化的3D 軟件加速機制。能將硬件3D功能做最優(yōu)化的處理顯示。</p><p>  SGL:處理有關(guān)的底層2D圖形引擎。</p><p>  Media Libraries : 媒體庫基于PacketVideo's Open CORE;媒體庫支持

61、很多流行音頻和視頻格式、靜態(tài)圖形文件,其中包括MPEG4, H.264, MP3, AAC,AMR, JPG和PNG 的播放和錄制。</p><p>  FreeType :主要是用來顯示點陣圖和處理向量字形的(支持位圖和矢量字體)。</p><p>  SQLite :是一套開放性的關(guān)聯(lián)式資料庫,能干、輕量級的關(guān)系型數(shù)據(jù)庫引擎,面向所有應用。</p><p>  

62、LibWebCore : 指流行的瀏覽器引擎,可以支持Android 瀏覽器和嵌入應用的WEB 視圖組件。</p><p>  libc :就是一個BSD標準C類庫。但是,針對Linux嵌入式裝置進行過最佳化的調(diào)整。</p><p>  2.2 Android Runtime (Android 運行時組件) </p><p>  Android 的核心類庫提供Ja

63、va 類庫所提供的絕大部分功能。每個Android應用都運行在自己已有的進程上,享有Dalvik 虛擬機為它分配的專有實例。為了支持多個虛擬機在同一個設(shè)備上高效運行,Dalvik 被改寫過。 Dalvik 虛擬機執(zhí)行的是Dalvik 格式的可執(zhí)行文件(.dex)——該格式經(jīng)過優(yōu)化,以降低內(nèi)存耗用到最低。Java 編譯器將Java 源文 件轉(zhuǎn)為class 文件,class 文件又被內(nèi)置的dx 工具轉(zhuǎn)化為dex 格式文件,這種文件在Dalv

64、ik 虛擬機上注冊并運行。 在一些底層功能——比如線程和低內(nèi)存管理方面,Dalvik 虛擬機是依賴Linux 內(nèi)核。</p><p>  第三章 Beagledoard開發(fā)板</p><p>  3.1 開發(fā)板簡介</p><p>  Beagleboard 是一種開放硬件的單板計算機,Beagleboard是一種便攜式參考版,是TI與Digi-Key(公司)共

65、同推出的ARM開發(fā)板,具有功能強大、成本低廉、尺寸便攜等諸多優(yōu)點,目前被廣泛應用于開源教育領(lǐng)域。BeagleBoard是基于TI的OMAP3處理器,又后續(xù)推出的BeagleBoard-xM基于TI的DM3730處理器,這兩款處理器都是ARM Cotex A8的核心,處理能力應該屬于目前ARM系列的主流。</p><p>  Beagleboard是一個廉價的平臺,非常適合學習如何建立Linux和Android系統(tǒng)

66、。</p><p>  BeagleBoard性能也很不錯,周邊接口也非常豐富(詳細見圖)。BeagleBoard最大優(yōu)勢在于其豐富的開源支持。</p><p>  圖3.1是Beagleboard開發(fā)板結(jié)構(gòu)示意圖,如下:</p><p>  圖3.1 Beagleboard開發(fā)板</p><p>  Beagleboard單板計算機的幾個

67、特點:完全獨立;USB 2.0接口,DVI-D接口;SD/MMC卡的擴充;ARM的Cortex-A8處理器;三維高清視頻(720P);它可運行2周,無需風扇</p><p>  Beagleboard的社區(qū)驅(qū)動:門戶網(wǎng)站,并有獨立的討論組,Google暑期編程mentorship Open硬件,開發(fā)板的擴張和重建。</p><p>  3.2 Beagle Board OMAP3530介

68、紹</p><p>  kernel的代碼在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植Android 系統(tǒng)。OMAP3530的高性能應用處理器是基于增強的OMAP?3架構(gòu)的。OMAP?3架構(gòu)的設(shè)計,是提供最佳的一流的視頻、圖像和圖形處理足以支持以下內(nèi)容:</p><p>  視頻瀏覽;3D手機游戲;視頻會議;高分辨率的靜態(tài)圖像;以及該器件支持高層

69、次的作業(yè)系統(tǒng)(OSS)的,如:Linux、Windows CE。</p><p>  OMAP設(shè)備包括最先進的電源管理的高性能移動產(chǎn)品所需的技術(shù)。還有一些子系統(tǒng)設(shè)備有:微處理器單元(MPU),基于ARM Cortex?- A8的微處理器為基礎(chǔ)的子系統(tǒng)IVA2。</p><p>  3.2.1 OMAP3530特性</p><p>  OMAP3530的特性是易于使

70、用的音頻和基于DaVinci?技術(shù)的數(shù)字媒體處理器的視頻解碼器。此外,還包括各種O / S板的升級支持包和軟件更新。所有編解碼器提供免費評估,申請免費軟件。</p><p>  OMAP3530應用的處理器有:OMAP?3架構(gòu)、微處理器子系統(tǒng)、高達720兆赫的ARM Cortex?- A8內(nèi)核、協(xié)處理器NEON?SIMD的高性能圖像,視頻,音頻(IVA2.2?)加速器子系統(tǒng),520兆赫的TMS320C64x+?D

71、SP的核心,增強型直接存儲器存?。‥DMA)控制器(有128個獨立頻道),視頻硬件加速器,新交?圖形加速器的POWERVR(OMAP3530器件);結(jié)構(gòu)基于提供10瓦MP 0.1秒通用;可擴充著色引擎:多線程引擎結(jié)合的像素和頂點著色器功能;行業(yè)標準API的支持:OpenGLES1.1和2.0,OpenVG1.0。細粒度任務切換,負載平衡,和電源管理,可編程高品質(zhì)圖像抗鋸齒,完全軟件兼容C64x和ARM9?,商業(yè)和擴展溫度級,先進的甚長指

72、令字(VLIW)TMS320C64x+?DSP的核心,高度獨立的功能單位。</p><p>  3.2.2 OMAP3530的好處</p><p>  OMAP3530開發(fā)板中包含ARM的Cortex- A8的@600MHz,Power VR SGX530 OpenGL/ ES的三維,TMS320C64x型的DSP,256MB的LPDDR,USB2 OTG功能,JTA

73、G接口,擴展區(qū),支持SD/ MMC卡,1200的DMIPS??晒┦褂谜唠S意進行移植調(diào)試。</p><p><b>  第四章 系統(tǒng)移植</b></p><p>  4.1 Android系統(tǒng)解析</p><p>  4.1.1 Android的API</p><p>  Android的API主要內(nèi)容有:<

74、;/p><p>  Android Manifest.xml是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應用組件(尤其是活動(Activity),服務(Servies),意圖接收器(Intent Reeeiver)和內(nèi)容提供者(content Provider))。舉例來說,控制文件就是把活動和要接收的意圖(Intents)連接在一起的“膠水”。</p><p>  活動就是一個有生命周期

75、的對象。一個活動就是完成某些工作的代碼塊,這部分工作還可能包括對用戶Ul界面的顯示。不過這不是必須的,有些活動從不顯示Ul界面。</p><p>  視圖可以將其自身繪制到屏幕上。Android的用戶界面由一系列的視圖樹構(gòu)成。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個新的視圖的方法來使用自定義的圖形處理技術(shù)(比如開發(fā)游戲,或者是使用了不常用的用戶圖形窗口界面)。</p><

76、;p>  意圖是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應用程序想要顯示一個網(wǎng)頁,那么它可以通過創(chuàng)建一個Intent實例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個URI。系統(tǒng)將定位到能處理這一Inteni的代碼(在當前情況下就是瀏覽器),并運行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。</p><p>  服務是運行在后臺的一段代碼。它可以運行在它自己的進程,也可以運行在其他應用程序

77、的進程里,這取決于自身的需要.。其它的組件可以綁定到一個服務上來,通過遠程過程調(diào)用(RPc)來調(diào)用這個方法。例如媒體播放器的服務,當用戶退出媒體選擇的界面時,仍然希望音樂依然可以繼續(xù)播放,這時就可用服務來保證當用戶界面關(guān)閉時音樂還繼續(xù)播放著。</p><p>  通知是將以小圖標的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標的交互式操來接收消息。最常見的通知包括短信息、通話記錄和語音郵件,但是應用程序也可以創(chuàng)建它們自己的通

78、知事件。</p><p>  內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進行訪問。典型的例子就是使用內(nèi)容提供者來訪問聯(lián)系人列表。應用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時也可以定義自己的內(nèi)容提供者來向其它應用提供數(shù)據(jù)訪問服務。</p><p><b>  4.2 移植</b></p><p>  實現(xiàn) Android 系統(tǒng)移植的移植包括四

79、個模塊:U-boot、Linux kernel、Android 系統(tǒng)框架、 Android 應用程序。</p><p>  引導加載程序。包括固化在固件(firmware)中的boot代碼(可選),和Boot Loader 兩大部分。采用U-boot。</p><p>  Linux 內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。</p><p>  文件系統(tǒng)

80、。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ram disk來作為root fs。</p><p>  用戶應用程序。特定于用戶的應用程序。是由Android系統(tǒng)提供。</p><p>  4.2.1 U-boot的體系結(jié)構(gòu)</p><p>  U-boot 和目錄結(jié)構(gòu)類似于 Linux 內(nèi)核的結(jié)構(gòu),各主要目錄包含代碼的功能為:</p>

81、;<p>  board:和一些已有開發(fā)板有關(guān)的文件. 每一個開發(fā)板都以一個子目錄出現(xiàn)在當前目錄中。</p><p>  common:實現(xiàn)U-boot 命 令行下支持的命令,每一條命令都對應一個文件。例如bootm 命令對應就是cmd_bootm.c。</p><p>  CPU:與特定CPU 架 構(gòu)相關(guān)目錄,每一款Uboot 下 支持的CPU 在該目錄下對應一個子目錄,比

82、如有子目錄arm926ejs 就是我們開發(fā)板上使用的cpu的架構(gòu)目錄。</p><p>  disk:對磁盤的支持。</p><p>  doc:文檔目錄。U-boot 有非常完善的文檔,推薦大家參考閱讀。</p><p>  drivers:U-boot 支持的設(shè)備驅(qū)動程序都放在該目錄,比如各種網(wǎng)卡、支持CFI 的Flash、串口和USB 等。</p>

83、<p>  FS::支持的文件系統(tǒng),U-boot 現(xiàn)在支持cramfs、fat、fdos、jffs2 和registerfs。</p><p>  include:Uboot 使用的頭文件,還有對各種硬件平臺支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。該目錄下configs 目錄有與開發(fā)板相關(guān)的配置頭文件,如leopard2a.h。該目錄下的asm 目錄有與CPU 體系結(jié)構(gòu)相關(guān)的頭文件,a

84、sm 對應的是asmarm。</p><p>  lib_xxxx: 與體系結(jié)構(gòu)相關(guān)的庫文件。如與ARM 相關(guān)的庫放在lib_arm中。</p><p>  net:與網(wǎng)絡協(xié)議棧相關(guān)的代碼,BOOTP 協(xié)議、TFTP 協(xié)議、RARP 協(xié)議和NFS 文件系統(tǒng)的實現(xiàn)。</p><p>  tools:生成U-boot 的工具,如:mkimage, crc 等等。<

85、/p><p><b>  環(huán)境搭建</b></p><p>  搭建移植環(huán)境主要有:</p><p>  2臺電腦,SBC3530一臺,使用一個路由器來互相聯(lián)網(wǎng)。</p><p>  電腦A跑XP系統(tǒng),提供TFTPD服務,使用Secure CRT來登陸SBC3530的串口,使用Source Insight來檢索kernel和

86、android的源代碼,使用SFU提供NFS服務來在電腦AB之間進行文件共享。 </p><p>  電腦B跑Frdora13,負責編譯Android,并為SBC3530提供NFS的ROOT掛載服務。</p><p><b>  4.4 移植步驟</b></p><p>  下載U-boot源代碼:U-boot 的源代碼可以從官方網(wǎng)站<

87、/p><p>  http://www.denx.de/wiki/U-Boot/SourceCode 上下載,由于我們使用的 Atmel 的芯片,我們到 Atmel linux4sam 官網(wǎng)下載已經(jīng)移植成功的 U-boot 源代碼直接使用。網(wǎng)址:http://www.at91.com/linux4sam/bin/view/Linux4SAM/U-Boot</p><p>  添加開發(fā)板支持,

88、創(chuàng)建代碼目錄:</p><p>  board/atmel/at91sam9m10g45ek增加開發(fā)板的支持代碼:</p><p> ?。?) board/atmel/at91sam9m10g45ek/nand.c</p><p>  添加 nandflash 的開發(fā)板讀寫支持。</p><p> ?。?) board/atmel/at91s

89、am9m10g45ek/led.c</p><p>  添加開發(fā)板的 LED 控制</p><p> ?。?) board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c</p><p>  添加開發(fā)板硬件資源初始化</p><p>  (4) board/atmel/at91sam9m10g45ek/pa

90、rtition.c</p><p>  添加 flash 分區(qū)信息</p><p>  + {0x00000000, 0x000041FF, FLAG_PROTECT_SET, 0, "Bootstrap"},</p><p>  + {0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "En

91、vironment"},</p><p>  + {0x00008400, 0x00041FFF, FLAG_PROTECT_SET, 0, "U-Boot"},</p><p>  + {0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0, "Kernel"},</p><p&g

92、t;  + {0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0, "FS"},</p><p> ?。?) board/atmel/at91sam9m10g45ek/config.mk</p><p> ?。?) board/atmel/at91sam9m10g45ek/Makefile添加Makefile文件,將添加代碼增加到

93、代碼樹中編譯</p><p>  添加 U-boot 配置文件</p><p>  創(chuàng)建配置文件:include/configs/at91sam9m10g45ek.h</p><p>  修改全局 Makefile 文件增加開發(fā)板選項</p><p><b>  Makefile</b></p><p

94、>  +at91sam9m10g45ek_nandflash_config</p><p>  +at91sam9m10g45ek_dataflash_config</p><p>  +at91sam9m10g45ek_dataflash_cs0_config </p><p>  +at91sam9m10g45ek_config : unconfig<

95、;/p><p>  + @mkdir -p $(obj)include</p><p>  + @if [ "$(findstring _nandflash,$@)" ] ; then</p><p>  + echo "#define CFG_USE_NANDFLASH 1" >>$(obj)include

96、/config.h</p><p>  + $(XECHO) "... with environment variable in NAND FLASH"</p><p>  + echo "#define CFG_USE_AT91SAM9M10G45EK 1"</p><p>  >>$(obj)inc

97、lude/config.h </p><p><b>  + else </b></p><p>  + echo "#define CFG_USE_DATAFLASH 1" >>$(obj)include/config.h</p><p>  + $(XECHO) "... with en

98、vironment variable in SPI DATAFLASH CS0" ; \</p><p>  + echo "#define CFG_USE_AT91SAM9M10G45EK 1"</p><p>  >>$(obj)include/config.h ; \</p><p><b>  + f

99、i;</b></p><p>  + @$(MKCONFIG) -a at91sam9m10g45ek arm arm926ejs at91sam9m10g45ek</p><p>  atmel at91sam9</p><p>  4.4.1 交叉編譯U-boot</p><p>  準備好 AT91 u-boot 的源代碼

100、后, 交叉編譯 U-boot 分為兩步 : 配置和編譯。我們可以使用 arm-elf- 和 arm-Linux- ARM GCC 交叉編譯工具來編譯U-boot。</p><p>  下面是編譯 AT91sam9g45 開發(fā)板的步驟:</p><p>  make distclean</p><p>  make at91sam9g45ekes_nandflash_

101、config</p><p>  make CROSS_COMPILE=<path_to_cross-compiler/cross-compiler-prefix-></p><p>  path_to_cross-compiler當其不在你的當前設(shè)置路徑中時才需要。通常 cross-compiler-prefix- 應該是這個樣子arm-linux- or arm-elf-編

102、譯結(jié)束后將會在當前路徑生成最新的u-boot二進制可執(zhí)行文件u-boot.bin和相應的二進制ELF文件 u-boot.u-boot.bin就是我們將要下載到開發(fā)板上的二進制鏡像文件u-boot是ELF格式的二進制文件,我們可以用來調(diào)試U-boot。</p><p>  4.4.2 Linux kernel的移植</p><p>  通過和標準的Linux 2.6.25 Kernel 的

103、對比,可以發(fā)現(xiàn),其主要增加了以下的內(nèi)容:</p><p>  基于ARM 架構(gòu)增加Gold-Fish 平臺,相應增加的目錄如下:</p><p>  kernel/arch/arm/mach-goldfish</p><p>  kernel/include/asm-arm/arch-goldfish</p><p>  Gold-Fish

104、平臺采用的是ARM926T CPU 作為BaseBand 處理器, 該CPU 主頻至少為200M HZ. 采用MSM7201A CPU(ARM 11)作為主CPU, 其主頻為528MHZ.</p><p>  增加了yaffs2 FLASH 文件系統(tǒng),相應增加的目錄為:kernel/fs/yaffs2</p><p>  實際上,Android 包經(jīng)過編譯后生成的system.img 和

105、ramdisk.img 文件就是yaffs2 格式的包.</p><p>  增加了Android 的相關(guān)Driver,相應目錄為:kernel/drivers/android</p><p>  主要分為:Android IPC 系統(tǒng): Binder;Android 日志系統(tǒng): Logger;Android電源管理: Power;Android 鬧鐘管理: Alarm;Android 內(nèi)

106、存控制臺: Ram_console;Android 時鐘控制的gpio: Timed_gpio。</p><p>  增加了switch 處理, 相應的目錄為:kernel/drivers/switch/</p><p>  增加了一種新的共享內(nèi)存處理方式,相應增加的文件為:kernel/mm/ashmem.c</p><p>  其他為Linux-2.6.25 內(nèi)

107、核所做的補丁等等,例如BlueTooth,在此不做詳細分析另外GoldFish 平臺相關(guān)的驅(qū)動文件如下:</p><p> ?。?)字符輸出設(shè)備:kernel/drivers/char/goldfish_tty.c</p><p> ?。?)圖象顯示設(shè)備: (Frame Buffer) kernel/drivers/video/goldfishfb.c</p><p&g

108、t; ?。?)鍵盤輸入設(shè)備:kernel/drivers/input/keyboard/goldfish_events.c</p><p>  (4)RTC 設(shè)備:(Real Time Clock) kernel/drivers/rtc/rtc-goldfish.c</p><p> ?。?)USB Device設(shè)備:kernel/drivers/usb/gadget/android_ad

109、b.c</p><p> ?。?)SD卡設(shè)備:kernel/drivers/mmc/host/goldfish.c</p><p> ?。?)FLASH 設(shè)備:kernel/drivers/mtd/devices/goldfish_nand.c;kernel/drivers/mtd/devices/goldfish_nand_reg.h</p><p> ?。?)L

110、ED 設(shè)備:kernel/drivers/leds/ledtrig-sleep.c</p><p> ?。?)電源設(shè)備:kernel/drivers/power/goldfish_battery.c</p><p> ?。?0)音頻設(shè)備:kernel/arch/arm/mach-goldfish/audio.c</p><p>  (11)電源管理:kernel/a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論