Android系統(tǒng)架構(gòu)、開(kāi)發(fā)環(huán)境搭建及啟動(dòng)流程分析解析課件_第1頁(yè)
Android系統(tǒng)架構(gòu)、開(kāi)發(fā)環(huán)境搭建及啟動(dòng)流程分析解析課件_第2頁(yè)
Android系統(tǒng)架構(gòu)、開(kāi)發(fā)環(huán)境搭建及啟動(dòng)流程分析解析課件_第3頁(yè)
Android系統(tǒng)架構(gòu)、開(kāi)發(fā)環(huán)境搭建及啟動(dòng)流程分析解析課件_第4頁(yè)
Android系統(tǒng)架構(gòu)、開(kāi)發(fā)環(huán)境搭建及啟動(dòng)流程分析解析課件_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 Android系統(tǒng)結(jié)構(gòu)及平臺(tái)搭建 Android系統(tǒng)結(jié)構(gòu)及平臺(tái)搭建Android系統(tǒng)結(jié)構(gòu)Android開(kāi)發(fā)環(huán)境搭建Android啟動(dòng)流程分析Android系統(tǒng)結(jié)構(gòu)Android開(kāi)發(fā)環(huán)境搭建AnAndroid系統(tǒng)結(jié)構(gòu)Android系統(tǒng)結(jié)構(gòu)Android系統(tǒng)結(jié)構(gòu)基于Linux的自由及開(kāi)源的操作系統(tǒng)。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā)。2008年10月 第一部Android智能手機(jī)發(fā)布。2011年第1季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。 2012年11月,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)76%的份額,中國(guó)市場(chǎng)占有率為90%。2013年09

2、月24日谷歌開(kāi)發(fā)的操作系統(tǒng)Android迎來(lái)了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái)。目前最流行的智能手機(jī)開(kāi)發(fā)平臺(tái),現(xiàn)已普及到平板電腦、游戲機(jī)、數(shù)碼相機(jī)、OTT機(jī)頂盒、智能電視等各終端產(chǎn)品。Android系統(tǒng)結(jié)構(gòu)基于Linux的自由及開(kāi)源的操作系統(tǒng)。Android系統(tǒng)結(jié)構(gòu)一個(gè)好的開(kāi)發(fā)平臺(tái)一定有一個(gè)成熟、穩(wěn)定的系統(tǒng)架構(gòu)來(lái)支撐Android平臺(tái)系統(tǒng)結(jié)構(gòu)從上到下分為四層:應(yīng)用層框架層系統(tǒng)運(yùn)行庫(kù)Linux內(nèi)核層Android系統(tǒng)結(jié)構(gòu)一個(gè)好的開(kāi)發(fā)平臺(tái)一定有一個(gè)成熟、穩(wěn)定的Android系統(tǒng)架構(gòu)、開(kāi)發(fā)環(huán)境搭建及啟動(dòng)流程分析解析課件Android系統(tǒng)結(jié)構(gòu)應(yīng)用層Android不僅僅是操作系統(tǒng),

3、也包含了許多應(yīng)用程序,如SMS短信客戶端程序、電話撥號(hào)程序、圖片瀏覽器、Web瀏覽器等。用Java語(yǔ)言編寫(xiě),基于框架層API實(shí)現(xiàn)??杀婚_(kāi)發(fā)人員開(kāi)發(fā)的其他應(yīng)用程序替換。Android系統(tǒng)結(jié)構(gòu)應(yīng)用層Android系統(tǒng)結(jié)構(gòu)框架層可重用的軟件組件,簡(jiǎn)化應(yīng)用程序的開(kāi)發(fā),向應(yīng)用提供API。Activity Manager(活動(dòng)管理器)管理各個(gè)應(yīng)用程序生命周期以及通常的導(dǎo)航回退功能Window Manager(窗口管理器)管理所有的窗口程序Content Provider(內(nèi)容提供器)使得不同應(yīng)用程序之間存取或者分享數(shù)據(jù) View System(視圖系統(tǒng))構(gòu)建應(yīng)用程序的基本組件 Notification M

