2017年Android百大框架排行榜(一)

一.榜單介紹

排行榜包括四大類(lèi):

單一框架:僅提供路由、網(wǎng)絡(luò)層、UI層、通信層或其他單一功能的框架

混合開(kāi)發(fā)框架:提供開(kāi)發(fā)hybrid app、h5與webview結(jié)合能力、web app能力的框架

企業(yè)級(jí)開(kāi)源項(xiàng)目:可以獨(dú)立運(yùn)行的app,有極高的學(xué)習(xí)價(jià)值、思路借鑒意義

書(shū)籍類(lèi)開(kāi)源項(xiàng)目:類(lèi)似Open-sourc-project這樣的導(dǎo)航類(lèi)項(xiàng)目;大型公司的Android課程的學(xué)習(xí)目錄?tips

榜單排序依據(jù):

1.項(xiàng)目開(kāi)源

2.github上該項(xiàng)目的star個(gè)數(shù)

3.開(kāi)發(fā)團(tuán)隊(duì)、作者的實(shí)力

為了保證榜單內(nèi)容的多樣性,榜單上盡可能的不重復(fù)同類(lèi)型框架(比如多款listview增強(qiáng)框架)

適用讀者范圍:

正在入門(mén)Android的新手~~~Android初級(jí)開(kāi)發(fā)工程師 ?初出茅廬

熟讀《書(shū)籍導(dǎo)航類(lèi)項(xiàng)目排行榜》,勤加練習(xí)進(jìn)步會(huì)更大;編譯運(yùn)行并動(dòng)腦思考《企業(yè)級(jí)開(kāi)源項(xiàng)目》中的案例,可以提升開(kāi)發(fā)完整項(xiàng)目的能力;;略讀《框架百大排行榜》,最大的作用是的是拓展視野,可以看到很多時(shí)下流行的名詞概念術(shù)語(yǔ)

Android初級(jí)開(kāi)發(fā)工程師~~~中級(jí)開(kāi)發(fā)工程師 ? ?知其然知其所以然

熟練、快速、高效的默寫(xiě)出《企業(yè)級(jí)開(kāi)源項(xiàng)目》中的(自己感興趣)典型案例,對(duì)提高書(shū)寫(xiě)代碼的自信,提升項(xiàng)目功能整體設(shè)計(jì)能力;深究《框架百大排行榜》排名靠前框架的原理,會(huì)讓自己在與家人、同事、同學(xué)聚會(huì)之時(shí)多了一些炫耀的資本;如果你能熟練運(yùn)用《框架百大排行榜》里所提到的框架,在遇到某種需求的時(shí)候,立刻會(huì)拿出“最優(yōu)秀的框架”去解決,意味著你離中級(jí)工程師不太遠(yuǎn)了

中級(jí)、高級(jí)、資深工程師 ? 知其然知其不可然

《框架百大排行榜》里所提到的流行詞、流行術(shù)語(yǔ)——使用能力、融會(huì)貫通其原理、講解框架能力的高低,將讓你不斷的在這三個(gè)級(jí)別徘徊;

會(huì)有意識(shí)的合并榜單里多款同類(lèi)型框架,來(lái)彌補(bǔ)單一框架的某些缺陷,比如將同為網(wǎng)絡(luò)請(qǐng)求框架的Volley和Okhttp封裝到一起應(yīng)對(duì)不同場(chǎng)面的需求;

會(huì)有意識(shí)的二次開(kāi)發(fā)、修改源碼來(lái)擴(kuò)展榜單所提到的大型框架;

能夠在開(kāi)發(fā)團(tuán)隊(duì)里推動(dòng)、部署某些框架的能力——比如要在一個(gè)新加入的陌生團(tuán)隊(duì)說(shuō)服leader和項(xiàng)目成員使用熱更新、插件化、組件化、hybrid 開(kāi)發(fā)等多種開(kāi)發(fā)模式,你是否有這個(gè)實(shí)力?

框架名次越靠前,值得使用的優(yōu)先級(jí)就越高、研究原理得到的收獲會(huì)更多、對(duì)讀者啟發(fā)的價(jià)值就越大

二.百大框架排行榜

快速索引

框架名稱(chēng)上榜關(guān)鍵字

1.Retrofit網(wǎng)絡(luò)

2.okhttp網(wǎng)絡(luò)

3.Butter Knife代碼模板

4.MPAndroidChart圖表

5.glide圖片

6.leakcanary內(nèi)存

7.Android-Universal-Image-Loader圖片

8.EventBus事件消息

9.zxing條碼掃描

10.picasso圖片

11.lottie-android動(dòng)畫(huà)

12.fresco圖片

13.RxAndroid異步

14.SlidingMenu菜單

15.PhotoView圖片

16.material-dialogsUI

17.droid-async-http網(wǎng)絡(luò)

18.androidannotations注解

19.fastjsonjson

20.Material-Animations動(dòng)畫(huà)

21.tinker熱修復(fù)

22.ViewPagerIndicatorUI

23.Android-CleanArchitecture架構(gòu)

24.Android-PullToRefresh刷新

25.flexbox-layoutUI

26.AndroidSwipeLayoutUI

27.realm-java數(shù)據(jù)庫(kù)

28.greenDAO數(shù)據(jù)

29.stetho調(diào)試

30.BaseRecyclerViewAdapterHelperUI

31.AndroidViewAnimations動(dòng)畫(huà)

32.MaterialDrawer菜單

33.Android-ObservableScrollViewUI

34.CircleImageView圖片

35.logger調(diào)試

36.agera異步

37.BottmBar菜單

38.Calligraphy字體

39.AndroidSlidingUpPanelUI

40.AppIntroUI

41.recyclerview-animators動(dòng)畫(huà)

42.dagger依賴(lài)注入

43.Android-BootstarpUI

44.RxBinding響應(yīng)式

45.ListViewAnimations動(dòng)畫(huà)

46.UItimateRecyclerViewUI

47.uCrop圖片

48.RxJava-Android-Samples用例

49.AndroidAutoLayout適配

50.EffectiveAndroidUI性能

51.Luban圖片

52.DroidPlugin插件化

