BiliBili Android第三方——第1步


Android開(kāi)發(fā)新手滑潘,若有錯(cuò)誤請(qǐng)指出薪夕,謝謝~

blog
github
簡(jiǎn)書(shū)


架構(gòu)選型

個(gè)人感覺(jué)現(xiàn)在的軟件開(kāi)發(fā)已經(jīng)主要靠合理的利用容为、組合各種輪子來(lái)滿足業(yè)務(wù)需求(沒(méi)有輪子就要自己造輪子)壁却。
我使用的是 Retrofit + Fresco + RxJava + ButterKnife + Gson,相信Android開(kāi)發(fā)人員對(duì)這些第三方庫(kù)都很熟悉阳懂,如果技能樹(shù)點(diǎn)的時(shí)其他路線的可以看這篇文章梅尤。

網(wǎng)絡(luò)請(qǐng)求

Retrofit的使用對(duì)于如今大行其道的RESTFUL的API來(lái)說(shuō)簡(jiǎn)直就是舒服的不能再舒服了,記得在某處看到過(guò)一句話:

如果后臺(tái)使用標(biāo)準(zhǔn)的Restful API希太,那么使用Retrofit來(lái)處理網(wǎng)絡(luò)請(qǐng)求,網(wǎng)絡(luò)請(qǐng)求相關(guān)的代碼量將減少80%

Android網(wǎng)絡(luò)請(qǐng)求庫(kù)根據(jù)谷歌官方推薦即可酝蜒,前段時(shí)間是Volley誊辉,現(xiàn)在是okHttp,使用Retrofit時(shí)默認(rèn)選取okHttp作為底層網(wǎng)絡(luò)請(qǐng)求實(shí)現(xiàn)亡脑。

圖片加載

圖片加載庫(kù)算是比較難以取舍的堕澄,之前流行的是UIL,而現(xiàn)在是Glide霉咨、Picasso和Fresco蛙紫,在本人的Github庫(kù)中使用后三者方式加載圖片,可以看出三種都能較好滿足需求途戒,但同時(shí)也能明顯感覺(jué)到Fresco的響應(yīng)最快坑傅,并且Fresco支持的功能最多。有利就會(huì)有弊喷斋,Glide和Picasso都是可以直接依賴普通的ImageView進(jìn)行使用唁毒,而Fresco則需要使用其自定義的SimpleDraweeView及其相關(guān)屬性對(duì)ImageView進(jìn)行操作蒜茴,如scaleType等屬性。對(duì)于沒(méi)有特殊要求或限制的項(xiàng)目浆西,本人建議使用Fresco作為圖片加載庫(kù)粉私。

RxJava

使用RxJava處理復(fù)雜的異步邏輯可以說(shuō)是異常的舒服,看著之前用Handler實(shí)現(xiàn)功能的代碼簡(jiǎn)直慘不忍睹近零。以一個(gè)簡(jiǎn)單的Banner(圖片輪播)為例诺核,使用RxJava實(shí)現(xiàn)無(wú)論從代碼量還是邏輯上都是更加精簡(jiǎn)、清晰久信。使用timer窖杀、map、flatMap等各種操作符入篮,非常容易實(shí)現(xiàn)想要的異步功能陈瘦。其實(shí)之前的網(wǎng)絡(luò)訪問(wèn)、圖片加載只需要自己封裝一層潮售,即可按照自己舒服(習(xí)慣)的方式進(jìn)行操作痊项,而RxJava則是一種獨(dú)立的編程風(fēng)格,剛開(kāi)始接觸可能還需要適應(yīng)一段時(shí)間酥诽,本人用了2個(gè)月感覺(jué)仍在磨合期鞍泉,但卻是義無(wú)反顧的推薦用其處理異步邏輯。并且肮帐,RxJava可以和Retrofit無(wú)縫鏈接咖驮,直接異步請(qǐng)求接收數(shù)據(jù),回調(diào)后進(jìn)行一系列的異步處理训枢,并能夠智能各處理步驟所處的線程托修,UI的歸UI、計(jì)算的歸計(jì)算恒界、IO的歸IO睦刃,大大提升App的流暢度。

其他使用

  • ButterKnife的功能很單一十酣,就是通過(guò)自定義注解的方式綁定控件ID涩拙、點(diǎn)擊事件等,但卻非常好用耸采,配合Android Studio的插件兴泥,幾乎是最常用的操作之一。
  • Gson作為google官方的json解析庫(kù)虾宇,靈巧好用搓彻,無(wú)副作用。json解析庫(kù)無(wú)論選擇哪種感覺(jué)都可以充分滿足需求。
  • RecyclerView已經(jīng)可以完全替代ListView和GridView好唯,現(xiàn)在項(xiàng)目中所有列表的實(shí)現(xiàn)都可以基于RecyclerView竭沫。

