电竞比分网-中国电竞赛事及体育赛事平台

分享

主流Android架構(gòu)有哪些?安卓開發(fā)架構(gòu)解析!

 碼農(nóng)9527 2021-04-14

  安卓是Google在Linux平臺(tái)上開發(fā)的一個(gè)開放源碼操作系統(tǒng)。其中包含了操作系統(tǒng)、用戶界面和應(yīng)用程序——手機(jī)上運(yùn)行的所有軟件都是必需的,并且沒有任何以前阻礙手機(jī)行業(yè)創(chuàng)新的特殊障礙。安卓系統(tǒng)使用了WebKit瀏覽器引擎,擁有觸摸屏、高級(jí)圖形顯示和上網(wǎng)功能,用戶可以在手機(jī)上查看電子郵件,搜索網(wǎng)站,觀看視頻節(jié)目,等等;與iPhone等其他手機(jī)相比,安卓系統(tǒng)更加強(qiáng)調(diào)搜索功能,其界面更加強(qiáng)大,可以說是一個(gè)集成了所有Web應(yīng)用的單一平臺(tái)。下面是Android的系統(tǒng)架構(gòu)。

c

    android系統(tǒng)框架設(shè)計(jì)

    與操作系統(tǒng)一樣,android也是采用分層結(jié)構(gòu)的體系結(jié)構(gòu)。android在結(jié)構(gòu)上分為四層,由高層到低層分別為應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫(kù)層和操作系統(tǒng)內(nèi)核層。

    1.應(yīng)用程序

    安卓和其他一些核心的軟件包一起發(fā)布,這些軟件包包括email客戶端、短信程序、日歷、地圖、瀏覽器、聯(lián)系人管理程序等等。使用JAVA語言編寫了所有應(yīng)用程序。

    安卓的系統(tǒng)結(jié)構(gòu)

    2.應(yīng)用程序框架。

    開發(fā)者還可以完全訪問核心應(yīng)用所使用的API框架。這個(gè)應(yīng)用程序的體系結(jié)構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布功能塊,而其他任何應(yīng)用程序都可以使用它發(fā)布的功能塊(不會(huì)超過框架的安全限制)。類似地,應(yīng)用程序復(fù)用機(jī)制讓用戶能夠方便地替換程序組件。

    每個(gè)應(yīng)用程序背后隱藏著一系列服務(wù)和系統(tǒng),包括;

    *可用于構(gòu)建應(yīng)用程序的豐富和可擴(kuò)展視圖(Views),包括列表(lists)、網(wǎng)格(grids)、文本框(textboxes)、按鈕(buttons),甚至是可嵌入web瀏覽器。

    *ContentProviders(ContentProviders)允許應(yīng)用程序訪問其他應(yīng)用程序的數(shù)據(jù)(例如聯(lián)系人數(shù)據(jù)庫(kù)),或共享其自身的數(shù)據(jù)。

    *ResourceManager(ResourceManager)用于訪問非代碼資源,例如本地字符串、圖形和布局文件(layoutfiles)。

    公告管理器(NotificationManager)允許應(yīng)用程序?qū)⒍ㄖ频奶崾拘畔@示在狀態(tài)欄上。

    ActivityManager(ActivityManager)用于管理應(yīng)用程序的生命周期,并提供常用的導(dǎo)航和返回功能。

    要了解更多細(xì)節(jié)以及如何從頭編寫應(yīng)用程序,請(qǐng)參考如何編寫Android應(yīng)用程序。

    3.系統(tǒng)運(yùn)行庫(kù)。

    1)程序庫(kù)

    Andriod包含一些C/C++庫(kù),它們可以為Andriod系統(tǒng)的不同組件所用。他們通過Android應(yīng)用框架來為開發(fā)者服務(wù)。有些核心庫(kù)如下:

    SystemCustomer-從BSD繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù)(libc),它是專門為基于embeddedlinux的設(shè)備定制的。

    *基于PacketVideoOpenCORE的介質(zhì)庫(kù);該庫(kù)支持多種常用的音頻、視頻格式的播放和錄制,同時(shí)還支持靜態(tài)圖像文件。本發(fā)明采用MPEG4,H.264,MP3,AAC,AMR,JPG,PNG的編碼格式。

    *SurfaceManager-顯示子系統(tǒng)的管理,提供了2D和3D圖層對(duì)多個(gè)應(yīng)用程序的無縫融合。

    *LibWebCore-一款最新的web瀏覽器引擎,支持Android瀏覽器和嵌入式web視圖。

    *SGL-底層的二維圖形引擎。

    *3Dlibraries-基于OpenGLES1.0APIs實(shí)現(xiàn);這個(gè)庫(kù)可以使用(如果可用的話)硬件3D加速,或者高度優(yōu)化的3D軟加速。

    *FreeType-位圖(bitmap)和向量(vector)字體顯示。

    *SQLite-一種輕薄、關(guān)系數(shù)據(jù)庫(kù)引擎,可供所有應(yīng)用程序使用。

    2)Android運(yùn)行庫(kù)

    安卓包含一個(gè)核心庫(kù),它提供JAVA編程語言核心庫(kù)的大部分功能。

    每個(gè)Android應(yīng)用程序都在其自己的進(jìn)程中運(yùn)行,并且都有Dalvik虛擬機(jī)的獨(dú)立實(shí)例。達(dá)維克被設(shè)計(jì)為一臺(tái)設(shè)備能夠同時(shí)有效地運(yùn)行多個(gè)虛擬系統(tǒng)。dex的Dalvik可執(zhí)行文件,用于Dalvik虛擬機(jī)執(zhí)行(.dex),格式文件為小內(nèi)存使用做了優(yōu)化。與此同時(shí),虛擬機(jī)是基于寄存器的,所有類都通過JAVA編譯器編譯,然后通過SDK中的"dx"工具轉(zhuǎn)換為.dex格式,由虛擬機(jī)執(zhí)行。

    虛擬機(jī)Dalvik依賴于linux內(nèi)核的某些功能,如線程機(jī)制和底層內(nèi)存管理機(jī)制。

    4.Linux內(nèi)核

    安卓的核心系統(tǒng)服務(wù)是基于Linux2.6內(nèi)核的,比如安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧以及驅(qū)動(dòng)模式。在硬件和軟件棧之間,Linux內(nèi)核也是一個(gè)抽象層。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多