Android技術(shù)選型

軟件架構(gòu)

MVC MVP MVVM
介紹 Model:數(shù)據(jù)結(jié)構(gòu)相關(guān)的類
View:XML文件
Controller:Activity
view:Activity聊闯,F(xiàn)ragment,Adapter等直接和UI相關(guān)的類
Model:數(shù)據(jù)結(jié)構(gòu)和操作相關(guān)的類
Presenter:作為View與Model交互的中間紐帶米诉,處理與用戶交互的業(yè)務(wù)邏輯
iew interface:需要View實(shí)現(xiàn)的接口菱蔬,View通過(guò)View interface與Presenter進(jìn)行交互
MVVM可以算是MVP的升級(jí)版,Model和View類似MVP
VM是ViewModel的縮寫(xiě),ViewModel可以理解成是View的數(shù)據(jù)模型和Presenter的合體
優(yōu)點(diǎn) 代碼結(jié)構(gòu)簡(jiǎn)單 view層和model層分離
可將一個(gè)Presenter用于多個(gè)視圖
方便單元測(cè)試
用戶直接交互的是View
View和ViewModel是多對(duì)一的關(guān)系
View和ViewModel的雙向數(shù)據(jù)綁定
缺點(diǎn) xml作為view層,可控性較差
view層和model層存在耦合
Activity代碼臃腫
由于通過(guò)接口進(jìn)行控制,接口粒度不好控制
UI驅(qū)動(dòng),要考慮線程及生命周期
V層和P層存在耦合
復(fù)雜業(yè)務(wù)也會(huì)導(dǎo)致P層代碼臃腫
由于去除了Presenter層拴泌,會(huì)導(dǎo)致view層依然過(guò)重

網(wǎng)絡(luò)加載框架

HTTP客戶端

HttpClient HttpURLConnection OkHttp
介紹 Apache的一個(gè)三方網(wǎng)絡(luò)框架 一個(gè)多用途魏身、輕量級(jí)的http客戶端 Square 公司封裝的一個(gè)高性能 http 請(qǐng)求庫(kù)
優(yōu)點(diǎn) 網(wǎng)絡(luò)請(qǐng)求做了完善的封裝,api眾多蚪腐,用起來(lái)比較方便箭昵,開(kāi)發(fā)快。實(shí)現(xiàn)比較穩(wěn)定回季,bug比較少 由于API比較簡(jiǎn)單家制,使得我們可以更加容易的去使用和拓展它 鏈接復(fù)用
Response 緩存和 Cookie
默認(rèn) GZIP
請(qǐng)求失敗自動(dòng)重連
DNS 擴(kuò)展
Http2/SPDY/WebSocket協(xié)議支持
缺點(diǎn) 由于其api眾多,是我們很難再不破壞兼容性的情況下對(duì)其進(jìn)行擴(kuò)展泡一,在android5.0被廢棄颤殴,6.0逐漸刪除 它對(duì)網(wǎng)絡(luò)請(qǐng)求的封裝沒(méi)有HttpClient徹底,api比較簡(jiǎn)單鼻忠,用起來(lái)沒(méi)有那么方便 okhttp請(qǐng)求網(wǎng)絡(luò)切換回來(lái)是在線程里面的涵但,不是在主線程,不能直接刷新UI帖蔓,需要我們手動(dòng)處理矮瘟。封裝比較麻煩

總結(jié):Android2.3以前適合使用HttpClient,而2.3以后適用于OkHttp塑娇,HttpURLConnection在Android4.4以后已將底層改用OkHttp,但是OkHttp使用時(shí)需要進(jìn)行一層封裝

封裝框架

volley Retrofit
介紹 一個(gè)簡(jiǎn)單的異步http庫(kù) Square 公司出品的默認(rèn)基于 OkHttp 封裝的一套 RESTful 網(wǎng)絡(luò)請(qǐng)求框架
優(yōu)點(diǎn) 支持圖像加載
自帶緩存澈侠,支持自定義請(qǐng)求
輕量級(jí)網(wǎng)絡(luò)交互,適合大量的钝吮,小數(shù)據(jù)傳輸埋涧。
徹底解耦
默認(rèn)使用 OkHttp ,性能上要比 Volley 占優(yōu)勢(shì)
支持同步奇瘦、異步和RxJava
缺點(diǎn) 不支持 post 大數(shù)據(jù),不適合上傳文件
圖片加載性能一般
比較高的門(mén)檻

