android系統(tǒng)架構(gòu)概述

android系統(tǒng)架構(gòu)概述

ID:14887004

大小:89.65 KB

頁數(shù):5頁

時間:2018-07-30

android系統(tǒng)架構(gòu)概述_第1頁
android系統(tǒng)架構(gòu)概述_第2頁
android系統(tǒng)架構(gòu)概述_第3頁
android系統(tǒng)架構(gòu)概述_第4頁
android系統(tǒng)架構(gòu)概述_第5頁
資源描述:

《android系統(tǒng)架構(gòu)概述》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Android的架構(gòu)圖如下,圖中按照功能結(jié)構(gòu)及面向人群進(jìn)行劃分,可以看出Android分成三個部分:  應(yīng)用部分:包含在Android設(shè)備上運行的所有應(yīng)用,它們是Android系統(tǒng)中直接面向用戶的部分。  核心部分:Android系統(tǒng)中核心的功能實現(xiàn),包括應(yīng)用框架、核心類庫等,每個Android應(yīng)用的開發(fā)者,都是在此基礎(chǔ)上進(jìn)行應(yīng)用開發(fā)的?! 〉讓硬糠郑褐饕窤ndroid寄宿的Linux操作系統(tǒng)及相關(guān)驅(qū)動。通常來說,只有硬件廠商和從事Android移植的開發(fā)者,才會基于此來進(jìn)行開發(fā)?! 〕松鲜鰟澐址绞揭酝?,從系統(tǒng)實際的架構(gòu)模型來看,Android則可以分成以下幾個層次:  

2、應(yīng)用層  框架層  運行時  核心類庫  硬件抽象層  Linux內(nèi)核  本文的后續(xù)內(nèi)容將針對以上各層逐一進(jìn)行分析?! ?.1.1 應(yīng)用層  對于普通的用戶而言,只能通過具體的應(yīng)用來判斷移動平臺的優(yōu)劣。即便一個移動平臺具有最華麗的技術(shù),但是如果不能給用戶提供最得心應(yīng)手的應(yīng)用,頂多也只能贏得無冕之王的名頭,而無法抓住用戶的心,贏得市場的認(rèn)可?! ndroid應(yīng)用層由運行在Android設(shè)備上的所有應(yīng)用共同構(gòu)成,它不僅包括通話、短信、聯(lián)系人等系統(tǒng)應(yīng)用(隨Android系統(tǒng)一起預(yù)裝在移動設(shè)備上),還包括其他后續(xù)安裝到設(shè)備中的第三方應(yīng)用?! 〉谌綉?yīng)用都是基于Android提供的S

3、DK(SoftwareDevelopmentKit)進(jìn)行開發(fā)的,并受到SDK接口的約束。而預(yù)裝在設(shè)備中的系統(tǒng)應(yīng)用,則可以調(diào)用整個框架層的接口和模塊,其中的很多接口在SDK中是隱藏的,因此,系統(tǒng)應(yīng)用具有比第三方應(yīng)用更多的權(quán)利?! ndroid的應(yīng)用都是基于Java語言來開發(fā)的,但在很多應(yīng)用(尤其是游戲)中,需要進(jìn)行大規(guī)模的運算和圖形處理,以及使用開源C/C++類庫。通過Java來實現(xiàn),可能會有執(zhí)行效率過低和移植成本過高等問題。因此在Android開發(fā)中,開發(fā)者可以使用C/C++來實現(xiàn)底層模塊,并添加JNI(JavaNativeInterface)接口與上層Java實現(xiàn)進(jìn)行交互

4、,然后利用Android提供的交叉編譯工具生成類庫并添加到應(yīng)用中?! 榱俗寫?yīng)用開發(fā)者能夠繞過框架層,直接使用Android系統(tǒng)的特定類庫,Android還提供了NDK(NativeDevelopmentKit),它由C/C++的一些接口構(gòu)成,開發(fā)者可以通過它更高效地調(diào)用特定的系統(tǒng)功能?! 〉贏ndroid上,開發(fā)者通常只能使用C/C++編寫功能類庫,而不是整個應(yīng)用。這是因為,諸如界面繪制、進(jìn)程調(diào)度等核心機制是部署在框架層并通過Java來實現(xiàn)的,應(yīng)用只有按照它們規(guī)定的模式去編寫特定的Java模塊和配置信息,才能夠被識別、加載和執(zhí)行?! ⌒≠N士 從Android2.3(API

5、9)開始,新增了android.app.NativeActivity類,它是通過調(diào)用預(yù)定義的JNI接口來實現(xiàn)的。開發(fā)者可以基于NDK,通過C/C++語言來實現(xiàn)具體功能。這就意味著,開發(fā)者僅通過C/C++語言就能實現(xiàn)整個應(yīng)用。這對于游戲開發(fā)者而言是一大喜訊,但由于控件在Android中并沒有Native的實現(xiàn),普通的應(yīng)用開發(fā)者通常還是需要通過Java來實現(xiàn)上層界面。  1.1.2 框架層  框架層是Android系統(tǒng)中最核心的部分,它集中體現(xiàn)了Android系統(tǒng)的設(shè)計思想。在Android之前,有很多基于Linux內(nèi)核打造的移動平臺。作為超越前輩的成功范例,框架層的設(shè)計正是An

6、droid脫穎而出的關(guān)鍵所在?! 】蚣軐佑啥鄠€系統(tǒng)服務(wù)(SystemService)共同組成,包括組件管理服務(wù)、窗口管理服務(wù)、地理信息服務(wù)、電源管理服務(wù)、通話管理服務(wù),等等。所有服務(wù)都寄宿在系統(tǒng)核心進(jìn)程(SystemCoreProcess)中,在運行時,每個服務(wù)都占據(jù)一個獨立的線程,彼此通過進(jìn)程間的通信機制(Inter-ProcessCommunication,IPC)發(fā)送消息和傳輸數(shù)據(jù)。  應(yīng)用層中的應(yīng)用,時刻都在與這些系統(tǒng)服務(wù)打交道。每一次構(gòu)造窗口、處理用戶交互事件、繪制界面、獲得當(dāng)前地理信息、了解設(shè)備信息等操作,都是在各個系統(tǒng)服務(wù)的支持下實現(xiàn)的?! 《鴮τ陂_發(fā)者而言,框

7、架層最直觀的體現(xiàn)就是SDK,它通過一系列的Java功能模塊,來實現(xiàn)應(yīng)用所需的功能。SDK的設(shè)計決定了上層應(yīng)用的開發(fā)模式、開發(fā)效率及能夠?qū)崿F(xiàn)的功能范疇。因此,對于開發(fā)者而言,關(guān)注SDK的變遷是一件很有必要的事情,SDK每個新版本的誕生,都意味著一些老的接口會被調(diào)整或拋棄,另一些新的接口和功能火熱出爐。開發(fā)者不但要查看和關(guān)注那些被修改的接口,來檢查應(yīng)用的兼容性,并采取相應(yīng)的策略去適應(yīng)這些變化,更重要的是,開發(fā)者還要追蹤新提供的接口,尋找改進(jìn)應(yīng)用的機會,甚至是尋求開發(fā)新應(yīng)用的可能?! 南到y(tǒng)設(shè)計的角度來看,A

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。