資源描述:
《安卓開(kāi)發(fā)技術(shù)文檔》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、嘉興市民之家App開(kāi)發(fā)技術(shù)文檔Android一詞的本義是指機(jī)器人,同時(shí)也是Google于2007年11月5日牽手34家移動(dòng)技術(shù)和無(wú)線應(yīng)用領(lǐng)域的領(lǐng)軍企業(yè)聯(lián)合組成的開(kāi)發(fā)聯(lián)盟(Open?Handset?Alliance)宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。其開(kāi)放性保證該平臺(tái)不存在任何阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的阻礙,開(kāi)發(fā)人員在該平臺(tái)開(kāi)發(fā)的所有應(yīng)用程序,必須是使用java語(yǔ)言編寫(xiě)的,在Android?Runtime
2、的Dalivk虛擬機(jī)上運(yùn)行的。?Android系統(tǒng)架構(gòu)?Android基本上就是一種嵌入式Linux系統(tǒng)再加上一些重要的手機(jī)應(yīng)用開(kāi)發(fā)軟件,如果深入研究其系統(tǒng)架構(gòu),其整體自底向上由4個(gè)主要層次構(gòu)成,包括Linux?Kernel(Linux?內(nèi)核層)、Library(函數(shù)庫(kù))和Android?Runtime(Android運(yùn)行時(shí)庫(kù))、Application?Framework(應(yīng)用軟件架構(gòu))、Application(應(yīng)用程序),如圖1所示。??圖1、Android系統(tǒng)架構(gòu)(1)Linux?Kernel(Linux內(nèi)
3、核層):Android基于Linux2.6提供核心系統(tǒng)服務(wù),負(fù)責(zé)硬件的驅(qū)動(dòng)程序、網(wǎng)絡(luò)堆棧、電源、系統(tǒng)安全機(jī)制、進(jìn)程管理以及內(nèi)存管理等功能。Linux?Kernel?也作為硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù),分層的好處就是使用下層提供的服務(wù)而為上層提供統(tǒng)一的服務(wù),屏蔽本層及以下層的差異,當(dāng)本層及以下層發(fā)生了變化不會(huì)影響到上層。特別的是,這個(gè)內(nèi)核操作系統(tǒng)并非GUN/Linux的,所以其系統(tǒng)庫(kù)、系統(tǒng)初始化和編程接口都喝標(biāo)準(zhǔn)的Linux系統(tǒng)有所不同。它沒(méi)有采用虛擬內(nèi)存文件系統(tǒng),而是采用YA
4、FFS2文件系統(tǒng)。?(2)Library(函數(shù)庫(kù))和Android?Runtime(Andriod運(yùn)行時(shí)庫(kù)):Library(函數(shù)庫(kù))由大多數(shù)開(kāi)放源代碼的函數(shù)庫(kù)組成,包含一個(gè)C/C++庫(kù)的集合,供Android系統(tǒng)的各個(gè)組件使用。這些功能通過(guò)Android的應(yīng)用程序框架(Application?Framework)展示給開(kāi)發(fā)者,例如準(zhǔn)C函數(shù)庫(kù)Libc、OpenSSL、SQLite等;網(wǎng)頁(yè)函數(shù)庫(kù)WebKit負(fù)責(zé)Android網(wǎng)頁(yè)瀏覽器的運(yùn)行;媒體庫(kù)基于PacketVideo的OpenCORE,這些庫(kù)支持播放和錄制
5、許多流行的音頻和視頻格式,以及靜態(tài)圖像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG;界面管理,管理訪問(wèn)顯示子系統(tǒng)和無(wú)縫組合多個(gè)應(yīng)用程序的二維和三維圖像層;LibWebCore,新式的Web瀏覽器引擎,驅(qū)動(dòng)Android瀏覽器和內(nèi)嵌的Web視圖;SGL,基本的2D圖形引擎;3D庫(kù),基于OpenGL?ES1.0?APIs的實(shí)現(xiàn)。所有應(yīng)用程序都可以使用的強(qiáng)大而輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù)引擎。?Android?Runtime(Android運(yùn)行時(shí)庫(kù))是和Library(函數(shù)庫(kù))并行的,在此提供的An
6、droid特有的Java內(nèi)核函數(shù)庫(kù)與可轉(zhuǎn)換的Java運(yùn)行碼Bytecode,為Android專屬的Dalvik?Executable(.dex)文件格式的dalvik虛擬機(jī),可以通過(guò)Java語(yǔ)言編寫(xiě)Android應(yīng)用程序,并在Android平臺(tái)上同時(shí)運(yùn)行多個(gè)Java應(yīng)用程序。Dalvik虛擬機(jī)依賴于Linux內(nèi)核提供的基本功能,如線程和底層內(nèi)存管理。Dalvik虛擬機(jī)可執(zhí)行文件格式是.dex,dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。大多數(shù)虛擬機(jī)包括JVM都是基于棧的,而D
7、alvik虛擬機(jī)基于寄存器的。?(3)Application?Framework(應(yīng)用軟件架構(gòu)):它是所有Android重點(diǎn)應(yīng)用程序Framwork?API的總集合,主要的目的是讓程序開(kāi)發(fā)者可以更方便地使用這些常用的應(yīng)用程序進(jìn)行設(shè)計(jì)架構(gòu),以便更快速地開(kāi)發(fā)Android應(yīng)用程序。而這些常見(jiàn)的API有顯示功能,如消息方塊、條列消息、按鈕、內(nèi)嵌式瀏覽器等;消息提供功能,如訪問(wèn)信息、分享信息;資源管理功能,如圖形、地方化字符串、布局文件等;提供消息功能,主要用來(lái)顯示警告消息、特別是當(dāng)使用者操作錯(cuò)誤時(shí),等其它功能。?所有
8、的應(yīng)用程序其實(shí)是一組服務(wù)和系統(tǒng),包括視圖,豐富的、可擴(kuò)展的視圖集合,可用于構(gòu)建一個(gè)應(yīng)用程序。包括列表、網(wǎng)格、文本框、按鈕,甚至是內(nèi)嵌的網(wǎng)頁(yè)瀏覽器。內(nèi)容提供者,使應(yīng)用程序能訪問(wèn)其它應(yīng)用程序的數(shù)據(jù),或者共享自己的數(shù)據(jù);資源管理器,提供訪問(wèn)非代碼資源,如本地化字符串、圖像和布局文件;通知管理器,使所有的應(yīng)用程序能夠在狀態(tài)欄顯示自定義警告;活動(dòng)管理器,管理應(yīng)用程序生命周期,提供通用的導(dǎo)航回退功