總結(jié):volley使用簡(jiǎn)單劲弦,適合用于多次的小數(shù)據(jù)傳輸耳标;Retrofit適用范圍較廣,API使用簡(jiǎn)單邑跪,但有一定使用門(mén)檻次坡,配合RxJava使用更佳

圖片加載框架

Glide Picasso Fresco
介紹 2014年 Google 員工的開(kāi)源項(xiàng)目 2013年 Square 開(kāi)源的項(xiàng)目 2015年Facebook開(kāi)源的圖片框架
優(yōu)點(diǎn) 可接受Activity/fragment的context,控制生命周期
支持git
支持okhttp画畅,Volley
內(nèi)存友好
2級(jí)緩存
自帶統(tǒng)計(jì)監(jiān)控功能
使用復(fù)雜的圖片壓縮轉(zhuǎn)換來(lái)盡可能的減少內(nèi)存消耗
圖片的漸進(jìn)式呈現(xiàn)
圖片存儲(chǔ)在安卓系統(tǒng)的匿名共享內(nèi)存,無(wú)OOM
很好的支持 GIF
自定義居中焦點(diǎn)
缺點(diǎn) 大小和方法數(shù)均大于Picasso(500k和2678) 不支持git
無(wú)自動(dòng)控制生命周期
2級(jí)緩存
包較大(2~3M)
使用復(fù)雜

總結(jié):Glide除了包較大幾乎擁有Picasso的所有優(yōu)點(diǎn)砸琅,比較適合非專業(yè)的應(yīng)用中的圖片處理;Fresco擁有前面兩個(gè)庫(kù)的優(yōu)點(diǎn)轴踱,但它的包很大症脂,且使用門(mén)檻較高,比較適用于圖片需求較大的應(yīng)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诱篷,隨后出現(xiàn)的幾起案子壶唤,更是在濱河造成了極大的恐慌,老刑警劉巖棕所,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闸盔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡琳省,警方通過(guò)查閱死者的電腦和手機(jī)迎吵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)针贬,“玉大人击费,你說(shuō)我怎么就攤上這事〖岵龋” “怎么了荡灾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瞬铸。 經(jīng)常有香客問(wèn)我批幌,道長(zhǎng),這世上最難降的妖魔是什么嗓节? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任荧缘,我火速辦了婚禮,結(jié)果婚禮上拦宣,老公的妹妹穿的比我還像新娘截粗。我一直安慰自己,他們只是感情好鸵隧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布绸罗。 她就那樣靜靜地躺著,像睡著了一般豆瘫。 火紅的嫁衣襯著肌膚如雪珊蟀。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天外驱,我揣著相機(jī)與錄音育灸,去河邊找鬼。 笑死昵宇,一個(gè)胖子當(dāng)著我的面吹牛磅崭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓦哎,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼砸喻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柔逼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起恩够,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤卒落,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蜂桶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體儡毕,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年扑媚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腰湾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疆股,死狀恐怖费坊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旬痹,我是刑警寧澤附井,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站两残,受9級(jí)特大地震影響永毅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜人弓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一沼死、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧崔赌,春花似錦意蛀、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至慈迈,卻和暖如春魁蒜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吩翻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锥咸,地道東北人狭瞎。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像搏予,于是被迫代替她去往敵國(guó)和親熊锭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,071評(píng)論 25 707
  • log打印 https://www.zybuluo.com/shark0017/note/163330 提示性UI...
    石野小真人閱讀 1,268評(píng)論 0 11
  • 概述 先調(diào)用“統(tǒng)一下單”接口,在微信支付服務(wù)后臺(tái)生成預(yù)支付交易單碗殷,返回正確的預(yù)支付交易后精绎,再調(diào)起微信支付接口,發(fā)起...
    Arthur澪閱讀 735評(píng)論 0 1
  • 秋水靜默锌妻,緩緩而至代乃,兩岸挺拔的翠柏清峻,沿河斑斕的花草芬芳仿粹。群山爛漫搁吓,空氣中游離著早秋款款的涼意;艷陽(yáng)輕柔吭历,水面上...
    封狼居胥閱讀 1,391評(píng)論 1 17
  • 最近看到藝考消息,最大的熱點(diǎn)應(yīng)該是林妙可敲響藝術(shù)學(xué)院大門(mén)的路吧朗若,然而林妙可的藝考成績(jī)并不傲人恼五,剛宣告與北電無(wú)緣,淚...
    Lori不是蘿莉閱讀 605評(píng)論 0 3