53.otto響應(yīng)式

54.u2020用例

55.buck構(gòu)建

56.PermissionsDispatcher權(quán)限

57.android-gif-drawableGIF

58.Apktool反編譯

59.dynamic-load-apk插件化

60.atlas插件化

61.volley網(wǎng)絡(luò)

62.androidmvp用例

63.SwipeBackLayout手勢(shì)

64.FlycoTabLayoutUI

65.android-testing測(cè)試

66.FileDownloader下載

67.JieCaoVideoPlayer多媒體

68.glide-transformations圖片

69.android-gpuimage圖片

70.RxPermissions權(quán)限

71.freeline編譯

72.RxLifecycle生命周期

73.classyshark反編譯

74.acra崩潰日志

75.DiskLruCache文件

76.dexposed熱修復(fù)

77.Litho性能

78.mosbyMVP

79.AndResGuard混淆

80.StatusBarUtil狀態(tài)欄

81.robolectric測(cè)試

82.Fragmentation嵌套

83.Small插件化

84.JsBridgehybrid

85.richeditor-androidUI

86.Transitions-Everywhere動(dòng)畫(huà)

87.android-viewbadger勛章

88.AndroidWiFiADB調(diào)試

89.emojicon表情包

90.packer-ng-plugin多渠道

91.android-priority-jobqueue多線(xiàn)程

92.Android-Debug-Database調(diào)試

93.conceal加密

94.ARouter頁(yè)面路由

95.MagicaSakura多主題

96.CustomActivityOnCrash崩潰

97.XhsEmoticonsKeyboard鍵盤(pán)

1. Retrofit

一句話(huà)介紹:Retrofit是一款類(lèi)型安全的網(wǎng)絡(luò)框架,基于HTTP協(xié)議,服務(wù)于Android和java語(yǔ)言

上榜理由:Retrofit以21.8k的stars量雄踞github中android子標(biāo)題榜首,第一當(dāng)之無(wú)愧。

官網(wǎng)地址http://square.github.io/retrofit/

githubhttps://github.com/square/retrofit

作者:square團(tuán)隊(duì)

使用:

compile'com.squareup.retrofit2:retrofit:2.3.0'

2.okhttp

一句話(huà)介紹:okhttp是一款基于HTTP和HTTP2.0協(xié)議的網(wǎng)絡(luò)框架,服務(wù)于java和android客戶(hù)端

上榜理由,okhttp以20.4k的stars量雄踞github中android子標(biāo)題第二名。大型公司比如淘寶也封裝的是okhttp。Retrofit2.0開(kāi)始內(nèi)置okhttp框架,Retrofit專(zhuān)注封裝接口完成業(yè)務(wù)需求,okhttp專(zhuān)注網(wǎng)絡(luò)請(qǐng)求的安全高效,筆者將兩者區(qū)分開(kāi),是想讓后來(lái)學(xué)習(xí)者知道,這是兩套框架,學(xué)習(xí)框架原理時(shí)可以分開(kāi)學(xué)習(xí),以免理解混亂。

官網(wǎng)地址http://square.github.io/okhttp/

githubhttps://github.com/square/okhttp

作者:square團(tuán)隊(duì)

使用:

compile'com.squareup.okhttp3:okhttp:3.8.0'

3.Butter Knife

一句話(huà)介紹:Butter Knife所提供了一種能力——使用注解生成模板代碼,將view與方法和參數(shù)綁定。

上榜理由:github上16.5K個(gè)star,配合Androidstudio提供的Butter Knife插件,幫助開(kāi)發(fā)者省卻了頻繁findviewbyid的煩惱,最新的Butter Knife還提供了onclick綁定以及字符串的初始化,初學(xué)者可以查閱Butter Knife以及Butter Knife插件進(jìn)一步學(xué)習(xí)!

官網(wǎng)地址:http://jakewharton.github.io/butterknife/

github:https://github.com/JakeWharton/butterknife

作者:JakeWharton?,也是square團(tuán)隊(duì)成員之一

使用:

dependencies {

compile'com.jakewharton:butterknife:8.6.0'annotationProcessor'com.jakewharton:butterknife-compiler:8.6.0'

}

4.MPAndroidChart

一句話(huà)介紹:MPAndroidChart是一款圖表框架

上榜理由:github上16.1K個(gè)star,以快速、簡(jiǎn)潔。強(qiáng)大著稱(chēng)的圖表框架

官網(wǎng)地址https://github.com/PhilJay/MPAndroidChart

github ?https://github.com/PhilJay/MPAndroidChart

作者:PhilJay

使用:

1. 在AS中加入Gradle依賴(lài)

在根目錄的build.gradle上加入:

allprojects {

????repositories {

?????????????maven { url"https://jitpack.io"}

????}

}

在app的build.gradle上加入:

dependencies {

compile'com.github.PhilJay:MPAndroidChart:v3.0.2'

}

5. glide

一句話(huà)介紹:glide是一款專(zhuān)注于提供流暢劃動(dòng)能力的“圖片加載和緩存框架”

上榜理由:15.9k個(gè)star,圖片加載類(lèi)框架排名第一的框架,google 在2014開(kāi)發(fā)者大會(huì)上演示的camera app就是基于gilde框架開(kāi)發(fā)的

githubhttps://github.com/bumptech/glide

作者?Bump Technologies團(tuán)隊(duì)

使用:

repositories {

mavenCentral()

}

dependencies {

compile'com.github.bumptech.glide:glide:3.8.0'compile'com.android.support:support-v4:19.1.0'

}

6.leakcanary

一句話(huà)介紹:一款內(nèi)存檢測(cè)框架,服務(wù)于java和android客戶(hù)端

上榜理由:方便,簡(jiǎn)潔是leakcanary最大的特點(diǎn),只需在應(yīng)用的apllication中集成,就可以直接使用它;15.5k個(gè)star說(shuō)明了它有多么受歡迎

github?https://github.com/square/leakcanary

作者 square團(tuán)隊(duì)

使用:

dependencies {

debugCompile'com.squareup.leakcanary:leakcanary-android:1.5.1'releaseCompile'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'testCompile'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'

}

