For investors

股價(jià):

5.36 美元 %
認(rèn)識(shí)達(dá)內(nèi)從這里開(kāi)始

認(rèn)真做教育 專(zhuān)心促就業(yè)

android架構(gòu)設(shè)計(jì) android架構(gòu)圖

提及“android架構(gòu)設(shè)計(jì),android架構(gòu)圖”,先從谷歌公開(kāi)的體系結(jié)構(gòu)圖上開(kāi)始吧,本著拿來(lái)主義的原則,直接貼圖。開(kāi)始就從了解體系架構(gòu)入手吧。

從圖上可以看出一共有四層結(jié)構(gòu),從下到上分別為:

1-----Linux 內(nèi)核層

2-----中間件層

3-----應(yīng)用程序框架層

4-----應(yīng)用程序?qū)?

谷歌公開(kāi)的體系結(jié)構(gòu)圖

下面咱們依次分層細(xì)談吧,先把模塊打散,然后再組裝吧,自己畫(huà)的,雖然丑點(diǎn)吧,畢竟是自己的,ok,就這樣了,這玩意也沒(méi)有必要,也不必過(guò)下美圖秀秀。

一、系統(tǒng)分層架構(gòu)圖,簡(jiǎn)化版的

二、Linux內(nèi)核層

1--------------------

從下到上來(lái)吧,Android 核心內(nèi)核使用了Linux 2.6的內(nèi)核,為了便于商用,那幫家伙將Linux中的GUN協(xié)議部分進(jìn)行取代。里面集成了調(diào)用實(shí)體設(shè)備的驅(qū)動(dòng)程序,用來(lái)驅(qū)動(dòng)真實(shí)實(shí)體設(shè)備。并暴漏接口調(diào)用給上一層,即中間件層。

三、中間件層

2--------------------

中間件層--從體系架構(gòu)圖中可以看出,該層主要的功能分成了兩塊:運(yùn)行庫(kù)和運(yùn)行時(shí)。并封裝了相應(yīng)的接口調(diào)用給應(yīng)用程序框架層

=================運(yùn)行庫(kù)

系統(tǒng)運(yùn)行庫(kù)層:當(dāng)我們使用Android應(yīng)用框架時(shí),Android系統(tǒng)會(huì)通過(guò)一些C/C++庫(kù),來(lái)支持對(duì)我們使用的各個(gè)組件,使其能更好滴為開(kāi)發(fā)者服務(wù),比如里面列舉一些主要的庫(kù):

①---Bionic系統(tǒng)C庫(kù)-----C語(yǔ)言標(biāo)準(zhǔn)庫(kù),系統(tǒng)最底層的庫(kù),C庫(kù)通過(guò)Linux系統(tǒng)來(lái)調(diào)用;

②---多媒體庫(kù)(MedioFrameword)-----Android系統(tǒng)多媒體庫(kù),基于PacketVideo OpenCORE,該庫(kù)支持多種常用的音頻、視頻格式的回放和錄制以及一些圖片,比如:MPEG4、MP3、AAC、AMR、JPG、PNG等

③---SGL-----2D圖形引擎庫(kù)

④---SSL-----位于TVP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊提供支持。

⑤---OpenGL | ES -----3D效果的支持

⑥---SQLite-----輕量級(jí)關(guān)系型數(shù)據(jù)庫(kù)

⑦---Webkit-----Web瀏覽器引擎

⑧---FreeType-----位圖(Bitmap) 及 矢量(Vector)

===============運(yùn)行時(shí)

運(yùn)行時(shí)里面最重要的應(yīng)該算是虛擬機(jī)吧。Dalvik是google自己設(shè)計(jì)的用于Android平臺(tái)的Java虛擬機(jī)(.dex格式是專(zhuān)為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng))這是在android4.4之前的版本了。android 4.4及以后的版本,谷歌直接祭出了ART(Android Runtime),用來(lái)取代Dalvik,運(yùn)行模式確實(shí)提高了不少,優(yōu)化了性能和流暢性。

比較一下二者的不同吧:

------Dalvik:應(yīng)用每次運(yùn)行的時(shí)候,字節(jié)碼都需要通過(guò)即時(shí)編譯器轉(zhuǎn)換為機(jī)器碼,這會(huì)拖累應(yīng)用的運(yùn)行效率。

------ART:應(yīng)用在第一次安裝的時(shí)候,字節(jié)碼就會(huì)預(yù)先編譯成機(jī)器碼,使其成為真正的本地應(yīng)用(這個(gè)過(guò)程叫做預(yù)編譯[AOT,Ahead-Of-Time]),這樣的話(huà),應(yīng)用的啟動(dòng)(首次)和執(zhí)行都會(huì)變得更加快速。

