Android系統(tǒng)架構開發(fā)環(huán)境搭建及啟動流程_第1頁
Android系統(tǒng)架構開發(fā)環(huán)境搭建及啟動流程_第2頁
Android系統(tǒng)架構開發(fā)環(huán)境搭建及啟動流程_第3頁
Android系統(tǒng)架構開發(fā)環(huán)境搭建及啟動流程_第4頁
Android系統(tǒng)架構開發(fā)環(huán)境搭建及啟動流程_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Android系統(tǒng)結構及平臺搭建Android系統(tǒng)結構

Android開發(fā)環(huán)境搭建

Android啟動流程分析Android系統(tǒng)結構Android系統(tǒng)結構基于Linux的自由及開源的操作系統(tǒng)。Android操作系統(tǒng)最初由AndyRubin開發(fā)。2008年10月

第一部Android智能手機發(fā)布。2011年第1季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年11月,Android占據全球智能手機操作系統(tǒng)市場76%的份額,中國市場占有率為90%。2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android迎來了5歲生日,全世界采用這款系統(tǒng)的設備數(shù)量已經達到10億臺。目前最流行的智能手機開發(fā)平臺,現(xiàn)已普及到平板電腦、游戲機、數(shù)碼相機、OTT機頂盒、智能電視等各終端產品。Android系統(tǒng)結構一個好的開發(fā)平臺一定有一個成熟、穩(wěn)定的系統(tǒng)架構來支撐Android平臺系統(tǒng)結構從上到下分為四層:應用層框架層系統(tǒng)運行庫Linux內核層Android系統(tǒng)結構應用層Android不僅僅是操作系統(tǒng),也包含了許多應用程序,如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等。用Java語言編寫,基于框架層API實現(xiàn)。可被開發(fā)人員開發(fā)的其他應用程序替換。Android系統(tǒng)結構框架層可重用的軟件組件,簡化應用程序的開發(fā),向應用提供API。ActivityManager(活動管理器)管理各個應用程序生命周期以及通常的導航回退功能WindowManager(窗口管理器)管理所有的窗口程序ContentProvider(內容提供器)使得不同應用程序之間存取或者分享數(shù)據ViewSystem(視圖系統(tǒng))構建應用程序的基本組件NotificationManager(通告管理器)使應用程序可以在狀態(tài)欄中顯示自定義的提示信息PackageManager(包管理器)Android系統(tǒng)內的程序管理ResourceManager(資源管理器)提供應用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等Android系統(tǒng)結構系統(tǒng)運行庫層系統(tǒng)庫:連接框架層與Linux內核層的重要紐帶,框架層的支撐SurfaceManager:負責管理顯示與存取操間互動,負責2D與3D繪圖MediaFramework:多媒體庫,支持常用的音頻、視頻格式錄制和回放SQLite:小型的關系型數(shù)據庫引擎OpenGL|ES:根據OpenGLES1.0API標準實現(xiàn)的3D繪圖函數(shù)庫WebKit:網頁瀏覽器的軟件引擎SSL:在Andorid上通信過程中實現(xiàn)握手Libc:從BSD繼承的標準C系統(tǒng)庫,為基于embeddedlinux的設備定制核心庫:提供了Java語言API中的大多數(shù)功能,同時也包含了Android的一些核心API,如android.os、、android.media等等。Dalvik虛擬機:一種基于寄存器的Java虛擬機,而不是傳統(tǒng)的基于棧的虛擬機。每個Android程序都有一個Dalivik虛擬機的實例,并在該實例中執(zhí)行。Dalvik虛擬機進行了內存資源使用的優(yōu)化,執(zhí)行.dex文件Android系統(tǒng)結構Linux內核層Android是基于Linux2.6內核,其核心系統(tǒng)服務如安全性、內存管理、進程管理、網路協(xié)議以及驅動模型都依賴于Linux內核。除Linux標準驅動外,需要一些專有驅動,如Binder、Log、Ashmem等Android系統(tǒng)版本本發(fā)布日期版本號代號重大變化2008.91.1

2009.41.5Cupcake紙杯蛋糕屏幕虛擬鍵盤2009.91.6Donut甜甜圈

