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

前言:

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

1.AndroidDesign Support Library

這個并不是一個第三方庫肩榕,是谷歌官方出的支持庫。之所以列出來除了上面說的這個APP有使用到它外程梦,更多的是因為這個庫很強大~

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

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

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

Android Support Library 官方文檔翻譯點擊打開鏈接

2. butterknife

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

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

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

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

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

3.fastjson秤标,gson

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

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

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

4.picasso

這個是square 開源的一個強大的圖片下載和緩存庫茫船。很受歡迎琅束,許多項目都有在使用這個庫扭屁。使用方式也很簡單。

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

Glide

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

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

Fresco

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

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

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

當(dāng)應(yīng)用在后臺運行時锦溪,該內(nèi)存會被清空不脯。

不過這個庫非主流強大的功能使得這個庫體積有2M之大,使用起來也有點不太方便刻诊。

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

5.PullZoomView

6.SwipeBackLayout

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

這里有必要再提一下這個庫在手勢處理方面使用到的ViewDragHelper档礁,非常有用的一個工具類角钩。

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

7.okhttp okio

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

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

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

8.volley

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

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

[java]view plaincopy

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

9.PagerSlidingTagStrip

這個庫使用比較也比較廣泛,實現(xiàn)ViewPage和頂部指示器聯(lián)動滑動的效果蔚出。

10.Android-PickerView

仿iOS的PickerView控件弟翘,有時間選擇和選項選擇并支持一二三級聯(lián)動效果

這個庫的作者還有另外幾個開源庫也很不錯的,有興趣的可以點上面鏈接去他的github上看下骄酗。

11.packer-ng-plugin

下一代Android打包工具稀余,1000個渠道包只需要5秒

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

12.NineOldAndroids

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

13.Logger

像作者說的一樣,簡單讨惩,漂亮辟癌,強大的一款日志打印工具。

14.materialish-progress

15.七牛

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

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

16.shareSDK

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

17.友盟+

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

18.ViewPagerIndicator

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

19.小米推送

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

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

20.greenDAO

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

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

21.CircleImageView

一個使用很廣泛的圓形圖片庫

22.Crouton

這個庫功能類似于SnackBar,因為官方已經(jīng)出了SnackBar其弊,所以作者停止了繼續(xù)更新這個庫。

關(guān)于SnackBar的用法

23.BarcodeScanner

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

24.Rxjava

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

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

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

25.PhotoView

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锡垄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子祭隔,更是在濱河造成了極大的恐慌,老刑警劉巖路操,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疾渴,死亡現(xiàn)場離奇詭異,居然都是意外死亡屯仗,警方通過查閱死者的電腦和手機(jī)搞坝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魁袜,“玉大人桩撮,你說我怎么就攤上這事》宓” “怎么了店量?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鞠呈。 經(jīng)常有香客問我融师,道長,這世上最難降的妖魔是什么蚁吝? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任旱爆,我火速辦了婚禮,結(jié)果婚禮上窘茁,老公的妹妹穿的比我還像新娘怀伦。我一直安慰自己,他們只是感情好山林,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布房待。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吴攒。 梳的紋絲不亂的頭發(fā)上张抄,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機(jī)與錄音洼怔,去河邊找鬼署惯。 笑死,一個胖子當(dāng)著我的面吹牛镣隶,可吹牛的內(nèi)容都是我干的极谊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼安岂,長吁一口氣:“原來是場噩夢啊……” “哼轻猖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起域那,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤咙边,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后次员,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體败许,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年淑蔚,在試婚紗的時候發(fā)現(xiàn)自己被綠了市殷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡刹衫,死狀恐怖醋寝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情带迟,我是刑警寧澤音羞,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站仓犬,受9級特大地震影響黄选,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婶肩,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一办陷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧律歼,春花似錦民镜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽们童。三九已至,卻和暖如春鲸鹦,著一層夾襖步出監(jiān)牢的瞬間慧库,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工馋嗜, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留齐板,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓葛菇,卻偏偏與公主長得像甘磨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子眯停,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

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

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