4、anager(通告管理器) 使應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息Package Manager(包管理器) Android系統(tǒng)內(nèi)的程序管理Resource Manager(資源管理器)提供應(yīng)用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等Android系統(tǒng)結(jié)構(gòu)框架層Android系統(tǒng)結(jié)構(gòu)系統(tǒng)運(yùn)行庫(kù)層系統(tǒng)庫(kù):連接框架層與Linux內(nèi)核層的重要紐帶,框架層的支撐Surface Manager:負(fù)責(zé)管理顯示與存取操間互動(dòng),負(fù)責(zé)2D與3D繪圖Media Framework:多媒體庫(kù),支持常用的音頻、視頻格式錄制和回放SQLite: 小型的關(guān)系型數(shù)據(jù)庫(kù)引擎 OpenGL|E

5、S:根據(jù)OpenGL ES 1.0API標(biāo)準(zhǔn)實(shí)現(xiàn)的3D繪圖函數(shù)庫(kù) WebKit:網(wǎng)頁(yè)瀏覽器的軟件引擎SSL:在Andorid上通信過(guò)程中實(shí)現(xiàn)握手 Libc:從BSD繼承的標(biāo)準(zhǔn)C系統(tǒng)庫(kù),為基于embedded linux的設(shè)備定制核心庫(kù):提供了Java語(yǔ)言API中的大多數(shù)功能,同時(shí)也包含了Android的一些核心API,如android.os、android.media等等。Dalvik虛擬機(jī):一種基于寄存器的Java虛擬機(jī),而不是傳統(tǒng)的基于棧的虛擬機(jī)。每個(gè)Android程序都有一個(gè)Dalivik虛擬機(jī)的實(shí)例,并在該實(shí)例中執(zhí)行。Dalvik虛擬機(jī)進(jìn)行了內(nèi)存資源使用的優(yōu)化,執(zhí)行.dex文件Andr

6、oid系統(tǒng)結(jié)構(gòu)系統(tǒng)運(yùn)行庫(kù)層Android系統(tǒng)結(jié)構(gòu)Linux內(nèi)核層Android是基于Linux2.6內(nèi)核,其核心系統(tǒng)服務(wù)如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)路協(xié)議以及驅(qū)動(dòng)模型都依賴于Linux內(nèi)核。除Linux標(biāo)準(zhǔn)驅(qū)動(dòng)外,需要一些專有驅(qū)動(dòng),如Binder、Log、Ashmem等Android系統(tǒng)結(jié)構(gòu)Linux內(nèi)核層Android系統(tǒng)版本發(fā)布日期版本號(hào)代號(hào)重大變化2008.91.12009.41.5Cupcake 紙杯蛋糕屏幕虛擬鍵盤(pán)2009.91.6Donut 甜甜圈2009.102.0/.1Eclair 松餅動(dòng)態(tài)桌面、HTML52010.52.2/2.2.1Froyo 凍酸奶3G網(wǎng)絡(luò)、Flash

7、支持2010.122.3/2.4Gingerbread 姜餅NFC2011.23.0/3.1/3.2Honeycomb 蜂巢針對(duì)平板進(jìn)行優(yōu)化,F(xiàn)ragment2011.104.0Ice Cream Sandwich冰激凌三明治全新UI2012.64.1Jelly Bean果凍豆2012.104.2Jelly Bean 果凍豆支持Miracast無(wú)線顯示共享功能待定4.4Kit Kat 奇巧巧克力Android系統(tǒng)版本發(fā)布日期版本號(hào)代號(hào)重大變化2008.9Android系統(tǒng)優(yōu)勢(shì)完全開(kāi)放的系統(tǒng),吸引越來(lái)越多的廠家和消費(fèi)者,將催生眾多硬件支持和程序選擇無(wú)縫結(jié)合Google應(yīng)用,如Google地圖、郵

8、件、搜索等互聯(lián)網(wǎng)的重要服務(wù)。開(kāi)源軟件系統(tǒng),功能強(qiáng)大,支持眾多軟件,如Webkit瀏覽器、播放器、FLASH等。高效的JAVA虛擬機(jī)Dalvik,支持JAVA,速度快。Android系統(tǒng)優(yōu)勢(shì)完全開(kāi)放的系統(tǒng),吸引越來(lái)越多的廠家和消Android系統(tǒng)劣勢(shì) 版本更新快,如何保持前后兼容 完全開(kāi)發(fā)的系統(tǒng),如何保持不同廠家之間兼容Android系統(tǒng)劣勢(shì) 版本更新快,如何保持前后兼容Android系統(tǒng)開(kāi)發(fā)涉及三個(gè)層次: Android系統(tǒng)移植開(kāi)發(fā) 芯片廠家會(huì)提供基于其樣板的SDK,拿到其樣板及SDK后,需要針對(duì)我司的具體硬件及產(chǎn)品業(yè)務(wù)做如下工作:fastboot移植(DDR參數(shù)/啟動(dòng)流程)、Recovery

