• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Android的系統(tǒng)及應(yīng)用的架構(gòu)

    2019-04-28 05:58:10吳珊
    電子技術(shù)與軟件工程 2019年3期
    關(guān)鍵詞:適配器列表視圖

    文/吳珊

    1 Android的架構(gòu)分析

    Android的架構(gòu)主要有兩部分構(gòu)成,即系統(tǒng)架構(gòu)與應(yīng)用架構(gòu)。Android系統(tǒng)架構(gòu),是Android系統(tǒng)的底層框架,其中包含了Android系統(tǒng)的基本運(yùn)行原理,并且系統(tǒng)主要的開發(fā)工作也是在此基礎(chǔ)上完成的。Android應(yīng)用框架,一種是開發(fā)默認(rèn)支持MVC架構(gòu),另外一種是目前比較流行的MVP架構(gòu)。

    2 Android系統(tǒng)架構(gòu)

    Android系統(tǒng)架構(gòu)包括四個(gè)部分,如圖1所示,由下而上依次是:LINUX內(nèi)核層、系統(tǒng)運(yùn)行庫(kù)、應(yīng)用程序框架層、應(yīng)用程序?qū)?。每個(gè)層次之間的關(guān)系是:下層為上層提供服務(wù);上層的實(shí)現(xiàn)需要調(diào)用下層的功能。

    2.1 Linux內(nèi)核層

    該層是基礎(chǔ)層,提供技術(shù)上的支撐,主要包括系統(tǒng)常用的驅(qū)動(dòng)程序,例如顯示驅(qū)動(dòng)、音頻驅(qū)動(dòng)、電源管理等,能夠完成對(duì)基本功能的操作。該層連接硬件與軟件,可以降低軟件開發(fā)的復(fù)雜度,同時(shí)對(duì)硬件設(shè)備進(jìn)行抽象。

    2.2 系統(tǒng)運(yùn)行庫(kù)

    該層包括程序庫(kù)和Android運(yùn)行時(shí)環(huán)境,其中程序庫(kù)主要包括表面管理、多媒體框架,輕量級(jí)數(shù)據(jù)庫(kù)SQLite等,普遍使用的開發(fā)語(yǔ)言是C/C++,是應(yīng)用開發(fā)必不可少的底層程序組件;Android運(yùn)行時(shí)環(huán)境包括核心程序庫(kù)和Dalvik虛擬機(jī),它的主要功能是為Android應(yīng)用的運(yùn)行提供環(huán)境支持。

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

    該層是一個(gè)應(yīng)用程序的核心,提供一些在開發(fā)過程中經(jīng)常使用的應(yīng)用程序接口,如活動(dòng)管理(Activity Manager)、通知管理(Notification Manager)、電話管理(Telephony Manager)、資源管理(Resource Manager)以及內(nèi)容提供器(Content Providers)等,在一個(gè)具體的Android應(yīng)用中通過對(duì)這些接口的使用來豐富應(yīng)用的功能,也可以通過繼承來實(shí)現(xiàn)個(gè)性化的功能擴(kuò)展,并且優(yōu)化應(yīng)用的性能。

    2.4 應(yīng)用程序?qū)?/h3>

    該層包括眾多的核心應(yīng)用,例如聯(lián)系人應(yīng)用、電話應(yīng)用以及天氣應(yīng)用等,通常使用JAVA語(yǔ)言編寫的程序,并且開發(fā)人員可以通過應(yīng)用程序框架層的接口來開發(fā)新的應(yīng)用。

    3 Android應(yīng)用架構(gòu)

    在開發(fā)Android應(yīng)用時(shí)首先應(yīng)該設(shè)計(jì)應(yīng)用框架,它的目的是使程序保持模塊化,達(dá)到高內(nèi)聚、低耦合的,這樣有利于大型的Android應(yīng)用開發(fā),各個(gè)模塊可以進(jìn)行分工合作,提高開發(fā)效率。Android應(yīng)用通常采用MVC框架和MVP架構(gòu)進(jìn)行開發(fā),本文主要對(duì)MVP架構(gòu)進(jìn)行研究。

    在MVP架構(gòu)中,其中M:模型層(Model)主要包括本地緩存訪問組件和網(wǎng)絡(luò)數(shù)據(jù)訪問組件;V:視圖層(View)主要由Activity、Fragment、Adapter這三個(gè)組件構(gòu)成,主要功能是完成應(yīng)用的頁(yè)面布局的設(shè)置;P:展示器層(Presenter),該層使用定制化的Presenter展示器作為基礎(chǔ)組件。

    上述介紹的三層結(jié)構(gòu)是MVP架構(gòu)的主要組成部分,另外還包括一個(gè)契約層(Contract),契約層連接著視圖層和展示器層,它定義每個(gè)模塊中的視圖層和展示器層在使用時(shí)應(yīng)該遵守的規(guī)則,使用契約層的組件中兩個(gè)接口,分別由視圖層和展示器層進(jìn)行實(shí)現(xiàn)。

    3.1 視圖層

    在視圖層中,主要使用Fragment來完成各個(gè)模塊界面的設(shè)計(jì),同時(shí)還要遵守契約層中定義的規(guī)則,將定義的抽象方法實(shí)現(xiàn),展示器層將調(diào)用這些方法來定義視圖層的數(shù)據(jù)展示方式。

    MVP架構(gòu)與MVC架構(gòu)主要的區(qū)別在于,在MVC架構(gòu)中,Activity既負(fù)責(zé)顯示視圖,又對(duì)數(shù)據(jù)進(jìn)行處理操作,但在MVP架構(gòu)中,Activity只負(fù)責(zé)實(shí)現(xiàn)Fragment與Presenter的顯示,并且負(fù)責(zé)將模型層組件顯示到展示器層。在Activity中間的協(xié)調(diào)下,F(xiàn)ragment與Presenter組件就能夠?qū)⒁晥D顯示,并能完成視圖層和模型層的交互。

    Adapter,即適配器,主要使用在具有列表界面的模塊中,例如下列列表、列表視圖等等,F(xiàn)ragment中的方法獲取展示器層返回的列表數(shù)據(jù)以后,然后添加適配器,將這些數(shù)據(jù)添加到適配器中,由適配器控制這些數(shù)據(jù)在Fragment中列表控件中進(jìn)行顯示在視圖中,同時(shí)Adapter可以監(jiān)聽列表組件中每一個(gè)列表項(xiàng)的事件,當(dāng)用戶點(diǎn)擊任意一個(gè)列表項(xiàng)就會(huì)觸發(fā)單擊事件,在相應(yīng)的事件處理方法中實(shí)現(xiàn)操作。

    圖1:Android系統(tǒng)架構(gòu)圖

    3.2 展示器層

    展示器層主要負(fù)責(zé)整個(gè)系統(tǒng)的業(yè)務(wù)邏輯,完成視圖層與模型層數(shù)據(jù)的交互。展示器層分擔(dān)了傳統(tǒng)MVC架構(gòu)中Activity組件作為控制器層的主要職責(zé),主要是為了防止Activity設(shè)計(jì)得過于繁瑣。通過封裝向外部提供訪問的接口,有利于單元測(cè)試和后期的維護(hù)工作。

    3.3 模型層

    模型層根據(jù)領(lǐng)域?qū)ο蠼M織數(shù)據(jù),每一個(gè)領(lǐng)域?qū)ο蟮哪P蛯訉?duì)應(yīng)四部分,分別為:數(shù)據(jù)源規(guī)范、數(shù)據(jù)倉(cāng)庫(kù)組件、本地緩存訪問組件、網(wǎng)絡(luò)數(shù)據(jù)訪問組件。其中數(shù)據(jù)倉(cāng)庫(kù)組件、本地緩存訪問組件和網(wǎng)絡(luò)數(shù)據(jù)訪問均實(shí)現(xiàn)了數(shù)據(jù)源規(guī)范接口。

    MVP架構(gòu)可以使模型層和視圖層相對(duì)獨(dú)立,功能進(jìn)行分離,交互行為都是由展示器層來完成的,最大的優(yōu)點(diǎn)是便于單元測(cè)試,主要的功能是通過調(diào)用接口來完成的,內(nèi)部的具體實(shí)現(xiàn)細(xì)節(jié)是不透明的,這樣方便編寫測(cè)試用例,有助于提高軟件的可維護(hù)性。

    猜你喜歡
    適配器列表視圖
    巧用列表來推理
    學(xué)習(xí)運(yùn)用列表法
    擴(kuò)列吧
    適配器模式及其應(yīng)用
    5.3 視圖與投影
    視圖
    新型水文測(cè)驗(yàn)GPS適配器設(shè)計(jì)與應(yīng)用
    Y—20重型運(yùn)輸機(jī)多視圖
    SA2型76毫米車載高炮多視圖
    基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
    灵武市| 繁昌县| 宾阳县| 志丹县| 定边县| 林西县| 海兴县| 瑞丽市| 敖汉旗| 改则县| 环江| 西盟| 甘肃省| 台南县| 浮山县| 右玉县| 太仆寺旗| 乐清市| 明水县| 股票| 盐源县| 安岳县| 东兴市| 合山市| 茂名市| 宣汉县| 安陆市| 咸丰县| 石家庄市| 温宿县| 长沙市| 宾阳县| 临夏县| 武陟县| 平远县| 安国市| 达日县| 丰县| 虞城县| 汝阳县| 定西市|