最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android應用架構(gòu)思想分析

 更新時間:2018年06月27日 08:43:22   投稿:laozhang  
本篇文章是一個Android應用開發(fā)的老程序員寫的關(guān)于Android應用架構(gòu)思想分析的詳細內(nèi)容,希望對你有啟發(fā)。

算算日子,工作剛好三年了。這篇開始,鄙人就要向著各種以前想起來就頭大的方向努力前進了。作為在Android應用層搬磚多年的民工,首篇我想談?wù)勛约簩軜?gòu)思想的一些看法。如有不妥,還請拍磚。

蓋樓的故事(虛構(gòu))

有一塊地,兩個區(qū)域,開發(fā)商分別讓兩個包工頭負責開發(fā)。

包工頭A辦事干凈利落,甩開膀子就開工了。為了省錢雇了一個全能的工人,他既要去采購蓋房的材料,又要用這些材料蓋房子。起初底層屋子結(jié)構(gòu)簡單,還能應付得來,到了后面復雜的設(shè)計需求時,忙的不可開交,經(jīng)常精疲力盡,阻斷了蓋房子的進程,使得老板很是不開心,偶爾讓他改個屋子結(jié)構(gòu),他要把整層樓都推到才能實現(xiàn),嚴重影響了工期。畫的圖紙都是一次性的,不能重用,耗時又耗錢,開發(fā)商整天吹胡子瞪眼的跟在屁股后面催。

包工頭B拿到開發(fā)商方案后,先召集小弟開了個會,確定了所有樓層的樣式,并把它們拆分成獨立的模塊。按照模塊劃分給了各個負責人,有制定樓層樣式的,有專門負責資源提供的,有負責運送資源的,有按照預定方案實施的等等。花了大半個月將所有任務(wù)都分配完畢,開始施工。雖然人雇傭的有點多,前面的時間也耽誤了大半個月,但是一開工很快就趕上了隔壁樓。emmm,開發(fā)商喜笑顏開,點點頭,這個錢花的劃算,完事后以后就用包工頭B了。

不久后,兩塊地都完工了。這時質(zhì)檢開始了,令人頭疼的A區(qū)域,有個小毛病就要拆掉一大片地方去改造,有的地方改好了卻又影響了其它地方,而反觀B區(qū)域,專人負責只要改有問題的地方就好了。

后來,包工頭A游走在各個小開發(fā)商,工資又低又累,而包工頭B已經(jīng)走上了人生巔峰。(哈哈,終結(jié))

包工頭B的巔峰秘籍

我們再來回顧一下包工頭B的蓋樓經(jīng)過。

接到項目,沒有立即開發(fā),開會整理需求;

按需求、職能劃分模塊,并由對應的人員負責;

各功能模塊的負責人扁平化管理,沒有相互掣肘;

同樣的,我們App的開發(fā)也是一樣的道理,不能像包工頭A一樣把所有的任務(wù)都交給Activity去做。我們要像包工頭B一樣分層去創(chuàng)建App。大家可以了解一下clean Architecture,這里將App應用分為三層,內(nèi)-中-外,然后由4個管理者分別去管理他們。

分層的準則:

  • 由外到內(nèi)抽象
  • 內(nèi)層不了解層,外層依賴內(nèi)層
  • 分工明確,相互獨立

先來解釋一下第一條,以往我們開發(fā)App都是先從界面開始,然后最終到業(yè)務(wù)邏輯?,F(xiàn)在要反過來,接到需求,要先明確實體是什么

(舉個例子,比如登錄功能,它所描述的實體就是用戶User),然后它有哪些行為(比如登陸,登出userCase)。最后再到具體功能實現(xiàn)。

內(nèi)層不了解外層,還是拿登錄來說,在內(nèi)層只需要知道用戶有登錄以及登出的行為就可以了,至于它是如何進行這些行為,內(nèi)層就不需要知道了,但是反過來外層要實現(xiàn)內(nèi)層的行為就要知道內(nèi)層有哪些行為于是便產(chǎn)生了依賴關(guān)系。內(nèi)層能獨立存在,而外層必須依賴內(nèi)層。

分工明確,相互獨立,講的是各模塊功能獨立存在,就比如登錄,和注冊功能是相互獨立的,各司其職,不能越俎代庖。