在Application中寫(xiě)入:

publicclassExampleApplication extends Application {

@OverridepublicvoidonCreate() {

super.onCreate();if(LeakCanary.isInAnalyzerProcess(this)) {//This process is dedicated to LeakCanary for heap analysis.//You should not init your app in this process.return;

}

LeakCanary.install(this);//Normal app init code...}

}

7.Android-Universal-Image-Loader

一句話(huà)介紹:曾經(jīng)的圖片加載框架王者,android開(kāi)發(fā)老手都用過(guò)它

上榜理由:android端圖片加載框架的老大哥了,15.3k個(gè)star足以證明它的熱門(mén),UIL與gilde最大區(qū)別是可定制,UIL提供了大量配置方式,圖片加載狀態(tài)的回調(diào)(成功,失敗,進(jìn)行中),加載動(dòng)畫(huà)等;以及提供了移動(dòng)端圖片加載框架的緩存思路:三級(jí)緩存策略 sd卡-內(nèi)存-網(wǎng)絡(luò);值得注意的是,UIL以及兩年未更新了,但筆者仍推薦各位使用!

githubhttps://github.com/nostra13/Android-Universal-Image-Loader

作者 nostra13

使用:

下載地址universal-image-loader-1.9.5.jar

8.EventBus

一句話(huà)介紹:EventBus是一款本地組件間通信框架

上榜理由:組件間通信框架star量第一:14.8k,在大型項(xiàng)目的Activities,fragments,Threads,Services都可以看到它的使用場(chǎng)景,盡管EventBus在向未創(chuàng)建的組件傳遞事件時(shí)有些局限,僅適合在“活著的”組件間傳遞消息,但仍不妨礙它活躍在各個(gè)大型項(xiàng)目各個(gè)場(chǎng)景里。

官網(wǎng)地址http://greenrobot.org/eventbus/documentation/how-to-get-started/

githubhttps://github.com/greenrobot/EventBus

作者?greenrobot

使用:

compile'org.greenrobot:eventbus:3.0.0'

9.zxing

一句話(huà)介紹:條碼圖像處理庫(kù)

上榜理由:如果你用過(guò)二維碼,你肯定已經(jīng)間接使用過(guò)大名鼎鼎的zxing了。13.9K的star量,讓它排在本榜單第九,實(shí)至名歸,如果你有了解二維碼的需求,不妨從了解、修改它源碼入手。

githubhttps://github.com/zxing/zxing

作者??Sean Owen

10.picasso

一句話(huà)介紹:強(qiáng)力的圖片下載、緩存框架

上榜理由:本榜單出現(xiàn)的第三款圖片類(lèi)框架,不同的是picasso更強(qiáng)調(diào)圖片下載,你可以將picasso集成進(jìn)你的項(xiàng)目中,你也可以結(jié)合gilde和UIL與picasso,三者一齊封裝至你的項(xiàng)目中,按需所用。

官網(wǎng)地址http://square.github.io/picasso/

githubhttps://github.com/square/picasso

作者 square團(tuán)隊(duì)

使用:

compile'com.squareup.picasso:picasso:2.5.2'

或者下載

jar包

11.lottie-android

一句話(huà)介紹:一款可以在Android端快速展示Adobe Afeter Effect(AE)工具所作動(dòng)畫(huà)的框架

上榜理由:動(dòng)畫(huà)類(lèi)框架第一名,github上13.3k個(gè)star證明了他的優(yōu)越性,利用json文件快速實(shí)現(xiàn)動(dòng)畫(huà)效果是它最大的便利,而這個(gè)json文件也是由Adobe提供的After Effects(AE)工具制作的,在AE中裝一個(gè)Bodymovin的插件,使用這個(gè)插件最終將動(dòng)畫(huà)效果生成json文件,這個(gè)json文件即可由LottieAnimationView解析并生成絢麗的動(dòng)畫(huà)效果。而且它還支持跨平臺(tái)喲。

githubhttps://github.com/airbnb/lottie-android

作者:Airbnb 團(tuán)隊(duì)

12.fresco

一句話(huà)介紹:一款可以管理圖片內(nèi)存的框架

上榜理由:github上12.8k個(gè)star,圖片類(lèi)排行榜第四名,facebook的出身證明了它并非是重復(fù)造的輪子,在管理圖片內(nèi)存領(lǐng)域上有著它的一片天地,漸進(jìn)式加載、加載gif都是它與前三位相比獨(dú)有的特性

官網(wǎng)地址:https://www.fresco-cn.org/

githubhttps://github.com/facebook/fresco

作者 facebook

使用:

dependencies {//其他依賴(lài)compile'com.facebook.fresco:fresco:0.12.0'}

下面的依賴(lài)需要根據(jù)需求添加:

dependencies {//在 API < 14 上的機(jī)器支持 WebP 時(shí),需要添加compile'com.facebook.fresco:animated-base-support:0.12.0'//支持 GIF 動(dòng)圖,需要添加compile'com.facebook.fresco:animated-gif:0.12.0'//支持 WebP (靜態(tài)圖+動(dòng)圖),需要添加compile'com.facebook.fresco:animated-webp:0.12.0'compile'com.facebook.fresco:webpsupport:0.12.0'//僅支持 WebP 靜態(tài)圖,需要添加compile'com.facebook.fresco:webpsupport:0.12.0'

}

13.RxAndroid

一句話(huà)介紹:一款A(yù)ndroid客戶(hù)端組件間異步通信的框架

上榜理由:github上12.7k個(gè)star,位居組件通信框架的第二名,僅在EventBus之后,如果要問(wèn)兩者的區(qū)別,Eventbus是用來(lái)取代組件間繁瑣的interface,RxAndroid是用來(lái)取代AnsyTask的,并不沖突;當(dāng)然RxAndroid的優(yōu)點(diǎn)并不僅限于此,更多優(yōu)雅的實(shí)現(xiàn),可以去官網(wǎng)查閱!

githubhttps://github.com/ReactiveX/RxAndroid

作者?JakeWharton

使用:

compile'io.reactivex.rxjava2:rxandroid:2.0.1'compile'io.reactivex.rxjava2:rxjava:2.1.0'

14.SlidingMenu

一句話(huà)介紹:側(cè)滑菜單欄框架

上榜理由:與Userval-Image-loader 齊名的上古神器框架——為你的app提供側(cè)滑菜單欄的功能;github閃更有10.5k個(gè)star,證明了它的經(jīng)久不衰,即使在Google推出了NavigationDrawer,仍然沒(méi)有減少開(kāi)發(fā)者對(duì)SildingMenu的擁簇,經(jīng)典總是經(jīng)得起考驗(yàn)的,這個(gè)上古神獸已經(jīng)四年沒(méi)有更新了;有太多太多的app使用過(guò)它,這些都可以在軟件的開(kāi)源許可上看到!

githubhttps://github.com/jfeinstein10/SlidingMenu

作者?Jeremy Feinstein

使用:

在gihub上fork源碼,集成進(jìn)項(xiàng)目中

15.PhotoView

一句話(huà)介紹:一款I(lǐng)mageView展示框架,支持縮放,響應(yīng)手勢(shì)

上榜理由:10.3k的star數(shù)量,位于圖片類(lèi)框架排行榜第五位,PhotoView與前四位不同的是這次帶來(lái)的是圖片的展示能力,你一定好奇微信的頭像點(diǎn)擊放大是如何實(shí)現(xiàn)的,很多App的圖片顯示響應(yīng)手勢(shì)按壓是如何實(shí)現(xiàn)的,了解PhotoView,你一定會(huì)開(kāi)心的?。üP者也不會(huì)告訴你ImageView的點(diǎn)擊放大效果在Android的sample也有)

githubhttps://github.com/chrisbanes/PhotoView

作者:chrisbanes

使用:

在app根目錄的build.gradle中加入:

allprojects {

repositories {

maven { url"https://jitpack.io"}

}

}

在app的module目錄的build.gralde中加入:

dependencies {

compile'com.github.chrisbanes:PhotoView:latest.release.here'

}

使用

android:id="@+id/photo_view"android:layout_width="match_parent"android:layout_height="match_parent"/>PhotoView photoView=(PhotoView) findViewById(R.id.photo_view);

photoView.setImageResource(R.drawable.image);

16.material-dialogs

一句話(huà)介紹:一款自定義dialog框架

上榜理由:9.9k個(gè)star,也是繼PhotoView,SlidingMenu之后第三款自定義View框架,也許你還是自定義View的新人,對(duì)Dialog使用的還有點(diǎn)生疏,你可以通過(guò)它提升你的Dilaog使用能力

githubhttps://github.com/afollestad/material-dialogs

作者:Aidan Follestad

使用:

dependencies {//... other dependencies herecompile'com.afollestad.material-dialogs:core:0.9.4.5'

}

17.droid-async-http

一句話(huà)介紹:一款基于Http協(xié)議的異步請(qǐng)求的網(wǎng)絡(luò)框架,

上榜理由:雖然你有無(wú)數(shù)個(gè)使用retrofit+okhttp的理由,但9.8k個(gè)star,證明它仍然值得你深入學(xué)習(xí)。值得注意的是,它也已經(jīng)有兩年沒(méi)更新了,你盡管拿去當(dāng)你懶惰的理由!

githubhttps://github.com/loopj/android-async-http

作者:James Smith

使用:

repositories {

maven {

url'https://oss.sonatype.org/content/repositories/snapshots/'}

}

dependencies {

compile'com.loopj.android:android-async-http:1.5.0-SNAPSHOT'

}

18.androidannotations

一句話(huà)介紹:一款基于注解的快速開(kāi)發(fā)框架

上榜理由:與Butterknife一樣基于注解,利用注解快速完成view的初始化,不同的是androidannotations提供了更多的能力:簡(jiǎn)單的線(xiàn)程模型等;筆者只接觸過(guò)Butterknife,無(wú)法更進(jìn)一步敘述androidannotations的優(yōu)勢(shì),如果你志在深入了解注解的妙用,可以嘗試探索一下!

官網(wǎng)地址http://androidannotations.org/

githubhttps://github.com/androidannotations/androidannotations

作者:?WonderCsabo

19.fastjson

一句話(huà)介紹:一款基于json解析、生成的框架

上榜理由:從它的名字不難看出,快速是它最大的特性,阿里巴巴的出身保證了代碼的質(zhì)量和優(yōu)越,9.4k的star數(shù)量,也是榜單里第一個(gè)出現(xiàn)的中國(guó)開(kāi)源框架,涉及網(wǎng)絡(luò)的app都會(huì)用到j(luò)son,fastjson值得作為你的首選!

githubhttps://github.com/alibaba/fastjson

作者:alibaba

使用:

compile'com.alibaba:fastjson:1.1.58.android'

20.Material-Animations

一句話(huà)介紹:一款提供場(chǎng)景轉(zhuǎn)換過(guò)渡能力的動(dòng)畫(huà)框架

上榜理由:Android動(dòng)畫(huà)框架排行榜第二名,9.3k個(gè)star數(shù)量,與動(dòng)畫(huà)框架榜單第一名lottie-android不同的是,Material-Animations提供的是場(chǎng)景切換的動(dòng)畫(huà)效果。Android 官網(wǎng)sample中已經(jīng)提供了部分Transition (轉(zhuǎn)場(chǎng)動(dòng)畫(huà))的展示,作為初學(xué)者很難快速拓展到自己項(xiàng)目中,Material-Animations的示例出現(xiàn)為開(kāi)發(fā)者省去了此類(lèi)麻煩,直接照搬應(yīng)用到自己的App中吧。

githubhttps://github.com/lgvalle/Material-Animations

作者:Luis G. Valle

使用:

down源碼,修改學(xué)習(xí)

21.tinker

一句話(huà)介紹:它是微信官網(wǎng)的Android熱補(bǔ)丁解決方案

上榜理由:9.1k個(gè)star,微信在用的熱補(bǔ)丁方案,心動(dòng)不如行動(dòng)

官網(wǎng)地址http://www.tinkerpatch.com/Docs/intro

githubhttps://github.com/Tencent/tinker

作者:Tencent

22.ViewPagerIndicator

一句話(huà)介紹:一款基于ViewPager的頁(yè)面指示器開(kāi)源框架

上榜理由:上古神器,盡管已經(jīng)五年未更新了,但你仍然可以在淘寶等app中看到它的使用場(chǎng)景,8.9K的star量讓它不慍不火的在矗立在榜單里

官網(wǎng)地址http://viewpagerindicator.com/

githubhttps://github.com/JakeWharton/ViewPagerIndicator

作者:JakeWharton

使用:

下載?地址https://github.com/JakeWharton/Android-ViewPagerIndicator/zipball/master

23.Android-CleanArchitecture

一句話(huà)介紹:一個(gè)講解設(shè)計(jì)框架的demo

上榜理由:它不是框架,你可以把它當(dāng)作一本書(shū),它將教會(huì)你如何設(shè)計(jì)簡(jiǎn)潔的架構(gòu),工程里有一個(gè)sample app,配合圖文講解,你將對(duì)Android客戶(hù)端的架構(gòu)有更深一層的認(rèn)識(shí)。8.8k的star數(shù)量,證明了它是一本“好書(shū)”喲。

githubhttps://github.com/android10/Android-CleanArchitecture

作者:Fernando Cejas

24..Android-PullToRefresh

一句話(huà)介紹:一款為普通視圖提供刷新UI的視圖框架

上榜理由:8.2K的star數(shù)量使它位居刷新類(lèi)UI框架榜首,強(qiáng)大的兼容能力,該框架支持ListView,GrdiView,WebViewScrollView,ViewPager等眾多View增加刷新的能力,如果你有增加上拉加載,下拉加載的需求,你應(yīng)該考慮它了!

githubhttps://github.com/chrisbanes/Android-PullToRefresh

作者:Chris Banes

使用:

github fork源碼,集成到項(xiàng)目中

25.flexbox-layout

一句話(huà)介紹:一款彈性伸縮布局

上榜理由:8.1k個(gè)star,前端H5開(kāi)發(fā)者轉(zhuǎn)Android開(kāi)發(fā)的福音,F(xiàn)lexboxLayout作為L(zhǎng)inearLayout和RelativeLayout的替代者,值得各位一試,與其一同推出的還有ConstraintLayout。

githubhttps://github.com/google/flexbox-layout

作者:Google

使用:

dependencies {

compile'com.google.android:flexbox:0.3.0-alpha3'

}

26.AndroidSwipeLayout

一句話(huà)介紹:非常強(qiáng)大滑動(dòng)式布局

上榜理由:滑動(dòng)刪除是國(guó)產(chǎn)app常見(jiàn)需求,商品詳情的上下滑動(dòng)需求作為開(kāi)發(fā)者的我們也經(jīng)常遇到,AndroidSwipeLayout在github上擁有8K個(gè)star,證明它經(jīng)受住了檢驗(yàn),各位值得一試

githubhttps://github.com/daimajia/AndroidSwipeLayout

作者:daimajia

使用:

dependencies {

compile'com.android.support:recyclerview-v7:21.0.0'compile'com.android.support:support-v4:20.+'compile"com.daimajia.swipelayout:library:1.2.0@aar"

}

或下載

AndroidSwipeLayout-v1.1.8.jar

27.realm-java

一句話(huà)介紹:Realm是一款移動(dòng)端數(shù)據(jù)庫(kù)框架

上榜理由:核心數(shù)據(jù)引擎C++打造,比普通的Sqlite型數(shù)據(jù)庫(kù)快的多。筆者猜測(cè)正是如此,realm以7892個(gè)star數(shù)讓它位于大名鼎鼎的數(shù)據(jù)庫(kù)框架GreenDao(7877)之前

官網(wǎng)地址:https://realm.io/cn/

githubhttps://github.com/realm/realm-java

作者:Realm團(tuán)隊(duì)

使用:https://realm.io/docs/java/latest/

28.greenDAO

一句話(huà)介紹:greenDAO是一款高效、快速的SQLite型數(shù)據(jù)庫(kù)

上榜理由:greenDAO的star數(shù)量與Realm不相上下,且與EventBus師出同門(mén),也是由greenrobot團(tuán)隊(duì)開(kāi)發(fā)維護(hù)的,質(zhì)量有所保證,但若拷問(wèn)筆者Realm與greenDao兩者的優(yōu)劣性,只能具體到實(shí)際使用當(dāng)中,模擬線(xiàn)上的使用情形,進(jìn)行高強(qiáng)度測(cè)試后才能下判斷,故在此不能一言?xún)烧Z(yǔ)說(shuō)完,深表遺憾

