先扯兩句
很久不扯了,剛敲出來這四個字的時候,還真把自己弄得愣了一下。
首先對這段時間關注我的博客的說聲抱歉,前段時間有點事,斷了一段時間,今后會盡量避免的,嘿嘿。
當然原本的套路今天應該寫的是RecyclerView.Adapter的封裝,不過因為又踏上了找工作的征程,所只好把這個相對更重要一些的部分拿到前面了。
這篇主要是分析一下我用過的一些框架,借機傳達一些個人在開發(fā)中的一些小意見,沒有興趣的可以直接跳過。
還是先上我的Git庫。
MyBaseApplication (https://github.com/BanShouWeng/MyBaseApplication)
并給大家展示個神器,叫Android知識點——目錄,好了,閑言少敘,下面進入正題。
正文
看到今天的題目大多數(shù)人應該能看出來,這部分主要是網(wǎng)絡請求的封裝,雖然說我的工作經(jīng)驗到現(xiàn)在才不到兩年時間,卻也算接觸了兩種網(wǎng)絡框架,分別是Afinal的FinalHttp,以及Google的Volley。
Afinal
首先關于Afinal框架,還是比較強大的,其中包含了FinalActivity、FinalHTTP、FinalBitmap、FinalDb的封裝,對于一個懶人來說,集成一個框架,就可以輕松實現(xiàn)這些功能,簡單是最幸福不過的事了!
不過在看看標題,不對啊,這篇文章的主角是“Retrofit+RxJava+OkHttp”,目測跟Afinal框架好像沒什么太大的關系,這又是為什么呢?
說到這里,我也很無奈啊,作為一個一直標榜自己是懶人的懶人,竟然在這應該偷懶的地方退縮了,說起來還是很丟人的一件事。可存在即合理,所以逼迫我這么一個懶漢放棄偷懶的原因究竟是什么呢?
大家自己上網(wǎng)查一下Afinal框架就會發(fā)現(xiàn),其相關的文檔最近的也是在2016的(至少我查的結果是這樣的),而再去git查一下Afinal
我框出的部分,翻譯過來,是最近一次更新的是見竟然是2015年3月15日,但現(xiàn)在已經(jīng)兩年多沒有更新新的內(nèi)容了(如果誰發(fā)現(xiàn)Afinal像xUtils一樣只是換了,也可以指出來。至少從我得到的信息來看,Afinal框架應該是停止維護了)。
所以,當這個時候,不知道別人作何感想,可如果是我為了一時的偷懶,使用了Afinal框架,得到它停止維護的消息,絕對想死的心都有了。
這個時候只能有兩個選擇,要么就是將整個工程推翻了重寫,可是看到Afinal的覆蓋的范圍,F(xiàn)inalActivity(Activity基類)、FinalHTTP(網(wǎng)絡訪問)、FinalBitmap(圖片顯示)、FinalDb(數(shù)據(jù)庫),這些都做修改,與重寫整個項目也相差不多了。
當然,我們開發(fā)也不是說所有的都要使用最新的,框架哪怕就一些也可以選擇繼續(xù)忍受,可是
以上就是FinalHttp中的各種過時方法,我們或許可以圖一時舒服,選擇了忍受這些內(nèi)容,可是當隨著Android的很多技術的進步,當有一天他們不只是單純的過時,安全性更威脅我們已經(jīng)成熟的工程的時候,那將是災難性的打擊。而如果這個時候我們再更換的時候,整個工程的復雜程度,大家加油,我在這里為他(她)鼓掌掌。
(當然,上述內(nèi)容有危言聳聽的嫌疑,畢竟Afinal框架的其他部分暫時還是可以用的,而且我們也可以在框架的基礎上自己進行維護,這里只是說明一種可能性。)
所以,為了避免上述的尷尬,至少我個人,在開發(fā)的時候,寧可多花些時間,去找各個模塊比較優(yōu)秀的框架或者SDK,而不是使用這種復合的框架。(以上只是個人的一點小建議,而且如果領導圖省事,以上言論也一點用沒有)。
上面一大段總結起來實際上就是兩句話:
- Afinal已經(jīng)不適用了;
- 開發(fā)中在框架和SDK的運用上,注意解耦合,減小因為對方放棄維護損失
Retrofit vs Volley
說實化,去年的這個時候,讓我寫博客的話,我寫的可能就是Volley與OkHttp了,不過現(xiàn)在Retrofit成功的擠掉了OkHttp的位置,不過從我角度理解,他們兩個其實也不用區(qū)分得特別明確,畢竟看題目也知道,這里也沒逃了使用OkHttp,原因嘛,上鏈接Retrofit2 完全解析 探索與okhttp之間的關系。
而Volley,也算是我使用過的比較多的網(wǎng)絡框架,上面說的FinalHttp過時之后,我就是在項目中使用的Volley進行的替代,其后開發(fā)的一直也是使用的Volley,原因嗎?OkHttp還需要自己封裝一下,我懶。
只是為什么我這么一個懶人,今天一而再再而三轉性,明知OkHttp麻煩,這里卻還要去使用它呢?這就要歸功于我們的Retrofit了,他們之間也有什么區(qū)別呢?老規(guī)矩,上鏈接Android主流網(wǎng)絡請求框架。
所以趁現(xiàn)在閑下來的時間,就先玩一玩Retrofit,有興趣的大家,一起哦!