9、、設(shè)備驅(qū)動(dòng)、工廠菜單、媒體播放、音視頻兼容性等 Android子系統(tǒng)開(kāi)發(fā) 涉及到系統(tǒng)各個(gè)層次:封裝硬件抽象層、增加C/C+本地業(yè)務(wù)庫(kù)、定義Java層所需要的類、將本地業(yè)務(wù)庫(kù)的功能接口封裝成JNI、結(jié)合Java類和JNI、提供應(yīng)用程序調(diào)用的Java框架類等 Android應(yīng)用程序開(kāi)發(fā) 根據(jù)具體產(chǎn)品的業(yè)務(wù)需求定制開(kāi)發(fā)特定apk eclipse環(huán)境搭建、系統(tǒng)調(diào)試(Logcat、DDMS等)Android系統(tǒng)開(kāi)發(fā)涉及三個(gè)層次:Android目錄結(jié)構(gòu)Android目錄結(jié)構(gòu)Android開(kāi)發(fā)環(huán)境搭建Android開(kāi)發(fā)環(huán)境搭建Android應(yīng)用開(kāi)發(fā)環(huán)境搭建Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建Android應(yīng)用開(kāi)發(fā)

10、環(huán)境搭建Android系統(tǒng)開(kāi)發(fā)環(huán)境Android應(yīng)用開(kāi)發(fā)環(huán)境搭建Android應(yīng)用開(kāi)發(fā)環(huán)境搭建Android應(yīng)用開(kāi)發(fā)環(huán)境搭建 JDK安裝 /downloads/下載最新jdk并安裝 Eclipse安裝 /downloads下載最新eclipse并安裝,亦可拷貝已經(jīng)安裝好的eclipse使用 Android SDK安裝 /downloads下載Android SDK,直接解壓運(yùn)行SDK Setup.exe,點(diǎn)擊Available Packages。如沒(méi)出現(xiàn)可安裝包,點(diǎn)擊Settings,選中Misc中的“Force https:/.”這項(xiàng),再點(diǎn)擊Available Packages。選擇希望安裝

11、的SDK及其文檔或其它包,開(kāi)始下載安裝所選包。 國(guó)內(nèi)已屏蔽了Android,下載經(jīng)常失敗,可拷貝已經(jīng)安裝好的直接使用 ADT安裝 打開(kāi) Eclipse IDE,進(jìn)入菜單中的 “Help” - “Install New Software”,點(diǎn)擊Add.按鈕,彈出對(duì)話框要求輸入Name和Location:Name自己取,Location輸入/android/eclipse。確定返回后,勾選DDMS、Development Tool,安裝。完成后選擇Window Preferences.在左邊的面板選擇Android,然后在右側(cè)點(diǎn)擊Browse.并選中SDK路徑 可選擇已經(jīng)安裝好的同事拷貝使用 創(chuàng)建

12、AVD 為使Android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建AVD。在Eclipse中。選擇Windows Android SDK and AVD Manager進(jìn)行創(chuàng)建Android應(yīng)用開(kāi)發(fā)環(huán)境搭建 JDK安裝Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建Android系統(tǒng)開(kāi)發(fā)環(huán)境要求:操作系統(tǒng):Ubuntu(版本號(hào)=10.04) 硬盤(pán)空間:10GB JDK 版本:1.6(根據(jù)android版本而定)Python 版本:2.42.7 Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建Android系統(tǒng)開(kāi)發(fā)環(huán)境要求Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝依賴包:64位機(jī)器:

13、 $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g+-multilib mingw32 tofrodos 32位機(jī)器: $ sudo apt-get install git-core gnupg flex bison gperf buil

14、d-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev tofrodos Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝依賴包:Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝JDK:步驟 1 更新安裝包 $ sudo apt-get update 步驟 2 安裝 jdk 1.6 $ sudo apt-get install sun-java6-jdk 用戶按提示操作即可。 步驟 3 檢查安裝結(jié)果 確認(rèn)JDK 版本號(hào)正確 $ java -version java vers

15、ion 1.6.0_26 Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝JDK:Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝python:python工具的安裝: $ sudo apt-get install python Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝python:Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝交叉編譯工具鏈(hisilicon) 當(dāng)?shù)谝淮文玫胶K奸_(kāi)發(fā)包,或遇到發(fā)布包中交叉編譯