官網(wǎng)地址:http://greenrobot.org/greendao/

githubhttps://github.com/greenrobot/greenDAO

使用:

buildscript {

repositories {

jcenter()

mavenCentral()//add repository}

dependencies {

classpath'com.android.tools.build:gradle:2.3.1'classpath'org.greenrobot:greendao-gradle-plugin:3.2.2'//add plugin}

}-----apply plugin:'com.android.application'apply plugin:'org.greenrobot.greendao'//apply plugindependencies {

compile'org.greenrobot:greendao:3.2.2'//add library

}

29.stetho

一句話(huà)介紹:一款提供在Chrome開(kāi)發(fā)者工具上調(diào)試Android app能力的開(kāi)源框架

上榜理由:上古時(shí)期Android程序員要調(diào)試本地?cái)?shù)據(jù)庫(kù),需要進(jìn)入Android Device Monitor找到/data/data/com.xxx.xxx/databases里面的db文件,導(dǎo)出到PC端,用PC的數(shù)據(jù)工具查看,現(xiàn)在使用stetho省卻了如此的麻煩;如今的Android程序員如果想調(diào)試網(wǎng)絡(luò)請(qǐng)求響應(yīng)過(guò)程中的報(bào)文段,需要在請(qǐng)求中加入Log語(yǔ)句,一個(gè)信息一個(gè)信息打印出來(lái),相當(dāng)繁瑣,現(xiàn)在請(qǐng)使用stetho,省卻諸如此類(lèi)的麻煩把!7.8K個(gè)star數(shù),廣大Android開(kāi)發(fā)者調(diào)試的福音,你值得擁有!