4個管理者

  • domain:定義抽象實體,核心業(yè)務(wù)邏輯,以及數(shù)據(jù)輸出接口。此層為純java代碼,建議直接創(chuàng)建java module。
  • data:數(shù)據(jù)管理,分為本地的存儲(sqlLite,sharedpreferences),以及服務(wù)端Api。
  • device:與Android底層相關(guān),如通知,藍牙,傳感器等等。
  • app:我們最熟悉的層級,內(nèi)部可以根據(jù)各自的喜好選擇MVP,以及MVVM模式來實現(xiàn)UI界面。

App開發(fā)的流程

  • domain層中定義抽象實體,設(shè)定其對應的行為。
  • data層中,給予數(shù)據(jù)支持
  • device層,按需開發(fā)

app層,這里以MVP為例,首先在presenter中實現(xiàn)domain層定義的所有行為,data層和device層協(xié)助。最后實現(xiàn)UI界面,完成功能。

相關(guān)文章

  • Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法

    Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法

    這篇文章主要介紹了Android編程判斷橫屏、豎屏及設(shè)置橫豎屏的方法,結(jié)合實例形式分析了Android針對橫豎屏的判斷、計算、設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Android開發(fā)使用strings.xml多語言翻譯解決方案

    Android開發(fā)使用strings.xml多語言翻譯解決方案

    這篇文章主要為大家介紹了Android開發(fā)使用strings.xml多語言翻譯解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 雙緩沖技術(shù)實現(xiàn)Android 畫板應用

    雙緩沖技術(shù)實現(xiàn)Android 畫板應用

    這篇文章主要介紹了Android 采用雙緩存技術(shù)實現(xiàn)畫板應用的相關(guān)資料,并附有代碼實例,有需要的小伙伴可以參考下
    2016-07-07
  • Android實現(xiàn)下載m3u8視頻文件問題解決

    Android實現(xiàn)下載m3u8視頻文件問題解決

    這篇文章主要介紹了Android實現(xiàn)下載m3u8視頻文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Flutter應用程序?qū)崿F(xiàn)隱私屏幕示例解析

    Flutter應用程序?qū)崿F(xiàn)隱私屏幕示例解析

    這篇文章主要為大家介紹了Flutter應用程序?qū)崿F(xiàn)隱私屏幕示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Fultter NestedScrollView實現(xiàn)吸頂效果以及遇到問題解析

    Fultter NestedScrollView實現(xiàn)吸頂效果以及遇到問題解析

    這篇文章主要為大家介紹了Fultter NestedScrollView實現(xiàn)吸頂效果以及遇到問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • FFmpeg?音頻可視化解碼流程詳解

    FFmpeg?音頻可視化解碼流程詳解

    這篇文章主要為大家介紹了FFmpeg?音頻可視化解碼流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • android ListView自動滾動方法

    android ListView自動滾動方法

    直接在Layout中寫即可,注意下面的stackFromBottom以及transcriptMode這兩個屬性
    2013-01-01
  • Android音頻焦點管理實例詳解

    Android音頻焦點管理實例詳解

    音頻是個專業(yè)術(shù)語,音頻一詞已用作一般性描述音頻范圍內(nèi)和聲音有關(guān)的設(shè)備及其作用,人類能夠聽到的所有聲音都稱之為音頻,它可能包括噪音等,下面這篇文章主要給大家介紹了關(guān)于Android音頻焦點管理的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Android中使用GridView進行應用程序UI布局的教程

    Android中使用GridView進行應用程序UI布局的教程

    GridView即平常我們見到的類似九宮格的矩陣型布局,只不過默認不帶分割線,這里我們就從基礎(chǔ)開始來看一下Android中使用GridView進行應用程序UI布局的教程
    2016-06-06

最新評論

湖口县| 西丰县| 昌都县| 延边| 浑源县| 思南县| 益阳市| 天全县| 当涂县| 蓬安县| 贵德县| 武城县| 宜宾县| 固镇县| 扎鲁特旗| 陵水| 正蓝旗| 斗六市| 垦利县| 乐至县| 保德县| 湖北省| 濮阳县| 微博| 西畴县| 周至县| 敖汉旗| 巴彦县| 景德镇市| 南部县| 化德县| 吐鲁番市| 鲁山县| 呼图壁县| 清新县| 正宁县| 玛曲县| 阿勒泰市| 乐平市| 松滋市| 江永县|