BAT的android應(yīng)用會(huì)用到的第三方框架

前言:

在開發(fā)一個(gè)應(yīng)用開始我們最先考慮的就是選擇哪些第三方的框架,這里列出BAT這種千萬用戶量級別的應(yīng)用,使用到的第三方框架。有人會(huì)好奇我是怎么知道的,其實(shí)你反編譯后就知道了!

1.AndroidDesign Support Library

這個(gè)并不是一個(gè)第三方庫,是谷歌官方出的支持庫。之所以列出來除了上面說的這個(gè)APP有使用到它外,更多的是因?yàn)檫@個(gè)庫很強(qiáng)大~

這個(gè)庫和github上的很多開源項(xiàng)目是有很大關(guān)系的,material design的很多效果,同一種效果在github上有太多的實(shí)現(xiàn),現(xiàn)在官方把部分效果標(biāo)準(zhǔn)化了。

這里注意不要和兼容庫Android Support Library 混淆,雖然都是兼容庫,但區(qū)別還是很大的。

Android Design Support Library詳細(xì)介紹點(diǎn)這里

Android Support Library 官方文檔翻譯點(diǎn)擊打開鏈接

2. butterknife

這個(gè)庫應(yīng)該大家都耳熟能詳了,大牛JakeWharton的作品,github上star數(shù)量超一萬,可見其受歡迎程度。

這個(gè)開源庫可以讓我們從大量的findViewById()和setOnclicktListener()解放出來,其對性能的影響微乎其微,其自定義注解的實(shí)現(xiàn)都是限定為RetentionPolicy.CLASS,也就是注解到編譯出.class文件為止有效,在運(yùn)行時(shí)不額外消耗性能。

有人覺得使用了這個(gè)庫之后代碼的可讀性差一些,這個(gè)真心不認(rèn)同,相反,使用過后反倒代碼量少了好多,更清爽簡潔了。

關(guān)于編譯時(shí)注解效率的問題可以看下這篇文章關(guān)于 java編譯時(shí)注解你需要知道的二三事。解除你的顧慮!

這個(gè)庫在Android Studio上配合android-butterknife-zelezny使用更酸爽!

3.fastjson,gson

這兩個(gè)JSON序列化與反序列化庫應(yīng)該都熟悉的了,fastjson是阿里的,gson是Google的,基本功能都差不多,至于為什么兩個(gè)庫都出現(xiàn)在這個(gè)APP里面,應(yīng)該是APP版本的各個(gè)開發(fā)者使用習(xí)慣不一樣吧,也有可能是使用的一些第三方庫依賴其中一種的原因。

這里要提一下的是fastjson號稱是Java語言中最快的JSON庫,而且有專門針對Android精簡和優(yōu)化的版本,體積減少了近一半。因?yàn)轶w積更大,為避免出現(xiàn)64K方法數(shù)限制而棄用fastjson的理由應(yīng)該不再成立。fastjson Android版本

不過也許是因?yàn)間son是Google官方出的,文檔什么的也更詳細(xì),gson在APP內(nèi)出現(xiàn)的頻率還是更高的。

4.picasso

這個(gè)是square 開源的一個(gè)強(qiáng)大的圖片下載和緩存庫。很受歡迎,許多項(xiàng)目都有在使用這個(gè)庫。使用方式也很簡單。

關(guān)于圖片加載庫現(xiàn)在比較流行的還有Glide和Fresco。

Glide

Google員工私人項(xiàng)目,Google很多項(xiàng)目在用。picasso能做到的它都能做到,并且還支持gif。我在公司的項(xiàng)目中也使用的是這個(gè)庫。不過注意在使用這個(gè)庫給ImageView加載圖片的時(shí)候,ImageView設(shè)置 Tag的Id必須顯示指定。

關(guān)于Glide和Picasso這篇譯文有一個(gè)比較詳細(xì)的對比介紹Glide VS Picasso(打算使用Glide的話注意看下這篇文章下面的評論)

Fresco

這個(gè)是FaceBook的開源項(xiàng)目,上面鏈接中有中文的詳細(xì)文檔。這個(gè)庫除了支持的圖片格式很廣泛外,最大的特性就是在內(nèi)存優(yōu)化這塊,使用這個(gè)庫能有效防止OOM情況的出現(xiàn)。

在5.0以下系統(tǒng),Bitmap緩存位于ashmem,這樣Bitmap對象的創(chuàng)建和釋放將不會(huì)引發(fā)GC,更少的GC會(huì)使你的APP運(yùn)行得更加流暢。