作者:FaceBook

官網(wǎng)地址:http://facebook.github.io/stetho/

githubhttps://github.com/facebook/stetho

使用:

compile'com.facebook.stetho:stetho:1.5.0'

30.BaseRecyclerViewAdapterHelper

一句話(huà)介紹:強(qiáng)大、流暢的Recyvlerview通用適配器

上榜理由:如果你是RecyclerView的擁簇者,你一定要體驗(yàn)這款專(zhuān)門(mén)服務(wù)該view的適配器,7.7K個(gè)star,讓這個(gè)家伙位于github上Android 適配器排行榜第一,還有很多驚喜等你去探尋!

官網(wǎng)地址:http://www.recyclerview.org/

作者:陳宇明以及他的小伙伴

使用:

allprojects {

repositories {

...

maven { url"https://jitpack.io"}

}

}

dependencies {

compile'com.github.CymChad:BaseRecyclerViewAdapterHelper:VERSION_CODE'

}

31.AndroidViewAnimations

一句話(huà)介紹:一款提供可愛(ài)動(dòng)畫(huà)集合的框架

上榜理由:正如作者所說(shuō),它囊括了開(kāi)發(fā)需求過(guò)程中所有的動(dòng)畫(huà)效果,集成進(jìn)了這個(gè)簡(jiǎn)潔可愛(ài)的動(dòng)畫(huà)框架。7.6K的star數(shù),證明了它在動(dòng)畫(huà)框架領(lǐng)域的戰(zhàn)斗力,讓它僅僅位列l(wèi)ottie-android和Material-Animations兩個(gè)動(dòng)畫(huà)框架霸主之后,屈居第三名