未使用

  • EventBus 事件總線 未詳細(xì)了解,不評(píng)論
  • Dagger2 依賴注入 未詳細(xì)了解骑篙,不評(píng)論
  • MVP/MVVM 不喜歡(個(gè)人觀點(diǎn))蜕提,與后臺(tái)千篇一律的邏輯不通(數(shù)據(jù)庫(kù) + 增刪改查 + 組合業(yè)務(wù)邏輯),App中有許多比較特殊的用戶交互靶端,而使用MV*這種形式確實(shí)可以規(guī)范代碼谎势,但其帶來(lái)的大量的中間層代碼(冗余的文件、類杨名、方法)是我極為排斥的脏榆。Android本身的Activity、Fragment台谍、View须喂、Adapter只要合理組織、運(yùn)用趁蕊,一樣能夠?qū)崿F(xiàn)較好的易維護(hù)的代碼坞生。

總結(jié)

個(gè)人對(duì)架構(gòu)的理解、甚至對(duì)編程的理解就是盡量少寫(xiě)代碼掷伙,或者短期內(nèi)看上去會(huì)增加些代碼量是己,但長(zhǎng)期會(huì)減少正體的代碼量。目前任柜,Android開(kāi)發(fā)仍是軟件開(kāi)發(fā)最熱的部分之一卒废,雖然已有許多成熟的框架給我們使用,但仍有更大量的需求待大家完善宙地、開(kāi)發(fā)(指開(kāi)源摔认、成熟的解決方案),如復(fù)雜動(dòng)畫(huà)的實(shí)現(xiàn)宅粥。本篇文章主要介紹自己在這個(gè)項(xiàng)目中使用到的第三方庫(kù)参袱,希望能夠幫助大家。

參考文章
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粹胯,一起剝皮案震驚了整個(gè)濱河市蓖柔,隨后出現(xiàn)的幾起案子辰企,更是在濱河造成了極大的恐慌风纠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牢贸,死亡現(xiàn)場(chǎng)離奇詭異竹观,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門臭增,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)懂酱,“玉大人,你說(shuō)我怎么就攤上這事誊抛×形” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵拗窃,是天一觀的道長(zhǎng)瞎领。 經(jīng)常有香客問(wèn)我,道長(zhǎng)随夸,這世上最難降的妖魔是什么九默? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮宾毒,結(jié)果婚禮上驼修,老公的妹妹穿的比我還像新娘。我一直安慰自己诈铛,他們只是感情好乙各,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著癌瘾,像睡著了一般觅丰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妨退,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天妇萄,我揣著相機(jī)與錄音,去河邊找鬼咬荷。 笑死冠句,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幸乒。 我是一名探鬼主播懦底,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼罕扎!你這毒婦竟也來(lái)了聚唐?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腔召,失蹤者是張志新(化名)和其女友劉穎杆查,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體臀蛛,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亲桦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年崖蜜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片客峭。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡豫领,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舔琅,到底是詐尸還是另有隱情等恐,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布备蚓,位于F島的核電站鼠锈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏星著。R本人自食惡果不足惜购笆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虚循。 院中可真熱鬧同欠,春花似錦、人聲如沸横缔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茎刚。三九已至襟锐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膛锭,已是汗流浹背粮坞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留初狰,地道東北人莫杈。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奢入,于是被迫代替她去往敵國(guó)和親筝闹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,133評(píng)論 25 707
  • 1腥光、 github排名 https://github.com/trending,github搜索:https://...
    GB_speak閱讀 9,789評(píng)論 2 117
  • 1 作好觀影前的準(zhǔn)備 在看電影前,自問(wèn)一些基本問(wèn)題:如該片拍攝的時(shí)間和地點(diǎn)武福?你對(duì)該片有什么期待议双?你其他的興趣在哪里...
    Alex_Cui閱讀 600評(píng)論 1 1
  • 偶得斷舍離清單聋伦,看看中刀了嗎? 1 戴了會(huì)過(guò)敏的耳釘和劣質(zhì)界睁、不喜歡的飾品 2 有裂痕的杯子 3 丟了瓶蓋后一直沒(méi)有...
    諸慧的身心園地閱讀 617評(píng)論 1 5
  • 現(xiàn)在是北京時(shí)間2016年8月9日上午8點(diǎn)32分,我正坐在開(kāi)往襄陽(yáng)站的火車上翻斟,準(zhǔn)確的說(shuō)是去一個(gè)我不熟悉的地方逾礁,參加大...
    七零二三閱讀 201評(píng)論 0 0