反正就是ART比Dalvik強(qiáng)就是了。

四、應(yīng)用框架層

3--------------------

應(yīng)用程序框架層---封裝了開(kāi)發(fā)應(yīng)用所需要的核心API框架,提供了豐富多彩的組件,這樣簡(jiǎn)化了程序開(kāi)發(fā)的架構(gòu)設(shè)計(jì),但也必須遵守其框架的開(kāi)發(fā)原則,開(kāi)發(fā)自主性上被限制住了。該層封裝了SDK,提供了API給上一層調(diào)用使用。

SDK中內(nèi)置了一些對(duì)象,其中最重要的組件有四個(gè):Activities、Intents、Services以及Content Providers。

1--------------

Activities 活動(dòng):

一個(gè)活動(dòng)就是一個(gè)用戶(hù)界面。一個(gè)應(yīng)用程序可以定義一個(gè)或者多個(gè)活動(dòng),每個(gè)活動(dòng)都能夠保存和恢復(fù)自身的狀態(tài)。

2--------------

Intents 意向:

Intent是描述一個(gè)特定活動(dòng)的一種機(jī)制,比如“選取照片”、“撥打電話(huà)”等具體的動(dòng)作。在Android機(jī)制中所有的東西都是通過(guò)Intents完成的,這樣開(kāi)發(fā)者有機(jī)會(huì)替代或重用大量的組件。

比如有一個(gè)“發(fā)送郵件”的Intent,當(dāng)你應(yīng)用程序需要發(fā)送郵件時(shí)可以激活這個(gè)Intent。開(kāi)發(fā)者甚至可以重新編寫(xiě)一個(gè)新的郵件應(yīng)用程序,并注冊(cè)為活動(dòng)以處理這個(gè)Intent代替標(biāo)準(zhǔn)的郵件應(yīng)用程序。

那么,其他的應(yīng)用程序就可以使用新編寫(xiě)應(yīng)用程序來(lái)發(fā)送郵件了。

3--------------

Services 服務(wù):

一個(gè)服務(wù)Service就是運(yùn)行在后臺(tái),沒(méi)有用戶(hù)直接交互的任務(wù)(與Unix daemon類(lèi)似)。

比如要做一個(gè)音樂(lè)播放器,可能會(huì)被另一個(gè)活動(dòng)激活,但音樂(lè)是需要作為背景音樂(lè)播放,那么這種程序就可以考慮作為一種服務(wù)Service。然后別的活動(dòng)可以來(lái)操作這個(gè)播放器。Android中內(nèi)置了很多服務(wù),可以方便滴使用API進(jìn)行訪問(wèn)。

4--------------

Content Providers 內(nèi)容提供者:

一個(gè)內(nèi)容提供者content provider就是由自定義的API封裝讀寫(xiě)操作的一套數(shù)據(jù)。Content Provider是不同應(yīng)用程序之間共享全局?jǐn)?shù)據(jù)最好的方式。比如,Google提供了聯(lián)系人的Content Provider,包括姓名、地址、電話(huà)等所有信息在內(nèi)的聯(lián)系方式能夠被所有應(yīng)用程序使用。

五、應(yīng)用程序

4--------------------

應(yīng)用程序?qū)?,開(kāi)發(fā)豐富多彩的應(yīng)用程序。

先總結(jié)成這個(gè)樣子吧,自己也是初學(xué),慢慢加深理解吧!

【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!

相關(guān)推薦
最新資訊
免費(fèi)試聽(tīng)課程
  • 全部課程
  • IT課程
  • 設(shè)計(jì)課程
  • 運(yùn)營(yíng)課程
Free courses
最新開(kāi)班時(shí)間
  • 北京
  • 上海
  • 廣州
  • 深圳
  • 南京
  • 成都
  • 武漢
  • 西安
  • 青島
  • 天津
  • 杭州
  • 重慶
  • 哈爾濱
  • 濟(jì)南
  • 沈陽(yáng)
  • 合肥
  • 鄭州
  • 長(zhǎng)春
  • 蘇州
  • 長(zhǎng)沙
  • 昆明
  • 太原
  • 無(wú)錫
  • 石家莊
  • 南寧
  • 佛山
  • 珠海
  • 寧波
  • 保定
  • 呼和浩特
  • 洛陽(yáng)
  • 煙臺(tái)
  • 運(yùn)城
  • 濰坊
  • 開(kāi)課名稱(chēng)
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢(xún)
  • 開(kāi)課名稱(chēng)
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢(xún)
預(yù)約申請(qǐng)?jiān)嚶?tīng)課
收起