githubhttps://github.com/daimajia/AndroidViewAnimations

作者:daimajia

使用:

dependencies {

compile'com.android.support:support-compat:25.1.1'compile'com.daimajia.easing:library:2.0@aar'compile'com.daimajia.androidanimations:library:2.2@aar'}

sample:

YoYo.with(Techniques.Tada)

.duration(700)

.repeat(5)

.playOn(findViewById(R.id.edit_area));

32.?MaterialDrawer

一句話(huà)介紹:強(qiáng)大的塑料風(fēng)格的抽屜框架

上榜理由:7.6K的star數(shù)量,作者的持續(xù)更新?tīng)顟B(tài),如果你還在猶豫上手SlidingMenu遇到bug沒(méi)人管的困境,那么你可以入手它作為你的抽屜布局

github ?https://github.com/mikepenz/MaterialDrawer

作者:Mike Penz

使用:

compile('com.mikepenz:materialdrawer:5.9.2@aar') {

transitive=true}

newDrawerBuilder().withActivity(this).build();

33.Android-ObservableScrollView

一句話(huà)介紹:一款讓視圖滑動(dòng)更具有視覺(jué)效果的滑動(dòng)式框架

上榜理由:7.5K的star數(shù)量,證明了它曾經(jīng)的價(jià)值,github上提供了12種滑動(dòng)效果,你可以用它彌補(bǔ)其他框架的不足,提升你的App體驗(yàn)!

githubhttps://github.com/ksoichiro/Android-ObservableScrollView

作者:Soichiro Kashima

使用:

compile com.github.ksoichiro:android-observablescrollview

34.CircleImageView

一句話(huà)介紹:圓角ImageView

上榜理由:也許你已經(jīng)聽(tīng)說(shuō)過(guò)無(wú)數(shù)種展示圓角圖片的方法,但如果你不嘗試嘗試CircleImageView,那么你的知識(shí)庫(kù)會(huì)因?yàn)樯倭怂鋈皇械臅r(shí)候完成需求是開(kāi)發(fā)者優(yōu)先考慮的,不同實(shí)現(xiàn)方法牽扯到的性能差異更值得讓人深思,如果你有心在圖片性能上有所涉獵,那么CircleImageView絕對(duì)不會(huì)讓你敗興而歸。最后別忘了記得去看Romain Guy的建議喲。

githubhttps://github.com/hdodenhof/CircleImageView

作者:Henning Dodenhof

使用:

dependencies {

...

compile'de.hdodenhof:circleimageview:2.1.0'}

xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/profile_image"android:layout_width="96dp"android:layout_height="96dp"android:src="@drawable/profile"app:civ_border_width="2dp"app:civ_border_color="#FF000000"/>

35.logger

一句話(huà)介紹:一款讓log日志優(yōu)雅顯示的框架

上榜理由:logger作為調(diào)試框架,并未給出很強(qiáng)大的能力,它最大的亮點(diǎn)是優(yōu)雅的輸出log信息,并且支持多種格式:線(xiàn)程、Json、Xml、List、Map等,如果你整日沉迷于汪洋大海般的log信息不能自拔,logger就是你的指路明燈!6.6k個(gè)star讓他位列調(diào)試框架第二名,屈居facebook的stetho之后

githubhttps://github.com/orhanobut/logger

作者:Orhan Obut

使用:

compile'com.orhanobut:logger:2.1.1'

Logger.d(MAP);

Logger.d(SET);

Logger.d(LIST);

Logger.d(ARRAY);Logger.json(JSON_CONTENT);

Logger.xml(XML_CONTENT);

36.agera

一句話(huà)介紹:一款服務(wù)于Android平臺(tái)的響應(yīng)式編程框架

上榜理由:google專(zhuān)門(mén)推出一套響應(yīng)式編程框架服務(wù)于Android開(kāi)發(fā)者,相比于之響應(yīng)式編程框架榜首的?RxJava RxAndroid,它更輕量,兩者最大的不同點(diǎn)在于agera基于push event、pull data (VS Rx系列 push data)。

githubhttps://github.com/google/agera

作者:Google

使用:

compile'com.google.android.agera:agera:1.3.0'

擴(kuò)展能力