2009.102.0/.1Eclair松餅動態(tài)桌面、HTML52010.52.2/2.2.1Froyo凍酸奶3G網絡、Flash支持2010.122.3/2.4Gingerbread姜餅NFC2011.23.0/3.1/3.2Honeycomb蜂巢針對平板進行優(yōu)化,F(xiàn)ragment2011.104.0IceCreamSandwich冰激凌三明治全新UI2012.64.1JellyBean果凍豆

2012.104.2JellyBean果凍豆支持Miracast無線顯示共享功能待定4.4KitKat奇巧巧克力

Android系統(tǒng)優(yōu)勢完全開放的系系統(tǒng),吸引越越來越多的廠廠家和消費者者,將催生眾眾多硬件支持持和程序選擇擇無縫結合Google應用,如Google地圖、郵件、、搜索等互聯(lián)聯(lián)網的重要服服務。開源軟件系統(tǒng)統(tǒng),功能強大大,支持眾多多軟件,如Webkit瀏覽器、播放放器、FLASH等。高效的JAVA虛擬機Dalvik,支持JAVA,速度快。Android系統(tǒng)劣勢版本更新快,,如何保持前前后兼容完全開發(fā)的系系統(tǒng),如何保保持不同廠家家之間兼容Android系統(tǒng)開發(fā)涉及三個層次次:Android系統(tǒng)移植開發(fā)發(fā)芯片廠家會提提供基于其樣樣板的SDK,拿到其樣板板及SDK后,需要針對對我司的具體體硬件及產品品業(yè)務做如下下工作:fastboot移植(DDR參數(shù)/啟動流程)、、Recovery、設備驅動、、工廠菜單、、媒體播放、、音視頻兼容容性等Android子系統(tǒng)開發(fā)涉及到系統(tǒng)各各個層次:封封裝硬件抽象象層、增加C/C++本地業(yè)務庫、、定義Java層所需要的類類、將本地業(yè)業(yè)務庫的功能能接口封裝成成JNI、結合Java類和JNI、提供應用程程序調用的Java框架類等Android應用程序開發(fā)發(fā)根據具體產品品的業(yè)務需求求定制開發(fā)特特定apkeclipse環(huán)境搭建、系系統(tǒng)調試(Logcat、DDMS等)Android目錄結構構Android開發(fā)環(huán)境境搭建Android應用開發(fā)發(fā)環(huán)境搭建Android系統(tǒng)統(tǒng)開發(fā)環(huán)境搭搭建Android應用開發(fā)發(fā)環(huán)境搭建Android應用開發(fā)發(fā)環(huán)境搭建Android系統(tǒng)開發(fā)發(fā)環(huán)境搭建Android系統(tǒng)開發(fā)發(fā)環(huán)境搭建Android系統(tǒng)開發(fā)發(fā)環(huán)境要求::操作系統(tǒng):Ubuntu(版本號>=10.04)硬盤空間:10GBJDK版本本:1.6((根據android版版本而定)Python版本:2.4~2.7Android系統(tǒng)開發(fā)發(fā)環(huán)境搭建安裝依賴包::64位機器::$sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essential\zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\libgl1-mesa-devg++-multilibmingw32tofrodos32位機器::$sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essential\zipcurlzlib1g-devlibc6-devlibncurses5-dev\x11proto-core-devlibx11-dev\libgl1-mesa-devtofrodosAndroid系統(tǒng)開發(fā)發(fā)環(huán)境搭建安裝JDK::步驟1更更新安裝包包$sudoapt-getupdate步驟2安安裝jdk1.6$sudoapt-getinstallsun-java6-jdk用戶按提示操操作即可。步驟3檢檢查安裝結結果確認JDK版版本號正確確$java-versionjavaversion"1.6.0_26"Java(TM)SERuntimeEnvironment(build1.6.0_26-b03)JavaHotSpot(TM)64-BitServerVM(build20.1-b02,mixedmode)Android系統(tǒng)開發(fā)發(fā)環(huán)境搭建安裝python:python工具的安裝裝:$sudoapt-getinstallpythonAndroid系統(tǒng)開發(fā)發(fā)環(huán)境搭建安裝交叉編譯譯工具鏈(hisilicon)當?shù)谝淮文玫降胶K奸_發(fā)包包,或遇到發(fā)發(fā)布包中交叉叉編譯工具鏈鏈的版本更新新時,需重新新安裝編譯工工具鏈交叉編譯工具具鏈:arm-hisiv200-linux在交叉工具鏈鏈安裝包目錄錄下執(zhí)行命令令:./cross.installAndroid系統(tǒng)開發(fā)發(fā)環(huán)境搭建編譯源碼(hisilicon)解壓海思提供供的開發(fā)包進入解壓后的的目錄,設置置編譯環(huán)境/home/work/ics$sourcebuild/envsetup.sh/home/work/ics$lunchfull_godbox-eng編譯環(huán)境只需需設置一次即即可進行多次次編譯。但切切換shell環(huán)境境,則需要重重新設置。編譯/home/work/ics$./mk-all.sh4(并發(fā)線程數(shù)數(shù),根據服務務器性能自行行調整)Android系統(tǒng)開發(fā)發(fā)環(huán)境搭建編譯后在out目錄下會會生成二進制制文件:out\target\product\godbox::recovery.imgkernelx表示NANDFLASH的頁頁大小pagesize(bytes為單單位)y表示ECC校驗位位數(shù)目前板子配置置是2k1bAndroid系統(tǒng)開發(fā)發(fā)環(huán)境搭建燒燒寫Flash將bootable\bootloader\fastboot3.0\fastboot_burn目錄錄拷拷貝貝出出來來,,里里面面包包含含燒燒錄錄工工具準備備好好tftp升升級級工工具具,,并并將將編編譯譯源源碼碼中中生生成成的的文文件件拷拷貝貝到到tftp升升級級工工具具所所指指向向的的目目錄錄下下準備備板板子子及及串串口口線線,,準準備備進進行行燒燒錄錄Android系系統(tǒng)統(tǒng)開開發(fā)發(fā)環(huán)環(huán)境境搭搭建建燒燒寫寫u-bootAndroid系系統(tǒng)統(tǒng)開開發(fā)發(fā)環(huán)環(huán)境境搭搭建建燒燒寫寫kernel及及system等等使用用李李鐵鐵柱柱發(fā)發(fā)布布的的tftp工工具具,,將將kernel及及system、、userdata、、recovery等等按按照照劃劃分分的的各各個個分分區(qū)區(qū)的的Flash地地址址進進行行燒燒錄錄。。參考考分分區(qū)區(qū)如如下下::Android系系統(tǒng)統(tǒng)開開發(fā)發(fā)環(huán)環(huán)境境搭搭建建配配置置bootargs進入入u-boot,,在在串串口口下下輸輸入入如如下下命命令令::setbootcmd'nandread820000002e00000a00000;bootm0x82000000'setappargs'mem=764Mvmalloc=600Mconsole=ttyAMA0,115200mtddev=blackboxandroidboot.console=ttyAMA0mtdparts=hinand:1024K(fastboot),512K(bootargs),512K(envback),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)'setrecoverybootargs'mem=808Mconsole=ttyAMA0,115200mtdparts=hinand:1024K(fastboot),512K(bootargs),512K(envback),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燒錄錄成成功功,,重重啟啟機機頂頂盒盒即即可可啟啟動動Android開開發(fā)發(fā)環(huán)環(huán)境境搭搭建建至此此,,Android開開發(fā)發(fā)環(huán)環(huán)境境搭搭建建成成功功。。參考考文文檔檔::Android系系統(tǒng)統(tǒng)啟啟動動流流程程分分析析Android啟啟動動流流程程分分析析Android啟啟動動流流程程Android從Linux系統(tǒng)統(tǒng)啟啟動動有有4個步步驟驟;;Init進程程啟啟動動Native服務務啟啟動動SystemServer服務務啟啟動動Launcher啟動動Android啟動動流流程程第一一步步::initial進程程(system/core/init)Init進程程,,它它是是一一個個由由內內核核啟啟動動的的用用戶戶級級進進程程。。內內核核啟啟動動后后,,啟啟動動一一個個用用戶戶級級程程序序init的方方式式,,完完成成引引導導進進程程。。init始終終是是第第一一個個進進程程.Init進程程起起來來后后根根據據init.rc和腳本本文文件件建建立立了了幾幾個個基基本本的的服服務務::servicemanamgerzygot

溫馨提示

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

評論

0/150

提交評論