5.0及其以上系統(tǒng),相比之下,內(nèi)存管理有了很大改進(jìn),所以Bitmap緩存直接位于Java的heap上。

當(dāng)應(yīng)用在后臺運(yùn)行時(shí),該內(nèi)存會(huì)被清空。

不過這個(gè)庫非主流強(qiáng)大的功能使得這個(gè)庫體積有2M之大,使用起來也有點(diǎn)不太方便。

最后,如果你還在用Android-Universal-Image-Loader(https://github.com/nostra13/Android-Universal-Image-Loader)這個(gè)老牌庫,建議盡早替換掉它,這個(gè)庫已經(jīng)停止更新了。而且無論是使用體驗(yàn)還是性能都沒有以上庫好。

5.PullZoomView

6.SwipeBackLayout

一個(gè)能幫我們輕松實(shí)現(xiàn)右滑退出當(dāng)前頁面功能的庫,這個(gè)庫也有使用在我們公司的項(xiàng)目中,不過花了不少時(shí)間在處理兼容性問題上(有時(shí)間的話會(huì)把填過的坑分享出來)。

這里有必要再提一下這個(gè)庫在手勢處理方面使用到的ViewDragHelper,非常有用的一個(gè)工具類。

具體可以看下這篇文章Android ViewDragHelper完全解析 自定義ViewGroup神器

7.okhttp okio

這個(gè)庫也是square開源的一個(gè)網(wǎng)絡(luò)請求庫(okhttp內(nèi)部依賴okio)。據(jù)說現(xiàn)在已被Google使用在Android源碼上了,可見其強(qiáng)大。

這里有一個(gè)大神張鴻洋開源的okhttp封裝庫

關(guān)于網(wǎng)絡(luò)請求庫,現(xiàn)在應(yīng)該還有很多人在使用android-async-http。他內(nèi)部使用的是HttpClient,但是Google貌似在6.0版本里面刪除了HttpClient相關(guān)API,可見這個(gè)庫現(xiàn)在有點(diǎn)過時(shí)了。

8.volley

這個(gè)庫也應(yīng)該比較熟悉了,Google官方出的一個(gè)庫,包含網(wǎng)絡(luò)請求和圖片加載緩存功能。在處理小而頻繁的網(wǎng)絡(luò)請求上有優(yōu)勢。

以前使用這個(gè)庫一般都是添加第三方依賴,比如android-volley 。現(xiàn)在已經(jīng)有官方Gradle依賴了 。

[java]view plaincopy

compile'com.android.volley:volley:1.0.0'

9.PagerSlidingTagStrip

這個(gè)庫使用比較也比較廣泛,實(shí)現(xiàn)ViewPage和頂部指示器聯(lián)動(dòng)滑動(dòng)的效果。

10.Android-PickerView

仿iOS的PickerView控件,有時(shí)間選擇和選項(xiàng)選擇并支持一二三級聯(lián)動(dòng)效果

這個(gè)庫的作者還有另外幾個(gè)開源庫也很不錯(cuò)的,有興趣的可以點(diǎn)上面鏈接去他的github上看下。

11.packer-ng-plugin

下一代Android打包工具,1000個(gè)渠道包只需要5秒

這個(gè)庫的作者mcxiaoke在下文還會(huì)出現(xiàn)的。

12.NineOldAndroids

View的屬性動(dòng)畫在Android API 11及其以后才支持,該庫的作用就是讓API 11以下的系統(tǒng)也能夠正常的使用屬性動(dòng)畫。不過該庫作者Jake Wharton(是的,又是這位大神)認(rèn)為現(xiàn)在APP支持的最低版本應(yīng)該是4.0了,所以不再更新了。

13.Logger

像作者說的一樣,簡單,漂亮,強(qiáng)大的一款日志打印工具。

14.materialish-progress

15.七牛

七牛云存儲,是專為移動(dòng)時(shí)代開發(fā)者打造的數(shù)據(jù)管理平臺,為互聯(lián)網(wǎng)網(wǎng)站和移動(dòng)App提供數(shù)據(jù)的在線托管、傳輸加速以及圖片、音視頻等富媒體的云處理服務(wù)。

說到數(shù)據(jù)管理平臺,我就會(huì)忍不住想到leancloud,大學(xué)那會(huì)弄畢設(shè)有使用到它,文檔對開發(fā)者非常友好,一直印象很深刻。

16.shareSDK

ShareSDK是為iOS、Android的App提供社會(huì)化功能的一個(gè)組件,幫助開發(fā)者實(shí)現(xiàn)社會(huì)化分享、登錄、關(guān)注、獲得用戶資料、獲取好友列表等主流的社會(huì)化功能。

17.友盟+

這里應(yīng)該是用到了友盟的數(shù)據(jù)統(tǒng)計(jì)分析服務(wù)以及自動(dòng)更新服務(wù),不過要注意的是自動(dòng)更新服務(wù)官方已經(jīng)發(fā)聲明表示停止新注冊的APP和當(dāng)前不再使用該功能的APP接入這項(xiàng)服務(wù),已經(jīng)在使用的在2016年10月15日之后也要停止服務(wù)了。

18.ViewPagerIndicator

這個(gè)庫的作者是Jake Wharton(沒看錯(cuò),還是這位大神),功能和上面介紹的PagerSlidingTagStrip類似,一般與viewpager組合使用。用法看這里

19.小米推送

小米推送服務(wù)支持所有Android平臺,在MIUI上屬于系統(tǒng)服務(wù)框架,共享系統(tǒng)級長連接。

共享系統(tǒng)級連接可以這么理解,理論上不管應(yīng)用是否在后臺運(yùn)行,只要有網(wǎng),就能收到推送。這個(gè)應(yīng)該是此APP選擇小米推送的重要原因。在MIUI系統(tǒng)上,相比其它第三方推送有先天優(yōu)勢。

20.greenDAO

在所有將對象映射到 SQLite 數(shù)據(jù)庫中的 ORM 庫中,greenDAO 在性能方面占很大優(yōu)勢。而且文檔也很詳細(xì)。

不過最近有一個(gè)比較火的跨平臺移動(dòng)數(shù)據(jù)庫引擎realm,支持iOS、OS X(Objective-C和Swift)以及Android。性能比原生的SQLite還要好。目標(biāo)是要取代SQLite。可以多關(guān)注下。

21.CircleImageView

一個(gè)使用很廣泛的圓形圖片庫

22.Crouton

這個(gè)庫功能類似于SnackBar,因?yàn)楣俜揭呀?jīng)出了SnackBar,所以作者停止了繼續(xù)更新這個(gè)庫。