compile'com.google.android.agera:content:1.3.0'compile'com.google.android.agera:database:1.3.0'compile'com.google.android.agera:net:1.3.0'compile'com.google.android.agera:rvadapter:1.3.0'compile'com.google.android.agera:rvdatabinding:1.3.0'

37.BottmBar

一句話(huà)介紹:一款底部導(dǎo)航欄視圖框架

上榜理由:底部欄里的王者框架,6.3K的star數(shù)量,證明了它的優(yōu)秀,完全遵循材料設(shè)計(jì)規(guī)范,上手非常方便。如果說(shuō)缺點(diǎn),無(wú)法設(shè)置icon與titile的間距,無(wú)法自定義視圖的大小等,但這些都可以通過(guò)修改源代碼解決,筆者獻(xiàn)丑也修改了一套符合國(guó)內(nèi)開(kāi)發(fā)者的底部導(dǎo)航框架,即將開(kāi)源。

githubhttps://github.com/roughike/BottomBar

作者:Iiro Krankka

使用:

compile'com.roughike:bottom-bar:2.3.1'

38.Calligraphy

一句話(huà)介紹:一款自定義字體框架

上榜理由:如果你還在為一鍵修改App內(nèi)所有字體樣式而煩惱,6.3K個(gè)star的Calligraphy就值得你擁有,它可以同時(shí)修改整個(gè)整個(gè)項(xiàng)目的Textview字體,也可以單獨(dú) 設(shè)置某個(gè)Textview的字體,還在等什么,快來(lái)試試吧!

githubhttps://github.com/chrisjenx/Calligraphy

作者:Christopher Jenkins

使用:

dependencies {

compile'uk.co.chrisjenx:calligraphy:2.3.0'}

39.AndroidSlidingUpPanel

一句話(huà)介紹:可拖動(dòng)的滑動(dòng)面板視圖框架

上榜理由:如果你的項(xiàng)目需要一個(gè)可拖拽的滑動(dòng)式面板(展示某些詳情信息,播放音樂(lè),地圖信息等),那么推薦你使用它,6.3k個(gè)star,來(lái)自創(chuàng)業(yè)公司umano的作品,證明它是用心推出的杰作

githubhttps://github.com/umano/AndroidSlidingUpPanel

作者:umano

使用:

dependencies {

repositories {

mavenCentral()

}

compile'com.sothree.slidinguppanel:library:3.3.1'}

40.AppIntro

一句話(huà)介紹:一款提供快速制作歡迎頁(yè)的框架

上榜理由:筆者從未把打算把歡迎頁(yè)框架納入排行榜當(dāng)中,作為國(guó)內(nèi)開(kāi)發(fā)者,ViewPager開(kāi)發(fā)App的歡迎頁(yè)已經(jīng)是手到擒來(lái)的需求,為何一個(gè)開(kāi)源的歡迎頁(yè)框架會(huì)在github上擁有6.3k個(gè)star?也許你會(huì)不屑一顧,是的,往往就在不屑一顧的瞬間,機(jī)遇就悄悄溜走了。

githubhttps://github.com/apl-devs/AppIntro

作者:Paolo Rotolo

allprojects {

repositories {

...

maven { url'https://jitpack.io'}

}

}

dependencies {

compile'com.github.apl-devs:appintro:v4.2.0'}

41.recyclerview-animators

一句話(huà)介紹:一款為Recyclerview提供擴(kuò)展動(dòng)畫(huà)能力的框架

上榜理由:有一句老話(huà):如果有天你失去對(duì)新事物的興趣,那就說(shuō)明你老了。recyclerview已經(jīng)推出快三年了,還在用listview的人們,是否已經(jīng)發(fā)掘自己漸漸變老;不要灰心,快為你的項(xiàng)目加入recyclerview-animators框架吧,為“自己”加入新鮮的血液和能量!(筆者備注:6.2K個(gè)star)

githubhttps://github.com/wasabeef/recyclerview-animators

作者;https://github.com/wasabeef

使用:

dependencies {//jCentercompile'jp.wasabeef:recyclerview-animators:2.2.6'}

42.dagger

一句話(huà)介紹:一款通過(guò)依賴(lài)注入降低程序間耦合的開(kāi)發(fā)框架

上榜理由:github 上dagger1版本 有6.2k個(gè)star , dagger2版本有7.3k個(gè);由square完成的dagger1版本,到如今google團(tuán)隊(duì)接手的dagger2版本,強(qiáng)力開(kāi)發(fā)團(tuán)隊(duì)保證了代碼在設(shè)計(jì)上的優(yōu)越性;如果你想探究Android 領(lǐng)域的設(shè)計(jì)模式,這也是不錯(cuò)的選擇。

官網(wǎng)地址:https://google.github.io/dagger/

github :https://github.com/google/dagger

作者:google

使用:

dependencies {

compile'com.google.dagger:dagger:2.x'annotationProcessor'com.google.dagger:dagger-compiler:2.x'}

If you're using classes in dagger.android you'll also want to include:

compile'com.google.dagger:dagger-android:2.x'compile'com.google.dagger:dagger-android-support:2.x'annotationProcessor'com.google.dagger:dagger-android-processor:2.x'

43.Android-Bootstarp

一句話(huà)介紹:一款提供在Android應(yīng)用上實(shí)現(xiàn)Bootstrap(web框架)所作出效果的框架

上榜理由:榜單上第二款響應(yīng)web技術(shù)的Android 端框架,還記得第一名是誰(shuí)嗎——flexbox-layout,作為Android開(kāi)發(fā)者,你有必要去了解Web技術(shù)了。5.9k個(gè)star,證明它不容小覷

githubhttps://github.com/Bearded-Hen/Android-Bootstrap

作者:Bearded-Hen團(tuán)隊(duì)

使用:

dependencies {

compile'com.beardedhen:androidbootstrap:{X.X.X}'}

44.RxBinding

一句話(huà)介紹:一款提供UI組件事件響應(yīng)能力的框架

上榜理由:如果你還未開(kāi)始RxAndroid 之旅,RxBinding可以作為你的第一站,通過(guò)RXBinding,你將理解響應(yīng)式編程的快樂(lè),讓項(xiàng)目里的事件流程更清晰。5.6K個(gè)star,RxAndroid作者親自操刀,快來(lái)試用吧!

githubhttps://github.com/JakeWharton/RxBinding

作者:JakeWharton

Platform bindings:

compile'com.jakewharton.rxbinding2:rxbinding:2.0.0''support-v4'library bindings:

compile'com.jakewharton.rxbinding2:rxbinding-support-v4:2.0.0''appcompat-v7'library bindings:

compile'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.0.0''design'library bindings:

compile'com.jakewharton.rxbinding2:rxbinding-design:2.0.0''recyclerview-v7'library bindings:

compile'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.0.0''leanback-v17'library bindings:

compile'com.jakewharton.rxbinding2:rxbinding-leanback-v17:2.0.0'

45.ListViewAnimations

一句話(huà)介紹:一款為L(zhǎng)istView提供動(dòng)展示畫(huà)效果能力的框架

上榜理由:如果有一天我承認(rèn)自己老了,我還會(huì)排排我的兄弟——ListView,證明我和它一起戰(zhàn)斗過(guò)。ListViewAnimations的存在就是證明我們這些“老年人”仍有用武之地,也許你有說(shuō)不出口的難處,無(wú)法體會(huì)到RecyclerView里動(dòng)畫(huà)的快樂(lè),擁有ListViewAnimations,你一樣可以驕傲的說(shuō),我的孩子(每個(gè)item)也有自己的動(dòng)效啦。(筆者備注 5.6K個(gè)star)

githubhttps://github.com/nhaarman/ListViewAnimations

作者:nhaarman

使用:

repositories {

mavenCentral()

}

dependencies {

compile'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'compile'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar'compile'com.nhaarman.listviewanimations:lib-core-slh:3.1.0@aar'}

46.UItimateRecyclerView

一句話(huà)介紹:一款提供刷新、加載更多、動(dòng)畫(huà)特效等額外能力的RecyclerView框架

上榜理由:榜單上第三次出現(xiàn)RecyclerView的身影,足以證明RecyclerView的優(yōu)異性,5.5K個(gè)star,框架里所提供眾多的能力,如果你是個(gè)功利開(kāi)發(fā)者,那么此框架會(huì)為你節(jié)省很多學(xué)習(xí)時(shí)間,它可以完成多item式布局的大多數(shù)需求,值得注意的是,這個(gè)項(xiàng)目也是在其他項(xiàng)目的思路上二次開(kāi)發(fā)的。

githubhttps://github.com/cymcsg/UltimateRecyclerView

作者:MarshalChen

使用:

repositories {

jcenter()

}

dependencies {

...

compile'com.marshalchen.ultimaterecyclerview:library:0.7.2'}

47.uCrop

一句話(huà)介紹:一款優(yōu)雅的圖片裁剪框架

上榜理由:5.3K個(gè)star,圖片編輯模塊單獨(dú)拎出來(lái)也是一款優(yōu)雅的App。

githubhttps://github.com/Yalantis/uCrop

作者:Yalantis

使用:

allprojects {

repositories {

jcenter()

maven { url"https://jitpack.io"}

}

}

compile'com.github.yalantis:ucrop:2.2.1'

48.RxJava-Android-Samples

一句話(huà)介紹:一款介紹RxJava使用場(chǎng)景的app

上榜理由:榜單出現(xiàn)的第一個(gè)“僅僅為告訴你如何使用另一個(gè)項(xiàng)目”的開(kāi)源項(xiàng)目,它可以說(shuō)是RxJava的用例,你想得到的想不到的RxJava用法這里都有,這就是為什么它以5.2k個(gè)star矗立在這份榜單里的原因。遺憾自己沒(méi)有創(chuàng)作這么一個(gè)受人追捧的demo?趕快動(dòng)手寫(xiě)個(gè)其他的“XX項(xiàng)目用例吧”

githubhttps://github.com/kaushikgopal/RxJava-Android-Samples

作者:kaushikgopal

使用:

clone到本地慢慢探索吧

49.AndroidAutoLayout

一句話(huà)介紹:一個(gè)提供適配能力的框架

上榜理由:5.2K個(gè)star,鴻洋老弟的作品,適合小項(xiàng)目的開(kāi)發(fā)團(tuán)隊(duì),拿到設(shè)計(jì)MM的px像素設(shè)計(jì)稿是不是很頭疼捏?這個(gè)框架一鍵式搞定你的問(wèn)題,它有很多的不足,但在追求完美適配的路上,你值得探索和了解它!筆者并不推薦把它應(yīng)用到已經(jīng)成熟運(yùn)行的項(xiàng)目中,畢竟市面上已經(jīng)有太多的適配解決方案了,適配問(wèn)題就像是個(gè)大雜燴,想炒一盤(pán)好菜,就得備好各種佐料(適配小方案),當(dāng)你把各種小佐料用的爐火純青的時(shí)候,你離美食大廚就不遠(yuǎn)了。

githubhttps://github.com/hongyangAndroid/AndroidAutoLayout

作者:張鴻洋

使用:

dependencies {

compile'com.zhy:autolayout:1.4.5'}

50.EffectiveAndroidUI

一句話(huà)介紹:一款講解高效展示UI的教學(xué)型App

上榜理由:編程新手很難對(duì)MVC MVP,MVVM等模式有深刻的理解,如果有一個(gè)示例型app,那對(duì)初學(xué)者會(huì)有很大裨益,筆者在遇到它時(shí)也是相見(jiàn)恨晚。4.8K個(gè)star,證明了它經(jīng)受了廣大開(kāi)發(fā)者的考驗(yàn)與審視,其中Effective UI的編程思想更是與Android官方課程里的Effective UI課程不謀而合,并且,此項(xiàng)目還包含了fragment、dagger、主題樣式、Butterknife等眾多小知識(shí)點(diǎn),作為編程初學(xué)者的學(xué)習(xí)用例再適合不過(guò)了

githubhttps://github.com/pedrovgs/EffectiveAndroidUI

作者:Pedro Vicente

使用:

clone項(xiàng)目到本地

原文:http://www.cnblogs.com/jincheng-yangchaofan/articles/7018780.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容