16、工具鏈的版本更新時(shí),需重新安裝編譯工具鏈交叉編譯工具鏈:arm-hisiv200-linux 在交叉工具鏈安裝包目錄下執(zhí)行命令:./cross.install Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建安裝交叉編譯工具鏈(hisilAndroid系統(tǒng)開(kāi)發(fā)環(huán)境搭建編譯源碼(hisilicon)解壓海思提供的開(kāi)發(fā)包進(jìn)入解壓后的目錄,設(shè)置編譯環(huán)境 /home/work/ics $ source build/envsetup.sh /home/work/ics $ lunch full_godbox-eng 編譯環(huán)境只需設(shè)置一次即可進(jìn)行多次編譯。但切換 shell 環(huán)境,則需要重新設(shè)置。編譯 /home/work

17、/ics $ ./mk-all.sh 4(并發(fā)線程數(shù),根據(jù)服務(wù)器性能自行調(diào)整)Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建編譯源碼(hisilicon)Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建編譯后在out目錄下會(huì)生成二進(jìn)制文件: outtargetproductgodbox: userdata.ics.yaffs2_xkyb system.ics.yaffs2_xkyb recovery.img kernel x 表示NAND FLASH的頁(yè)大小page size (bytes為單位) y 表示ECC 校驗(yàn)位數(shù) 目前板子配置是2k1bAndroid系統(tǒng)開(kāi)發(fā)環(huán)境搭建編譯后在out目錄下會(huì)生成二進(jìn)Android系統(tǒng)開(kāi)發(fā)

18、環(huán)境搭建 燒寫(xiě)Flash將bootablebootloaderfastboot3.0fastboot_burn目錄拷貝出來(lái),里面包含燒錄工具FastBoot3.1.8.exe準(zhǔn)備好tftp升級(jí)工具,并將編譯源碼中生成的文件拷貝到tftp升級(jí)工具所指向的目錄下準(zhǔn)備板子及串口線,準(zhǔn)備進(jìn)行燒錄Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建 Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建 燒寫(xiě)u-bootAndroid系統(tǒng)開(kāi)發(fā)環(huán)境搭建 Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建 燒寫(xiě)kernel及system等使用李鐵柱發(fā)布的tftp工具,將kernel及system、userdata、recovery等按照劃分的各個(gè)分區(qū)的Flash地址進(jìn)行燒

19、錄。參考分區(qū)如下:Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建 Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建 配置bootargs進(jìn)入u-boot,在串口下輸入如下命令:set bootcmd nand read 82000000 2e00000 a00000; bootm 0 x82000000set appargs mem=764M vmalloc=600M console=ttyAMA0,115200 mtddev=blackbox androidboot.console=ttyAMA0 mtdparts=hinand:1024K(fastboot),512K(bootargs),512K(envback),512

20、K(cfg),512K(cfgback),3840K(recovery),128K(deviceinfo),128K(baseparam),4M(logo),4M(fastplay),30M(cache),1M(misc),10M(kernel),180M(system),128M(userdata),10M(commondata),1M(blackbox),136M(sdcard)set recoverybootargs mem=808M console=ttyAMA0,115200 mtdparts=hinand:1024K(fastboot),512K(bootargs),512K(en

21、vback),512K(cfg),512K(cfgback),3840K(recovery),128K(deviceinfo),128K(baseparam),4M(logo),4M(fastplay),30M(cache),1M(misc),10M(kernel),180M(system),128M(userdata),10M(commondata),1M(blackbox),136M(sdcard)save燒錄成功,重啟機(jī)頂盒即可啟動(dòng)Android系統(tǒng)開(kāi)發(fā)環(huán)境搭建 Android開(kāi)發(fā)環(huán)境搭建至此,Android開(kāi)發(fā)環(huán)境搭建成功。參考文檔:Android開(kāi)發(fā)環(huán)境搭建至此,Android開(kāi)發(fā)環(huán)境搭建成Android系統(tǒng)啟動(dòng)流程分析Android系統(tǒng)啟動(dòng)流程分析Android啟動(dòng)流程分析Android啟動(dòng)流程分析Android啟動(dòng)流程Android從Linux系統(tǒng)啟動(dòng)有4個(gè)步驟;Init進(jìn)程啟動(dòng)Native服務(wù)啟動(dòng)System Se

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論