關(guān)于SnackBar的用法

23.BarcodeScanner

一個(gè)基于ZXing和ZBar的容易使用和擴(kuò)展的條形碼掃描庫

24.Rxjava

從去年開始,RxJava+的文章就一直在國內(nèi)網(wǎng)站各種刷屏了,最近還看到有公司招聘直接要求熟悉使用RxJava+Retrofit+OkHttp3了,可見其受歡迎程度。雖然這個(gè)庫的學(xué)習(xí)成本有點(diǎn)大,好在現(xiàn)在關(guān)于它的學(xué)習(xí)資料也很豐富。

很多RxJava的初學(xué)者應(yīng)該都有看過扔物線的這篇文章給Android 開發(fā)者的 RxJava 詳解。

還有上面提到的mcxiaoke組織翻譯的文檔ReactiveX/RxJava文檔中文版。

25.PhotoView

支持通過各種手勢來縮放圖片的一個(gè)庫,現(xiàn)在很多的APP內(nèi)都有使用到這個(gè)庫,很受歡迎。

總結(jié):在架構(gòu)一個(gè)項(xiàng)目時(shí),考慮項(xiàng)目需要用到的一些技術(shù)知識是已經(jīng)有成熟的框架的,就可以借鑒一下這篇文章!接下來準(zhǔn)備寫一個(gè)通用的android項(xiàng)目架構(gòu),集成第三方框架,到時(shí)候會(huì)上傳到Git開源出來!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評論 2 370

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,601評論 25 707
  • 一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網(wǎng)絡(luò)層、UI層、通信層或其他單一功能的框架 混合開發(fā)框架:...
    偉子男閱讀 5,250評論 0 161
  • 框架:提供一定能力的小段程序 http://www.cnblogs.com/jincheng-yangchaofa...
    姑娘請別為難小僧閱讀 7,285評論 0 132
  • 一次回爸媽那過休假,恰好未滿3歲的學(xué)齡前外甥女也在。第二天一早,還在賴床的我就被外甥女叫醒。我睜開眼睛,看到她亮晶...
    雅文yawen閱讀 415評論 0 0
  • 城市之中,游離的愛情像是一朵枯萎已久的花。 賽跑的人吶,真應(yīng)該試著停下,聽一聽內(nèi)心最真誠的話。 僥幸的微笑,現(xiàn)實(shí)的...
    九月憶蕭紅閱讀 242評論 0 1