版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、科技學(xué)院 2011 屆本科Android 系統(tǒng)在 Beagoard 上的移植專業(yè): 電子信息科學(xué)與技術(shù)指導(dǎo)教師:周 驊 學(xué)生學(xué)生學(xué)號: 072004110484中國貴陽2011 年 5 月目錄摘要IIIAbstractIV第一章 緒論11.2課題背景及國內(nèi)外情況11.2.1課題背景11.2.2國內(nèi)外情況概括21.3智能操作系統(tǒng)簡介21.3.1智能系統(tǒng)特點21.3.2智能系統(tǒng)發(fā)展趨勢31.4Android 的優(yōu)勢31.5Beagoard 開發(fā)的特點及優(yōu)勢41.6本文的主要工作5第二章移植開發(fā)概述72.1Android 的體系結(jié)構(gòu)與設(shè)計實現(xiàn)72.1.1Android 體系結(jié)構(gòu)簡介72.1.2And
2、roid 架構(gòu)圖92.1.3應(yīng)用框架(Application Frameworks)102.1.4Linux 內(nèi)核112.1.5庫類112.2Android Runtime (Android 運行時組件)122.3應(yīng)用12第三章Beagledoard 開發(fā)板133.1開發(fā)板簡介133.2Beagoard OMAP3530 介紹143.2.1OMAP3530 特性143.2.2OMAP3530 的好處15第四章系統(tǒng)移植164.1 Android 系統(tǒng).164.1.1 Android 的 API164.2移植174.2.1U-boot 的體系結(jié)構(gòu)174.3環(huán)境搭建184.4移植步驟184.4.1交
3、叉編譯U-boot204.4.2設(shè)置啟動參數(shù)204.4.3獲取 Android 源代碼214.4.4配置并編譯 Android234.4.5系統(tǒng)功能測試26第五章總結(jié)、展望30參考文獻31致謝32Android 系統(tǒng)在 Beagoard 上的移植摘要自從開發(fā)軟件Android 系統(tǒng)后,很快引起了全世界軟件社群的積極參予,由于開源 Android的移動的推出,由,出現(xiàn)了在 OEM 社會利益,也為其他定制 Android 的,如作為上網(wǎng)本,機頂盒,汽車儀表板等。該機器人可用于制作優(yōu)勢多個設(shè)備將意味著一個設(shè)備開發(fā)的應(yīng)用程序可以很容易地作出可供移植的需要以最小的另一個。而且現(xiàn)在很多公司正在或計劃推出基
4、于 Android 的智能和平板電腦。Android提供給普通開發(fā)者非常靈活的移植空間,本文先介紹智能情形,然后基于 Beagoard操作系統(tǒng)的體系結(jié)構(gòu)、特點以及國內(nèi)外的一種開放硬 件的單 板計算 機。 kernel的代碼 在高版本 包含了 SBC3530(omap3_stalker)的板型配置和初始化, OMAP3530 應(yīng)用處理器:OMAP3架構(gòu)、微處理器子系統(tǒng)、高達 720 兆赫的 ARM Cortex- A8 內(nèi)核、協(xié)處理器的NEONSIMD 的高性能圖像,音頻,有助于移植 Android 。同時提供一些簡單的 Android 功能拓展。:智能操作系統(tǒng);Android;Beagoard
5、 OMAP3530 Kit;移植Android on the transplant system in BeagoardAbstractEver sincereleased the software platform for mobile development -Android system, soon attracted the worlds active participation in the free softwarecommunity, the open-source Android platform for mobile phones launched by,there was
6、significanteresthe OEM community, Customize Android for otherembedded platforms, such as theernet, set-toxes, automobile instrument panels.The robot can be used to make advantage of multiple device platforms will meantapplications developedtransplanion to anoth Android-based sadevice can easily be m
7、ade to minimize the need for latform. And now many companies are or plan to launchtablet PCs.Android platform offers developers a very flexible to the general freedom ofmigration space, this prdescribes the system of smart phone operating systemstructure, characteristics and research situation at ho
8、me and abroad, and then an openhardware Beagoard based singoard computer. kernel verof the codeincluded in the high SBC3530 (omap3_stalker) of the plate configuration andinitialization, OMAP3530 application prosor: OMAP 3 architecture, themicroprosor subsystem, up to 720 MHz ARM Cortex - A8 core, th
9、e SocietyNEON SIMD prosors, high-performance graphics, audio, help transplant.Android. Android also provides some simple function of expanKeywords:smart phone operating system,Android;Beagtransplanionoard OMAP3530;,第一章緒論1.1 前言 現(xiàn)代迅猛發(fā)展的同時系統(tǒng)也逐漸被大眾所熟知,相應(yīng)的作系統(tǒng)也被廣泛應(yīng)用,而且其更新速度也非常的迅速?,F(xiàn)代微電子技術(shù)的發(fā)展,催生了高性能、低功耗、具有強
10、大圖形處理能力的微處理器,更使得移動設(shè)備可以搭載具有完全功能的操作系統(tǒng)。在智能領(lǐng)域,各大廠商都推出了自己獨樹一幟的智能操作系統(tǒng),其中比較突出的蘋果公司推出的操作系統(tǒng)和推出的Android操作系統(tǒng)。Android作為一個開源的智能,以其開放性和可移植性等優(yōu)勢日益受到大眾的歡迎和廠商的青睞。本文首先是對智能操作系統(tǒng)和Android做了一個相關(guān)的介紹,然后寫了一些研究方向和工作側(cè)重點。1.2課題背景及國內(nèi)外情況1.2.1課題背景2008年9月,開發(fā)的基于Linux了Android開放源代碼,釋出Android程序代碼。Android 是的開源操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序 移動工作所需
11、全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)。與開放合作開發(fā)了Android,它由由33家的聯(lián)合會。制造商、軟件商和電信業(yè)組成的推廣Andro記用戶從來沒有使用過任何基于 Android通過觀察,全球為數(shù)眾多的移動系統(tǒng)的。的目標(biāo)是讓(移動通訊)不依賴于設(shè)備甚至。出于這個目的,Android 將補充,而不會替代長期以來奉行的移動發(fā)展;通過與全球各地的制造商和移動運營商結(jié)成合作伙伴,開發(fā)既有用又有吸引力的移動服務(wù),并為之推廣。運行商T-Mobile USA在紐約正式發(fā)布第一款A(yù)ndroidT-Mobile G1,該是宏達電子代工制造,是世界第一部使用了Android操作系統(tǒng)機,它支持WCD
12、MA/HSPA網(wǎng)絡(luò),理論使用Android系統(tǒng)的智能率7.2Mbps,并支持Wi-Fi,到目前為止,已經(jīng)有多款,超過5萬個應(yīng)用程序。1.2.2國內(nèi)外情況概括Android是由Android公司(于2005年8月將Android公司收購)開發(fā),和其他幾十個公司建立了開放。在短短幾年時間里,Android的巨頭,連Steve Paul系統(tǒng)從一個菜鳥變成今日J(rèn)obs(史蒂夫)的蘋果也感到了威脅,這讓不得不為之折服。目前Android系統(tǒng)已經(jīng)發(fā)展成了由眾多終端產(chǎn)品支持的超大,而軟件應(yīng)用數(shù)量也正以難以置信的速度更新著,看來從挑起了“開源”與“封閉”爭論之日起的同時Android也開始了走向輝煌。Andr
13、oid系統(tǒng)內(nèi)核開發(fā)環(huán)境一般都是在 Windows 或 Linux 下完成的。由于Android 系統(tǒng)的開放性和性,在未來應(yīng)用必定十分廣泛。1.3智能操作系統(tǒng)簡介1.3.1智能系統(tǒng)特點其一、它具有一般的所有功能,能收發(fā),正常通話等應(yīng)用功能。其二、它具有PDA功能,其中包括PIM(個人信息管理),任務(wù)安排,瀏覽網(wǎng)頁,多應(yīng)用。其三、它具備無線接入互聯(lián)網(wǎng)能力,即3G網(wǎng)絡(luò)或者CDMA網(wǎng)絡(luò)下的CDMA等。其四、它擁有人性化特點,可根據(jù)個人喜好或需要進行擴展的功能。其五、支持第軟件,功能強大,拓展性強。其六、具備開放性的操作系統(tǒng),在這操作系統(tǒng)上,可以安裝的應(yīng)用程序,而使原有的程序得到更好的,得到無線的擴展。
14、1.3.2智能系統(tǒng)發(fā)展趨勢1.開源開源是智能發(fā)展的一個新趨勢,目前,智能廠商和運營商都宣布了自己的剛剛推出了Android 開源移動開源或產(chǎn)品。前,計劃。2.電池電池持續(xù)時間是衡量智能的一個重要標(biāo)準(zhǔn),藍(lán)牙、Wi-Fi、免提等均消耗少量的電量,所以,為使它持續(xù)時間延長,應(yīng)盡量關(guān)閉不常用的功能。3.Wi-Fi找到一塊新的Wi-Fi 4.GPS,可有效降低能耗,延長電池。GPS是目前應(yīng)用比較普遍的全球,宏達電子、RIM 和其他智能廠商均推出了支持GPS 功能機 產(chǎn)品。他不僅可以幫助用戶從A 點走到B 點,更重要的是,GPS 服務(wù)商也推出各種各樣的服務(wù)。5.安全智能著各種安全威脅,如功能鎖定、設(shè)備鎖定
15、、驗證、等等。6.多為系統(tǒng)多應(yīng)用,智能需要平衡和個人應(yīng)用所需功能。1.4Android 的優(yōu)勢一、開放性在優(yōu)勢方面,Android首先就是其開放性,開放的允許任何移動終端廠商加入到Android中來。顯著的開放性可以使其擁有的開發(fā)者,隨著用戶和應(yīng)用也將很快成熟。開發(fā)性對于Android 的發(fā)展而言,有的日益豐富,一個嶄新的利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,隨大的受益正是豐富的軟件資源。開放的也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀機。二、掙脫運營商的在過去很長的一段時間,特別是在歐美地區(qū),應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到
16、運營商的控制。自從上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、 HSDPA 這些2G至3G 移動網(wǎng)絡(luò)的逐IM 軟一步過渡和,隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談,當(dāng)你可以通過件方便地進行即時聊天時,再回想前天價的彩信和圖鈴業(yè)務(wù),就如在般?互聯(lián)網(wǎng)巨頭推動的Android 終端天生就有網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。三、豐富的硬件選擇這一點還是與Android的開放性相關(guān),由于Android 的開放性,眾多的廠商會推奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,好比你從諾基亞Symbian 風(fēng)格一下改用蘋果,同時還可將Symbian
17、中優(yōu)秀的軟件帶到不是非常方便呢?上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是四、不受任何限制的開發(fā)商Android提供給第開發(fā)商一個十分寬泛、的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,、暴力、方面的程序和如何控制正是留給Android 難題之一。五、無縫結(jié)合的應(yīng)用已經(jīng)走過10 年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,如今叱詫互聯(lián)網(wǎng)的服務(wù)如地圖、 郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android將無縫結(jié)合這些優(yōu)秀的服務(wù)。Beagoard 開發(fā)的特點及優(yōu)勢1.5Beagoard單板計算機的特點:1、完全獨立2、USB 2.0接口,DV
18、I-D接口3、SD/MMC卡+擴充4、ARM的Cortex-A8處理器5、三維(720P)6、128MB的,512MB內(nèi)存7、運行在2周,無需風(fēng)扇對于和移動開發(fā)以O(shè)MAP3530為參考,其中包含ARM的Cortex- A8的600MHz,erVR SGX530的OpenGL/ ES三維,TMS320C64x型 + DSP,256MB的LPDDR,USB2 OTG功能,JTAG接口,擴展區(qū),支持SD/ MMC卡+,1200的DMIPS。對于者而言物美價廉自己動手做高科技,有:機器人DIY的無人機(無人駕駛飛行器)DIY的平板電腦,筆記本電腦,移動能供電的計算介紹基于ARM的系統(tǒng)度,德州儀器的OM
19、AP編程,Linux,數(shù)字信號處理,3D國產(chǎn)器極低功耗的家用服務(wù)器登記的項目超過160個示意圖可供重新設(shè)計,以適應(yīng)1.6本文的主要工作Android系統(tǒng)本身是一個龐大的系統(tǒng),移植并不需要精通Android的每一個部分,需要考慮的是Android系統(tǒng)的硬件抽象層(HAL)和Linux中的相關(guān)設(shè)備驅(qū)動程序。Android系統(tǒng)的移植工作的目的是為了在特定的硬件上運行Android系統(tǒng)。移植的目的就是為了改動較小的內(nèi)容,支撐較為龐大上層的系統(tǒng)。同時由于硬件抽象層具有標(biāo)準(zhǔn)的接口,在各個不同的的實現(xiàn)中可以互相參考,雖然具體實現(xiàn)的內(nèi)容不同,但是思路類似,可以相互參考。Beagoard 是一種開放硬件的單板計
20、算機,能夠以合理的速度運行 Linux,同時保持價格低廉。其中包含一個 Texas Instruments OMAP3530 system-on-a-chip (SoC) 處理器(ARM Cortex A-8 core),最高運行頻率為 600MHz。本文對 Beagoard 開發(fā)板進行了應(yīng)用,構(gòu)建以Beagoard 開發(fā)板為,Linux 操作系統(tǒng)的開發(fā)。Andriod 系統(tǒng)內(nèi)核如何通過軟硬件編譯將系統(tǒng)內(nèi)核移植到 Beagoard 開發(fā)板上包括系統(tǒng)文件的移植。另外在移植成功后,完成一個簡單 Andriod 應(yīng)用程序開發(fā),最后對移植的效果和問試和分析。題進第一章:緒論。該章介紹Android系統(tǒng)
21、的特點,及Beag礎(chǔ)上,結(jié)合設(shè)計背景,給出本文設(shè)計內(nèi)容、課題意義。oard開發(fā)板特點功能,在此基第二章:移植開發(fā)。對Android操作系統(tǒng)作了系統(tǒng)介紹,并闡述了Android系統(tǒng)的體系結(jié)構(gòu)和設(shè)計方法。第三章:開發(fā)板簡介。介紹Beagoard開發(fā)板上的OMAP 3530相關(guān)介紹及應(yīng)用。第四章:系統(tǒng)移植。Android系統(tǒng),搭建工作環(huán)境,源代碼,對移植的步驟進行了分析。第五章:總結(jié)、展望。Android 系統(tǒng)在移植到 Beagoard 開發(fā)板的過程中,把握關(guān)鍵要點,減少工作量是一個重要的方面。從工作的角度,通常的方法為,首先要熟悉硬件抽象層的接口,其次要集成和復(fù)用已有的驅(qū)動程序,主要的工作量在硬件
22、抽象層的實現(xiàn)中。為了更好地理解和調(diào)試系統(tǒng),也應(yīng)該適當(dāng)?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。安排如下:第二章移植開發(fā)概述2.1Android 的體系結(jié)構(gòu)與設(shè)計實現(xiàn)2.1.1Android 體系結(jié)構(gòu)簡介Android作為一個移動設(shè)備的,其軟件層次結(jié)構(gòu)包括了一個操作系統(tǒng)(OS),中間件(MiddleWare)和應(yīng)用程序(Application)。根據(jù)Android的軟件框圖,其軟件層次結(jié)構(gòu)自下而上分為以下幾個層次:第一、操作系統(tǒng)層(OS)Android使用Linux2.6作為操作系統(tǒng),Linux2.6是一種標(biāo)準(zhǔn)的技術(shù),Linux也是一個開放的操作系統(tǒng)。Android對操作系統(tǒng)的使用包括和驅(qū)動程序兩部分,
23、Android的Linux為標(biāo)準(zhǔn)的Linux2.6內(nèi)核,Android要的驅(qū)動如下所示:的是需要一些與移動設(shè)備相關(guān)的驅(qū)動程序。主顯示驅(qū)動(Display Driver):常用基于Linux的幀緩沖(Frame Buffer)驅(qū)動。Flash內(nèi)存驅(qū)動(Flash Memory Driver)照相機驅(qū)動(Camera Driver):常用基于Linux的v4l(for )驅(qū)動。音頻驅(qū)動(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高級Linux聲音體系)驅(qū)動。WiFi驅(qū)動(Camera Driver):基于IEEE 802.11
24、標(biāo)準(zhǔn)的驅(qū)動程序鍵盤驅(qū)動(KeyBoard Driver)藍(lán)牙驅(qū)動(Bluetooth Driver)Binder IPC驅(qū)動: An通訊的功能。d一個特殊的驅(qū)動程序,具有單獨的設(shè)備節(jié)點,提供進程間er Management(能源管理)第二、各種庫(Libraries)和Android 運行環(huán)境(RunTime)本層次對應(yīng)一般系統(tǒng),相當(dāng)于中間件層次。Android的本層次分成兩個部分一個是各種庫,另一個是Android 運行環(huán)境。本層的內(nèi)容大多是使用C+實現(xiàn)的。在其中,各種庫包括:C庫:C語言的標(biāo)準(zhǔn)庫,這也是系統(tǒng)中一個最為底層的庫,C庫是通過Linux的系統(tǒng)調(diào)用來實現(xiàn)。多框架(MediaFram
25、eword):這部分內(nèi)容是Android多的核心部分,基于Packet個部分是音頻、(即PV)的OpenCORE,從功能上本庫一共分為兩大部分,一的回放(PlayBack),另一部分是則是音的(Recorder)。SGL:2D圖像引擎。SSL:即Secure Socket Layer位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。OpenGL ES 1.0 :本部分提供了對3D的支持。界面管理工具(Surface Management):本部分提供了對管理顯示子系統(tǒng)等功能。:一個通用的數(shù)據(jù)庫WebKit:網(wǎng)絡(luò)瀏覽器的 FreeType:位圖和矢量字體的功能。Android 的
26、各種庫一般是以系統(tǒng)中間件的形式提供的,它們均有的一個顯著特點就是與移動設(shè)備的的應(yīng)用密切相關(guān)。Android 運行環(huán)境主要指的虛擬機技術(shù)Dalvik。Dalvik虛擬機和一般JAVA虛擬機(Java VM)不同,它執(zhí)行的不是JAVA標(biāo)準(zhǔn)的字節(jié)碼(bytecode )而是Dalvik可執(zhí)行格式(.dex)中執(zhí)行文件。在執(zhí)行的過程中,每一個應(yīng)用程序即一個進程(Linux的一個Pros)。二者最大的區(qū)別在于Java VM是以基于棧的虛擬機(Stack-based),而Dalvik是基于寄存器的虛擬機(Register-based)。顯然,后者最大的好處在于可以根據(jù)硬件實現(xiàn)更大的優(yōu)化,這更適合移動設(shè)備的
27、特點。第三、應(yīng)用程序框架(Application Framework)Android的應(yīng)用程序框架為應(yīng)用程序?qū)拥拈_發(fā)者提供APIs,它實際上是一個應(yīng)用程序的框架。由于上層的應(yīng)用程序是以JAVA構(gòu)建的,因此本層次提供的首先包含了UI程序中所需要的各種控件:例如: Views (視圖組件)包括 lists(列表), grids(柵格), text boxes(文本框)等。甚至一的Web瀏覽器。一個And的應(yīng)用程序可以利用應(yīng)用程序框架中的以下幾個部分:Activity (活動)個Broadcastent Receiver (廣播意圖接收者)Service (服務(wù))Content Provider (
28、內(nèi)容提供者)第四、應(yīng)用程序(Application)Android的應(yīng)用程序主要是用戶界面(Usererface)方面的,通常以JAVA程序編寫,其中還可以包含各種資源文件(放置在res目錄中)JAVA程序及相關(guān)資源經(jīng)過編譯后,將生成一個APK包。Android本身提供了主屏幕(Home),聯(lián)系人(Contact)Phone),瀏覽器(Browers)等眾多的應(yīng)用。同時應(yīng)用程序的開發(fā)者還可以使用應(yīng)用程序框架層的API實現(xiàn)自己的程序。這也是Android開源的巨大潛力的體現(xiàn)。2.1.2Android 架構(gòu)圖下圖展示了Android操作系統(tǒng)的主要組件:3. Resource Manager(資源管
29、理器),提供對非編碼資源例如本地化字符串、圖形和布局 文件的通道。Notification Manager(通告管理 器),使應(yīng)用在狀態(tài)欄顯示自定義的警報通知。Activity Manager(行動管理器)負(fù)責(zé)管理應(yīng)用的生命周期,提供通用導(dǎo)航回退支持。2.1.4Linux 內(nèi)核Android是基于Linux內(nèi)核的操作系統(tǒng),由早期開發(fā)。Android系統(tǒng)依賴Linux2.6版,提供系統(tǒng)服務(wù):安全、內(nèi)存管理、進程管理、網(wǎng)絡(luò)組、驅(qū)動模型。內(nèi)核部分還相當(dāng)于一個介于硬件層和系統(tǒng)中其他軟件組之間的一個抽象層次。2.1.5庫類在Android系統(tǒng)中包含一套C/C+庫,這些庫類都能被Android系統(tǒng)中的不同
30、組件使用。開發(fā)者可以通過這些相應(yīng)的程序框架使用其功能,部分庫如下:(1)surface Manager(管理范圍):主要的功能是讓開發(fā)者可以去存取/顯示系統(tǒng)及管理的功能,在顯示與存取操作間的對應(yīng)、互動以及實現(xiàn)無接縫的 ZD/3D 多應(yīng)用程序之間的整合。例如:在ZD、ZD 顯示上的、疊合動作。(2) 3D libraries :基于OpenGL ES 1.0 API 的實現(xiàn); 該類庫使用硬件3D(如果硬件支持的話)或者內(nèi)置的、高度優(yōu)化的3D 軟件化的處理顯示。機制。能將硬件3D功能做最優(yōu)(3)SGL:處理有關(guān)的底層2D圖形引擎。(4)Media Libraries :基于Packets Open
31、 CORE;支持很多流格式、靜態(tài)圖形文件,其中包括MPEG4, H.264, MP3, AAC,AMR, JPG和和錄制。行音頻和PNG 的(5)FreeType :主要是用來顯示點陣圖和處理向量字形的(支持位圖和矢量字體)。(6)面向所有應(yīng)用。:是一套開放性的關(guān)聯(lián)式資料庫,能干、輕量級的關(guān)系型數(shù)據(jù)庫引擎,(7)LibWebCore : 指流行的瀏覽器引擎,可以支持Android 瀏覽器和嵌入應(yīng)用的WEB 視圖組件。(8)libc :就是一個 BSD 標(biāo)準(zhǔn) C 類庫。但是,針對 Linux化的調(diào)整。裝置進行過最佳2.2Android Runtime (Android 運行時組件)Android
32、 的類庫提供Java 類庫所提供的絕大部分功能。每個Android應(yīng)用都運行在自己已有的進程上,享有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 格式文件,這種文件在 Dalvik 虛擬機上 并運行。 在一些底層功能比如線程和低內(nèi)存管理方面,Dalvik虛擬機是依賴Linux 內(nèi)核。2.3應(yīng)用Android 將預(yù)裝一組應(yīng)
33、用程序,包括客戶端、服務(wù)、日歷日程、地圖服務(wù)、瀏覽器、聯(lián)系人和其他應(yīng)用程序。所有應(yīng)用程序都是Java 編程語言編寫的。第三章 Beagledoard 開發(fā)板3.1開發(fā)板簡介Beagoard 是一種開放硬件的單板計算機,Beagoard是一種便攜式參考版,是TI與Digi-Key(公司)共同推出的ARM開發(fā)板,具有功能強大、成本低廉、尺寸便攜等諸多優(yōu)點,目前被廣泛應(yīng)用于開源教育領(lǐng)域。Beagoard是基于TI的OMAP3處理器,又后續(xù)推出的Beagoard-xM基于TI的DM3730處理器,這兩款處理器都是ARM Cotex A8的,處理能力應(yīng)該屬于目前ARM系列的主流。BeagBeagoard
34、是一個廉價的,非常適合學(xué)習(xí)如何建立Linux和Android系統(tǒng)。oard性能也很不錯,周邊接口也非常豐富(詳細(xì)見圖)。Beagoard最大優(yōu)勢在于其豐富的開源支持。圖3.1Beagoard開發(fā)板一、Beagoard單板計算機的特點:1、完全獨立2、USB 2.0接口,DVI-D接口3、SD/MMC卡+擴充4、ARM的Cortex-A8處理器5、三維(720P)6、128MB的,512MB內(nèi)存7、運行在2周,無需風(fēng)扇 二、Beagoard社區(qū)驅(qū)動:1、門戶2、3、組4、體育館5、暑期編程mentorship Open硬件6、機會擴張和重建7、Ger bers,原理圖,物料免費提供3.2Beag
35、oard OMAP3530 介紹kernel的代碼在高版本包含了SBC3530(omap3_stalker)的板型配置和初始化,有助于移植Android 。OMAP3530的高性能應(yīng)用處理器是基于增強的OMAP3架構(gòu)。的OMAP3架構(gòu)的設(shè)計,提供最佳的一流的,圖像和圖形處理足以支持以下內(nèi)容:(1)瀏覽(2)3D(3)會議(4)高分辨率的靜態(tài)圖像(5)該器件支持次的作業(yè)系統(tǒng)(OSS)的,如:Linux、Windows CE。OMAP設(shè)備包括先進設(shè)備,最先進的電源管理的高性能移動產(chǎn)品所需的技術(shù)。還有一些子系統(tǒng)設(shè)備有:微處理器單元(MPU),基于ARM Cortex- A8的微處理器為基礎(chǔ)的子系統(tǒng)I
36、VA2。3.2.1OMAP3530 特性易于使用的音頻和基于 Da Vinci技術(shù)的數(shù)字包括各種O / S 的板級支持包和軟件更新。所有編處理器的器。此外,還器提供免費評估。申請免費軟件!OMAP3530 應(yīng)用處理器:OMAP3 架構(gòu)、微處理器子系統(tǒng)、高達 720 兆赫的ARMCortex- A8 內(nèi)核、協(xié)處理器的 NEONSIMD 的高性能圖像,音頻(IVA2.2)子系統(tǒng),520 兆赫的TMS320C64x+DSP,增強型直接器存?。‥DMA)ERVR引擎:多線程引控制器(128 個獨立頻道),硬件,新交圖形的(OMAP3530 器件);結(jié)構(gòu)基于提供 10 瓦 MP oly/秒通用,可擴充擎
37、結(jié)合的像素和頂點器功能,行業(yè)標(biāo)準(zhǔn) API 支持:OpenGLES1.1 和 2.0,OpenVG1.0。細(xì)粒度任務(wù)切換,負(fù)載平衡,和電源管理,可編程的高品質(zhì)圖像抗鋸齒,完全軟件兼容的C64x 和 ARM9,商業(yè)和擴展溫度級,先進的甚長指令字(VLIW 的)的TMS320C64x+DSP,八高度獨立的功能。3.2.2OMAP3530 的好處其中包含ARM的Cortex- A8的600MHz,er VR SGX530的OpenGL/ ES三維,TMS320C64x型 + DSP,256MB的LPDDR,USB2 OTG功能,JTAG接口,擴展區(qū),支持SD/ MMC卡+,1200的DMIPS??晒┦?/p>
38、用者隨意進行移植調(diào)試第四章 系統(tǒng)移植4.1 Android 系統(tǒng)4.1.1 Android 的 API(1)Android Manifest.xmlAndroid Manifest.xml 是系統(tǒng)的控制文件,它告訴系統(tǒng)如何處理所創(chuàng)建的所有應(yīng)用組件( 尤其是活動(Activity) ,服務(wù)(Servies),意圖(ent Reeeiver)和內(nèi)容提供者(content Provider)。舉例來說,控制文件就是把活動和要接收的意圖(的“膠水”。(2)活動ents)連接在一起活動就是一個有生命周期的對象。一個活動就是完成某些工作的代碼塊,這部分工作還可能包括對用戶 Ul 界面的顯示。不過這不是必須
39、的,有些活動從不顯示 Ul 界面。(3)視圖視圖可以將其自身繪制到屏幕上。Android 的用戶界面由一系列的視圖樹。接口都是由一組以樹的形式出現(xiàn)的視圖組成的。開發(fā)者可以通過創(chuàng)建一個新的視圖的方法來使用自定義的圖形處理技術(shù)(比如開發(fā)(4)意圖,或者是使用了不常用的用戶圖形窗口界面)。意圖是一個簡單的消息對象,它表示程序想做某事的“意圖”。比如應(yīng)用程序想要顯示一個網(wǎng)頁,那么它可以通過創(chuàng)建一個ent 實例并將其傳遞給系統(tǒng)來表示意圖瀏覽這個 URI。系統(tǒng)將定位到能處理這一eni 的代碼(在當(dāng)前情況下就是瀏覽器),并運行之。意圖也可以用于廣播系統(tǒng)范圍內(nèi)的有效事件(例如通知事件)。(5)服務(wù)服務(wù)是運行在
40、的一段代碼。它可以運行在它自己的進程,也可以運行在其他應(yīng)用程序的進程里,這取決于自身的需要.。其它的組件可以綁定到一個服務(wù)上來,通過遠(yuǎn)程過程調(diào)用(RPc)來調(diào)用這個方法。例如器的服務(wù),當(dāng)用戶退出選擇的界面時,仍然希望音樂依然可以繼續(xù),這時就可用服務(wù)來保證當(dāng)用戶界面關(guān)閉時音樂還繼續(xù)著。(6)通知通知將以小圖標(biāo)的形式呈現(xiàn)在狀態(tài)欄里,用戶通過與圖標(biāo)的交互式操來接收消息。最常見包括息、和語音郵件,但是應(yīng)用程序也可以創(chuàng)建它們自己的通知事件。(7)內(nèi)容提供者內(nèi)容提供者是用來提供對設(shè)備上數(shù)據(jù)進行。典型的例子就是使用內(nèi)容提供者來聯(lián)系人列表。應(yīng)用程序也可以使用其它程序通過內(nèi)容提供者提供的數(shù)據(jù),同時也可以定義自己
41、的內(nèi)容提供者來向其它應(yīng)用提供數(shù)據(jù)服務(wù)。4.2移植實現(xiàn) Android 系統(tǒng)移植的移植包括四個模塊:uboot、linux kernel、Android 系統(tǒng)框架、 Android 應(yīng)用程序。引導(dǎo)加載程序。包括部分。采用U-boot。Linux 內(nèi)核。特定于在固件(firmware)中的boot代碼(可選),和BootLoader 兩大板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ram disk來作為root fs。用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。是由 Android 系統(tǒng)提供。4.2.1U-boot 的體系結(jié)構(gòu)U-boot 和目錄
42、結(jié)構(gòu)類似于 linux 內(nèi)核的結(jié)構(gòu),各主要目錄包含代碼的功能為:1. board:和一些已有開發(fā)板有關(guān)的文件. 每一個開發(fā)板都以一個子目錄出現(xiàn)在當(dāng)前目錄中。common:實現(xiàn)uboot 命 令行下支持令,每一條命令都對應(yīng)一個文件。例如bootm命令對應(yīng)就是cmd bootm.c。cpu:與特定CPU 架 構(gòu)相關(guān)目錄,每一款Uboot 下 支持的CPU 在該目錄下對應(yīng)一個子目錄,比子目錄arm926ejs 就是開發(fā)板上使用的cpu的架構(gòu)目錄。disk:對磁盤的支持。doc:文檔目錄。Uboot 有非常完善的文檔,大家參考閱讀。drivers:Uboot 支持的設(shè)備驅(qū)動程序都放在該目錄,比如各種網(wǎng)
43、卡、支持CFI 的Flash、串口和USB 等。fs: 支持的文件系統(tǒng),Uboot 現(xiàn)在支持cramfs、fat、fdos、jffs2 和registerfs。8. include:Uboot 使用的頭文件,還有對各種硬件支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。該目錄下configs 目錄有與開發(fā)板相關(guān)的配置頭文件,如leopard2a.h。該目錄下的asm 目錄有與CPU 體系結(jié)構(gòu)相關(guān)的頭文件,asm 對應(yīng)的是asmarm。9. lib_x: 與體系結(jié)構(gòu)相關(guān)的庫文件。如與ARM 相關(guān)的庫放在lib_arm中。10. net:與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,BOOTP 協(xié)議、TFTP 協(xié)
44、議、RARP 協(xié)議和NFS 文件系統(tǒng)的實現(xiàn)。11. tools:生成Uboot 的工具,如:mkimage, crc 等等。4.3環(huán)境搭建(1)2臺電腦,SBC3530一臺,使用一個路由器來互相聯(lián)網(wǎng)。(2)電腦A跑XP系統(tǒng),提供TFTPD服務(wù),使用Secure CRT來登陸SBC3530的串口,使用 Source Insight來檢索kernel和android的源代碼,使用SFU提供NFS服務(wù)來在電腦AB之間進行文件共享。(3)電腦B跑Frdora13,負(fù)責(zé)編譯Android,并為SBC3530提供NFS的ROOT掛載服務(wù)。移植步驟4.41.u-boot 源代碼:U-boot 的源代碼可以從
45、上,使用的 Atmel 的源代碼直接使用。到 Atmellinux4sam由于,官網(wǎng)已經(jīng)移植成功的U-booth:/linux4sam/bin/view/Linux4SAM/U-Boot2. 添加開發(fā)板支持創(chuàng)建代碼目錄: board/atmel/at91sam9m10g45ek增加開發(fā)板的支持代碼:01、 board/atmel/at91sam9m10g45ek/nand.c添加 nandflash 的開發(fā)板讀寫支持。02、 board/atmel/at91sam9m10g45ek/led.c添加開發(fā)板的 LED 控制03、 board/atmel/at91sam9m10g45ek/at91s
46、am9m10g45ek.c添加開發(fā)板硬件資源初始化04、 board/atmel/at91sam9m10g45ek/partition.c添加 flash 分區(qū)信息+ 0 x00000000, 0 x000041FF, FLAG_PROTECT_SET, 0, Bootstrap, 18+ 0 x00004200, 0 x000083FF, FLAG_PROTECT_CLEAR, 0, Environment,+ 0 x00008400, 0 x00041+ 0 x00042000, 0 x00251+ 0 x00252000, 0 x, FLAG_PROTECT_SET, 0, U-Boot
47、, FLAG_PROTECT_CLEAR, 0, Kernel, FF, FLAG_PROTECT_CLEAR, 0, FS,05、 board/atmel/at91sam9m10g45ek/config.mk 06、 board/atmel/at91sam9m10g45ek/Makefile添加 Makefile 文件,將添加的代碼增加到代碼樹中編譯添加 u-boot 配置文件創(chuàng)建配置文件:include/configs/at91sam9m10g45ek.h修改全局 Makefile 文件增加開發(fā)板選項Makefile:+at91sam9m10g45ek_nandflash_config +
48、at91sam9m10g45ek_dataflash_config +at91sam9m10g45ek_dataflash_cs0_config +at91sam9m10g45ek_config : unconfig+ mkdir -p $(obj)include+ if $(findstring _nandflash,$) ; then + echo #define CFG_USE_NANDFLASH 1 $(obj)include/config.h ; + $(XECHO) . with environment variable in NAND FLASH ; + echo #define
49、 CFG_USE_AT91SAM9M10G45EK 1$(obj)include/config.h ; + else + echo #define CFG_USE_DATAFLASH 1 $(obj)include/config.h ; 4.4.1交叉編譯 U-boot準(zhǔn)備好 AT91 u-boot 的源代碼后, 交叉編譯 u-boot 分為兩步 : 配置和編譯??梢允褂?arm-elf- 和 arm-linux- ARM GCC 交叉編譯工具來編譯u-boot 。下面是編譯 AT91sam9g45 開發(fā)板的步驟:make distcleanmake at91sam9g45ekes_nandf
50、lash_configmakLE=的當(dāng)前設(shè)置路徑中時才需要。pilrefix- 應(yīng)該是這個樣子 arm-linux- or arm-elf-通常編譯結(jié)束后將會在當(dāng)前路徑生成最新的u-boot 二進制可執(zhí)行文件 u-boot.bin和相應(yīng)的二進制 ELF 文件 u-boot.u-boot.bin 就是u-boot 是 ELF 格式的二進制文件,要到開發(fā)板上的二進制鏡像文件可以用來調(diào)試 u-boot4.4.2設(shè)置啟動參數(shù)U - Boot 的環(huán)境變量驅(qū)動過程- prenvlists 所有包膜增值經(jīng)銷商- bootargslists 所有內(nèi)核參數(shù)- bootcmdis 默認(rèn)的啟動命令-可以自定義不同的
51、啟動設(shè)置- saveenvsaves 變量閃存下次開機設(shè)置代碼如下:setenv bootargs console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootwaitsetenv bootcmd mmcinit; foad mmc 0 80200000 uImage; bootm 80200000復(fù)雜的啟動可以調(diào)用儲存并開機- boot.scrinvoked默認(rèn)情況下,看到包膜varloadbootscript4.4.3獲取 Android 源代碼1. 需要安裝的軟件工具須保證 linux 已經(jīng)安裝了以下工具: 必須的軟件包:o Git 1.5.4 o
52、r newer and the GNU Privacy Guard.o JDK 5.0.18o flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl,genext2fs使用以下命令安裝這些軟件包#sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip cur
53、l libncurses5-dev zlib1g-dev genext2fs可以選擇安裝 Valgrind, 一個幫助查找內(nèi)存泄露的工具,#sudo apt-get install valgrind需要最新版本的 libreadline:#sudo apt-get install lib32readline5-dev2. 添加環(huán)境變量 在的主目錄里有一個 /bin 目錄將其添加到的path 變量里面:# cd # mkdir bin# echo $PATH將以下變量加入到bashrc。export LANG=cexport JAVA_HOME=/usr/local/lib/jdk1.5.0_1
54、8export PATH=$JAVA_HOME/bin:/home/tom/bin:$PATH: export ANDROID_JAVA_HOME=$JAVA_HOME重啟終端使 /.bashrc 生效。3. 安裝 RepoRepo 一個使Android 源碼管理更為方便的工具,安裝和配置并賦予可執(zhí)行權(quán)限:Repo:# cd # curlRepo/bin/repo#od a+x /bin/repo4. 初始化 Repo 新建一個目錄放置# mkdir mydroid # cd mydroid的工作代碼: 運行 repo init最新版本的 Repo 和更新,這里需要一個地址:# repo in
55、it -u git:/android.git.kernel.Android-2.0.1_r1成功的初始化后將會出現(xiàn)以下信息:/platform/manifest.git b#repo initialized in /mydroid5. 獲取源碼運行一下命令:# reync這一步需要較長的時間,如果中途停止可以結(jié)束當(dāng)前命令,從新運行一次。6. 獲取 ALSA 源碼文件用以下命令獲得 ALSA 的源代碼:cd mydroid/hardwaregit clone git:/android.git.kernel. cd mydroid/externalgit clone git:/android.gi
56、t.kernel.git clone git:/android.git.kernel./platform/hardware/alsa_sound.git/platform/external/alsa-lib.git/platform/external/alsa-utils.git在 U-boot 和 linux kernel 正常移植的情況下,可以直接編譯Android進行運行:以下修改是確保正確運行在新的而不受源代碼的干擾:+ build/board/generic/BoardConfig.mk (working copy) -7,5 +7,7 _NO_BOOTLOADER := true_
57、NO_KERNEL := true_CPU_ABI := armeabi-E_HTC_AUDIO_DRIVER := true-BOARD_USES_GENERIC_AUDIO := true+#E_HTC_AUDIO_DRIVER := true+#BOARD_USES_GENERIC_AUDIO := true+BOARD_USES_ALSA_AUDIO := true+BUILD_WITH_ALSA_UTILS := true4.4.4配置并編譯 Android配置編譯器環(huán)境:make cleansource build/envsetup.sh bo選擇 Device-release-g
58、eneric-eng 配置完成后,終端顯示:PLATFORM_VERPLATFORM_VER_CODENAME=Eclair=Eclair_PRODUCT=generic_BUILD_VARIANT=eng_SIMULATOR=false_BUILD_TYPE=release_ARCH=arm HOST_ARCH=x86HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=ECLAIR 編譯需要注意的是 Android 的編譯需要 make 的版本為 3.8 或更高。執(zhí)行:make v查看系統(tǒng)的 make 版本,如果低于 3.8 那么必須先升級 make
59、 命令的版本。執(zhí)行 make 命令,編譯 Android 源代碼:makeAndroid 編譯完成后,將在根目錄中生成一個out文件夾,所有生成的Android代碼結(jié)構(gòu)內(nèi)容均放置在這個文件夾中。out文件夾如下所示:1. out/|- CaseCheck.txt|- casecheck.txt|- host|- common| - linux-x86|-|- common| - product主要的兩個目錄為host 和認(rèn)為ARMv5)運行的內(nèi)容。 host目錄的結(jié)構(gòu)如下所示:1. out/host/| - common|- obj (JAVA 庫),前者表示在主機(x86)生成的工具,后者表
60、示目標(biāo)機(默| - linux-x86| - bin (二進制程序)|- framework (JAVA 庫,*.jar 文件)|- lib (共享庫*.so)| - obj (中間生成的目標(biāo)文件)host 目錄是一些在主機上用的工具,有一些是二進制程序,有一些是JAVA的程序。目錄的Android 代碼結(jié)構(gòu)如下所示:1. out/|- common/|- R (資源文件)|- docs|- obj (目標(biāo)文件)|- product| - generic其中common 目錄表示通用的內(nèi)容,product 中則是針對產(chǎn)品的內(nèi)容。在common 目錄的obj 中,包含兩個主要的目錄:APPS 中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食堂承包租賃協(xié)議規(guī)范3篇
- 2025版蟲草產(chǎn)業(yè)鏈上下游企業(yè)戰(zhàn)略合作合同范本3篇
- 鄭州經(jīng)貿(mào)學(xué)院《金屬材料成形基礎(chǔ)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版運動場館租賃合同范本版B版
- 2024建筑工程砌墻合同范本
- 2024年適用電子廣告屏出租協(xié)議模板版B版
- 電力電氣行業(yè)員工需求
- 設(shè)備潤滑知識培訓(xùn)課件
- 2025年生態(tài)保護區(qū)場地硬化與生態(tài)保護工程合同2篇
- 2024年高標(biāo)準(zhǔn)變形縫安裝工程承包協(xié)議版B版
- 主體結(jié)構(gòu)驗收匯報材料T圖文并茂
- 過一個有意義的寒假課件
- 施工現(xiàn)場裝配式集裝箱活動板房驗收表
- 電力業(yè)擴工程竣工驗收單
- 三年級上冊口算題(1000道打印版)
- 安全保護區(qū)巡查管理規(guī)定
- 藥物性肝損傷藥物治療
- 2021年12月醫(yī)院臨床藥師培訓(xùn)理論考核試題(心血管專業(yè))
- 科目一考試成績表
- 噴塑特殊過程能力確認(rèn)記錄1
- 內(nèi)蒙古自治區(qū)建設(shè)工程費用定額2009年版
評論
0/150
提交評論