一.榜單介紹
排行榜包括四大類:
單一框架:僅提供路由、網絡層、UI層、通信層或其他單一功能的框架
混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架
企業級開源項目:可以獨立運行的app,有極高的學習價值、思路借鑑意義
書籍類開源項目:類似Open-sourc-project這樣的導航類項目;大型公司的Android課程的學習目錄 tips
榜單排序依據:
1.項目開源
2.github上該項目的star個數
3.開發團隊、作者的實力
爲了保證榜單內容的多樣性,榜單上儘可能的不重複同類型框架(比如多款listview增強框架)
適用讀者範圍:
-
正在入門Android的新手~~~Android初級開發工程師 初出茅廬
熟讀《書籍導航類項目排行榜》,勤加練習進步會更大;編譯運行並動腦思考《企業級開源項目》中的案例,可以提升開發完整項目的能力;;略讀《框架百大排行榜》,最大的作用是的是拓展視野,可以看到很多時下流行的名詞概念術語
-
Android初級開發工程師~~~中級開發工程師 知其然知其所以然
熟練、快速、高效的默寫出《企業級開源項目》中的(自己感興趣)典型案例,對提高書寫代碼的自信,提升項目功能整體設計能力;深究《框架百大排行榜》排名靠前框架的原理,會讓自己在與家人、同事、同學聚會之時多了一些炫耀的資本;如果你能熟練運用《框架百大排行榜》裏所提到的框架,在遇到某種需求的時候,立刻會拿出“最優秀的框架”去解決,意味着你離中級工程師不太遠了
-
中級、高級、資深工程師 知其然知其不可然
《框架百大排行榜》裏所提到的流行詞、流行術語——使用能力、融會貫通其原理、講解框架能力的高低,將讓你不斷的在這三個級別徘徊;
會有意識的合併榜單裏多款同類型框架,來彌補單一框架的某些缺陷,比如將同爲網絡請求框架的Volley和Okhttp封裝到一起應對不同場面的需求;
會有意識的二次開發、修改源碼來擴展榜單所提到的大型框架;
能夠在開發團隊裏推動、部署某些框架的能力——比如要在一個新加入的陌生團隊說服leader和項目成員使用熱更新、插件化、組件化、hybrid 開發等多種開發模式,你是否有這個實力?
框架名次越靠前,值得使用的優先級就越高、研究原理得到的收穫會更多、對讀者啓發的價值就越大
二.百大框架排行榜
快速索引
框架名稱 |
上榜關鍵字 |
1.Retrofit |
網絡 |
2.okhttp |
網絡 |
3.Butter Knife |
代碼模板 |
4.MPAndroidChart |
圖表 |
5.glide |
圖片 |
6.leakcanary |
內存 |
7.Android-Universal-Image-Loader |
圖片 |
8.EventBus |
事件消息 |
9.zxing |
條碼掃描 |
10.picasso |
圖片 |
11.lottie-android |
動畫 |
12.fresco |
圖片 |
13.RxAndroid |
異步 |
14.SlidingMenu |
菜單 |
15.PhotoView |
圖片 |
16.material-dialogs |
UI |
17.droid-async-http |
網絡 |
18.androidannotations |
註解 |
19.fastjson |
json |
20.Material-Animations |
動畫 |
21.tinker |
熱修復 |
22.ViewPagerIndicator |
UI |
23.Android-CleanArchitecture |
架構 |
24.Android-PullToRefresh |
刷新 |
25.flexbox-layout |
UI |
26.AndroidSwipeLayout |
UI |
27.realm-java |
數據庫 |
28.greenDAO |
數據 |
29.stetho |
調試 |
30.BaseRecyclerViewAdapterHelper |
UI |
31.AndroidViewAnimations |
動畫 |
32.MaterialDrawer |
菜單 |
33.Android-ObservableScrollView |
UI |
34.CircleImageView |
圖片 |
35.logger |
調試 |
36.agera |
異步 |
37.BottmBar |
菜單 |
38.Calligraphy |
字體 |
39.AndroidSlidingUpPanel |
UI |
40.AppIntro |
UI |
41.recyclerview-animators |
動畫 |
42.dagger |
依賴注入 |
43.Android-Bootstarp |
UI |
44.RxBinding |
響應式 |
45.ListViewAnimations |
動畫 |
46.UItimateRecyclerView |
UI |
47.uCrop |
圖片 |
48.RxJava-Android-Samples |
用例 |
49.AndroidAutoLayout |
適配 |
50.EffectiveAndroidUI |
性能 |
51.Luban |
圖片 |
52.DroidPlugin |
插件化 |
53.otto |
響應式 |
54.u2020 |
用例 |
55.buck |
構建 |
56.PermissionsDispatcher |
權限 |
57.android-gif-drawable |
GIF |
58.Apktool |
反編譯 |
59.dynamic-load-apk |
插件化 |
60.atlas |
插件化 |
61.volley |
網絡 |
62.androidmvp |
用例 |
63.SwipeBackLayout |
手勢 |
64.FlycoTabLayout |
UI |
65.android-testing |
測試 |
66.FileDownloader |
下載 |
67.JieCaoVideoPlayer |
多媒體 |
68.glide-transformations |
圖片 |
69.android-gpuimage |
圖片 |
70.RxPermissions |
權限 |
71.freeline |
編譯 |
72.RxLifecycle |
生命週期 |
73.classyshark |
反編譯 |
74.acra |
崩潰日誌 |
75.DiskLruCache |
文件 |
76.dexposed |
熱修復 |
77.Litho |
性能 |
78.mosby |
MVP |
79.AndResGuard |
混淆 |
80.StatusBarUtil |
狀態欄 |
81.robolectric |
測試 |
82.Fragmentation |
嵌套 |
83.Small |
插件化 |
84.JsBridge |
hybrid |
85.richeditor-android |
UI |
86.Transitions-Everywhere |
動畫 |
87.android-viewbadger |
勳章 |
88.AndroidWiFiADB |
調試 |
89.emojicon |
表情包 |
90.packer-ng-plugin |
多渠道 |
91.android-priority-jobqueue |
多線程 |
92.Android-Debug-Database |
調試 |
93.conceal |
加密 |
94.ARouter |
頁面路由 |
95.MagicaSakura |
多主題 |
96.CustomActivityOnCrash |
崩潰 |
97.XhsEmoticonsKeyboard |
鍵盤 |
1. Retrofit
一句話介紹:Retrofit是一款類型安全的網絡框架,基於HTTP協議,服務於Android和java語言
上榜理由:Retrofit以21.8k的stars量雄踞github中android子標題榜首,第一當之無愧。
官網地址 http://square.github.io/retrofit/
github https://github.com/square/retrofit
2.okhttp
一句話介紹:okhttp是一款基於HTTP和HTTP2.0協議的網絡框架,服務於java和android客戶端
上榜理由,okhttp以20.4k的stars量雄踞github中android子標題第二名。大型公司比如淘寶也封裝的是okhttp。Retrofit2.0開始內置okhttp框架,Retrofit專注封裝接口完成業務需求,okhttp專注網絡請求的安全高效,筆者將兩者區分開,是想讓後來學習者知道,這是兩套框架,學習框架原理時可以分開學習,以免理解混亂。
官網地址 http://square.github.io/okhttp/
github https://github.com/square/okhttp
3.Butter Knife
一句話介紹:Butter Knife所提供了一種能力——使用註解生成模板代碼,將view與方法和參數綁定。
上榜理由:github上16.5K個star,配合Androidstudio提供的Butter Knife插件,幫助開發者省卻了頻繁findviewbyid的煩惱,最新的Butter Knife還提供了onclick綁定以及字符串的初始化,初學者可以查閱Butter Knife以及Butter Knife插件進一步學習!
官網地址:http://jakewharton.github.io/butterknife/
github:https://github.com/JakeWharton/butterknife
4.MPAndroidChart
一句話介紹:MPAndroidChart是一款圖表框架
上榜理由:github上16.1K個star,以快速、簡潔。強大著稱的圖表框架
官網地址 https://github.com/PhilJay/MPAndroidChart
github https://github.com/PhilJay/MPAndroidChart
5. glide
一句話介紹:glide是一款專注於提供流暢划動能力的“圖片加載和緩存框架”
上榜理由:15.9k個star,圖片加載類框架排名第一的框架,google 在2014開發者大會上演示的camera app就是基於gilde框架開發的
github https://github.com/bumptech/glide
6.leakcanary
一句話介紹:一款內存檢測框架,服務於java和android客戶端
上榜理由:方便,簡潔是leakcanary最大的特點,只需在應用的apllication中集成,就可以直接使用它;15.5k個star說明了它有多麼受歡迎
github https://github.com/square/leakcanary
7.Android-Universal-Image-Loader
一句話介紹:曾經的圖片加載框架王者,android開發老手都用過它
上榜理由:android端圖片加載框架的老大哥了,15.3k個star足以證明它的熱門,UIL與gilde最大區別是可定製,UIL提供了大量配置方式,圖片加載狀態的回調(成功,失敗,進行中),加載動畫等;以及提供了移動端圖片加載框架的緩存思路:三級緩存策略 sd卡-內存-網絡;值得注意的是,UIL以及兩年未更新了,但筆者仍推薦各位使用!
github https://github.com/nostra13/Android-Universal-Image-Loader
作者 nostra13
使用:
下載地址 universal-image-loader-1.9.5.jar
8.EventBus
一句話介紹:EventBus是一款本地組件間通信框架
上榜理由:組件間通信框架star量第一:14.8k,在大型項目的Activities,fragments,Threads,Services都可以看到它的使用場景,儘管EventBus在向未創建的組件傳遞事件時有些侷限,僅適合在“活着的”組件間傳遞消息,但仍不妨礙它活躍在各個大型項目各個場景裏。
官網地址 http://greenrobot.org/eventbus/documentation/how-to-get-started/
github https://github.com/greenrobot/EventBus
9.zxing
一句話介紹:條碼圖像處理庫
上榜理由:如果你用過二維碼,你肯定已經間接使用過大名鼎鼎的zxing了。13.9K的star量,讓它排在本榜單第九,實至名歸,如果你有了解二維碼的需求,不妨從瞭解、修改它源碼入手。
github https://github.com/zxing/zxing
作者 Sean Owen
10.picasso
一句話介紹:強力的圖片下載、緩存框架
上榜理由:本榜單出現的第三款圖片類框架,不同的是picasso更強調圖片下載,你可以將picasso集成進你的項目中,你也可以結合gilde和UIL與picasso,三者一齊封裝至你的項目中,按需所用。
官網地址 http://square.github.io/picasso/
github https://github.com/square/picasso
11.lottie-android
一句話介紹:一款可以在Android端快速展示Adobe Afeter Effect(AE)工具所作動畫的框架
上榜理由:動畫類框架第一名,github上13.3k個star證明了他的優越性,利用json文件快速實現動畫效果是它最大的便利,而這個json文件也是由Adobe提供的After Effects(AE)工具製作的,在AE中裝一個Bodymovin的插件,使用這個插件最終將動畫效果生成json文件,這個json文件即可由LottieAnimationView解析並生成絢麗的動畫效果。而且它還支持跨平臺喲。
github https://github.com/airbnb/lottie-android
12.fresco
一句話介紹:一款可以管理圖片內存的框架
上榜理由:github上12.8k個star,圖片類排行榜第四名,facebook的出身證明了它並非是重複造的輪子,在管理圖片內存領域上有着它的一片天地,漸進式加載、加載gif都是它與前三位相比獨有的特性
官網地址: https://www.fresco-cn.org/
github https://github.com/facebook/fresco
13.RxAndroid
一句話介紹:一款Android客戶端組件間異步通信的框架
上榜理由:github上12.7k個star,位居組件通信框架的第二名,僅在EventBus之後,如果要問兩者的區別,Eventbus是用來取代組件間繁瑣的interface,RxAndroid是用來取代AnsyTask的,並不衝突;當然RxAndroid的優點並不僅限於此,更多優雅的實現,可以去官網查閱!
github https://github.com/ReactiveX/RxAndroid
14.SlidingMenu
一句話介紹:側滑菜單欄框架
上榜理由:與Userval-Image-loader 齊名的上古神器框架——爲你的app提供側滑菜單欄的功能;github閃更有10.5k個star,證明了它的經久不衰,即使在Google推出了NavigationDrawer,仍然沒有減少開發者對SildingMenu的擁簇,經典總是經得起考驗的,這個上古神獸已經四年沒有更新了;有太多太多的app使用過它,這些都可以在軟件的開源許可上看到!
github https://github.com/jfeinstein10/SlidingMenu
作者 Jeremy Feinstein
使用:
在gihub上fork源碼,集成進項目中
15.PhotoView
一句話介紹:一款ImageView展示框架,支持縮放,響應手勢
上榜理由:10.3k的star數量,位於圖片類框架排行榜第五位,PhotoView與前四位不同的是這次帶來的是圖片的展示能力,你一定好奇微信的頭像點擊放大是如何實現的,很多App的圖片顯示響應手勢按壓是如何實現的,瞭解PhotoView,你一定會開心的!(筆者也不會告訴你ImageView的點擊放大效果在Android的sample也有)
github https://github.com/chrisbanes/PhotoView
16.material-dialogs
一句話介紹:一款自定義dialog框架
上榜理由:9.9k個star,也是繼PhotoView,SlidingMenu之後第三款自定義View框架,也許你還是自定義View的新人,對Dialog使用的還有點生疏,你可以通過它提升你的Dilaog使用能力
github https://github.com/afollestad/material-dialogs
17.droid-async-http
一句話介紹:一款基於Http協議的異步請求的網絡框架,
上榜理由:雖然你有無數個使用retrofit+okhttp的理由,但9.8k個star,證明它仍然值得你深入學習。值得注意的是,它也已經有兩年沒更新了,你儘管拿去當你懶惰的理由!
github https://github.com/loopj/android-async-http
18.androidannotations
一句話介紹:一款基於註解的快速開發框架
上榜理由:與Butterknife一樣基於註解,利用註解快速完成view的初始化,不同的是androidannotations提供了更多的能力:簡單的線程模型等;筆者只接觸過Butterknife,無法更進一步敘述androidannotations的優勢,如果你志在深入瞭解註解的妙用,可以嘗試探索一下!
官網地址 http://androidannotations.org/
github https://github.com/androidannotations/androidannotations
19.fastjson
一句話介紹:一款基於json解析、生成的框架
上榜理由:從它的名字不難看出,快速是它最大的特性,阿里巴巴的出身保證了代碼的質量和優越,9.4k的star數量,也是榜單裏第一個出現的中國開源框架,涉及網絡的app都會用到json,fastjson值得作爲你的首選!
github https://github.com/alibaba/fastjson
20.Material-Animations
一句話介紹:一款提供場景轉換過渡能力的動畫框架
上榜理由:Android動畫框架排行榜第二名,9.3k個star數量,與動畫框架榜單第一名lottie-android不同的是,Material-Animations提供的是場景切換的動畫效果。Android 官網sample中已經提供了部分Transition (轉場動畫)的展示,作爲初學者很難快速拓展到自己項目中,Material-Animations的示例出現爲開發者省去了此類麻煩,直接照搬應用到自己的App中吧。
github https://github.com/lgvalle/Material-Animations
21.tinker
一句話介紹:它是微信官網的Android熱補丁解決方案
上榜理由:9.1k個star,微信在用的熱補丁方案,心動不如行動
官網地址 http://www.tinkerpatch.com/Docs/intro
github https://github.com/Tencent/tinker
22.ViewPagerIndicator
一句話介紹:一款基於ViewPager的頁面指示器開源框架
上榜理由:上古神器,儘管已經五年未更新了,但你仍然可以在淘寶等app中看到它的使用場景,8.9K的star量讓它不慍不火的在矗立在榜單裏
官網地址 http://viewpagerindicator.com/
github https://github.com/JakeWharton/ViewPagerIndicator
作者:JakeWharton
使用:
下載 地址 https://github.com/JakeWharton/Android-ViewPagerIndicator/zipball/master
23.Android-CleanArchitecture
一句話介紹:一個講解設計框架的demo
上榜理由:它不是框架,你可以把它當作一本書,它將教會你如何設計簡潔的架構,工程裏有一個sample app,配合圖文講解,你將對Android客戶端的架構有更深一層的認識。8.8k的star數量,證明了它是一本“好書”喲。
github https://github.com/android10/Android-CleanArchitecture
24..Android-PullToRefresh
一句話介紹:一款爲普通視圖提供刷新UI的視圖框架
上榜理由:8.2K的star數量使它位居刷新類UI框架榜首,強大的兼容能力,該框架支持ListView,GrdiView,WebViewScrollView,ViewPager等衆多View增加刷新的能力,如果你有增加上拉加載,下拉加載的需求,你應該考慮它了!
github https://github.com/chrisbanes/Android-PullToRefresh
作者:Chris Banes
25.flexbox-layout
一句話介紹:一款彈性伸縮佈局
上榜理由:8.1k個star,前端H5開發者轉Android開發的福音,FlexboxLayout作爲LinearLayout
和RelativeLayout的替代者,值得各位一試,與其一同推出的還有ConstraintLayout。
github https://github.com/google/flexbox-layout
26.AndroidSwipeLayout
一句話介紹:非常強大滑動式佈局
上榜理由:滑動刪除是國產app常見需求,商品詳情的上下滑動需求作爲開發者的我們也經常遇到,AndroidSwipeLayout在github上擁有8K個star,證明它經受住了檢驗,各位值得一試
github https://github.com/daimajia/AndroidSwipeLayout
27.realm-java
一句話介紹:Realm是一款移動端數據庫框架
上榜理由:核心數據引擎C++打造,比普通的Sqlite型數據庫快的多。筆者猜測正是如此,realm以7892個star數讓它位於大名鼎鼎的數據庫框架GreenDao(7877)之前
官網地址:https://realm.io/cn/
github https://github.com/realm/realm-java
作者:Realm團隊
使用:https://realm.io/docs/java/latest/
28.greenDAO
一句話介紹:greenDAO是一款高效、快速的SQLite型數據庫
上榜理由:greenDAO的star數量與Realm不相上下,且與EventBus師出同門,也是由greenrobot團隊開發維護的,質量有所保證,但若拷問筆者Realm與greenDao兩者的優劣性,只能具體到實際使用當中,模擬線上的使用情形,進行高強度測試後才能下判斷,故在此不能一言兩語說完,深表遺憾
官網地址:http://greenrobot.org/greendao/
github https://github.com/greenrobot/greenDAO
29.stetho
一句話介紹:一款提供在Chrome開發者工具上調試Android app能力的開源框架
上榜理由:上古時期Android程序員要調試本地數據庫,需要進入Android Device Monitor找到/data/data/com.xxx.xxx/databases裏面的db文件,導出到PC端,用PC的數據工具查看,現在使用stetho省卻瞭如此的麻煩;如今的Android程序員如果想調試網絡請求響應過程中的報文段,需要在請求中加入Log語句,一個信息一個信息打印出來,相當繁瑣,現在請使用stetho,省卻諸如此類的麻煩把!7.8K個star數,廣大Android開發者調試的福音,你值得擁有!
作者:FaceBook
官網地址: http://facebook.github.io/stetho/
github https://github.com/facebook/stetho
30.BaseRecyclerViewAdapterHelper
一句話介紹:強大、流暢的Recyvlerview通用適配器
上榜理由:如果你是RecyclerView的擁簇者,你一定要體驗這款專門服務該view的適配器,7.7K個star,讓這個傢伙位於github上Android 適配器排行榜第一,還有很多驚喜等你去探尋!
官網地址:http://www.recyclerview.org/
31.AndroidViewAnimations
一句話介紹:一款提供可愛動畫集合的框架
上榜理由:正如作者所說,它囊括了開發需求過程中所有的動畫效果,集成進了這個簡潔可愛的動畫框架。7.6K的star數,證明了它在動畫框架領域的戰鬥力,讓它僅僅位列lottie-android和Material-Animations兩個動畫框架霸主之後,屈居第三名
github https://github.com/daimajia/AndroidViewAnimations
32. MaterialDrawer
一句話介紹:強大的塑料風格的抽屜框架
上榜理由:7.6K的star數量,作者的持續更新狀態,如果你還在猶豫上手SlidingMenu遇到bug沒人管的困境,那麼你可以入手它作爲你的抽屜佈局
github https://github.com/mikepenz/MaterialDrawer
33.Android-ObservableScrollView
一句話介紹:一款讓視圖滑動更具有視覺效果的滑動式框架
上榜理由:7.5K的star數量,證明了它曾經的價值,github上提供了12種滑動效果,你可以用它彌補其他框架的不足,提升你的App體驗!
github https://github.com/ksoichiro/Android-ObservableScrollView
34.CircleImageView
一句話介紹:圓角ImageView
上榜理由:也許你已經聽說過無數種展示圓角圖片的方法,但如果你不嘗試嘗試CircleImageView,那麼你的知識庫會因爲少了它黯然失色,有的時候完成需求是開發者優先考慮的,不同實現方法牽扯到的性能差異更值得讓人深思,如果你有心在圖片性能上有所涉獵,那麼CircleImageView絕對不會讓你敗興而歸。最後別忘了記得去看Romain Guy的建議喲。
github https://github.com/hdodenhof/CircleImageView
35.logger
一句話介紹:一款讓log日誌優雅顯示的框架
上榜理由:logger作爲調試框架,並未給出很強大的能力,它最大的亮點是優雅的輸出log信息,並且支持多種格式:線程、Json、Xml、List、Map等,如果你整日沉迷於汪洋大海般的log信息不能自拔,logger就是你的指路明燈!6.6k個star讓他位列調試框架第二名,屈居facebook的stetho之後
github https://github.com/orhanobut/logger
36.agera
一句話介紹:一款服務於Android平臺的響應式編程框架
上榜理由:google專門推出一套響應式編程框架服務於Android開發者,相比於之響應式編程框架榜首的 RxJava RxAndroid,它更輕量,兩者最大的不同點在於agera基於push event、pull data (VS Rx系列 push data)。
github https://github.com/google/agera
作者:Google
37.BottmBar
一句話介紹:一款底部導航欄視圖框架
上榜理由:底部欄裏的王者框架,6.3K的star數量,證明了它的優秀,完全遵循材料設計規範,上手非常方便。如果說缺點,無法設置icon與titile的間距,無法自定義視圖的大小等,但這些都可以通過修改源代碼解決,筆者獻醜也修改了一套符合國內開發者的底部導航框架,即將開源。
github https://github.com/roughike/BottomBar
作者:Iiro Krankka
38.Calligraphy
一句話介紹:一款自定義字體框架
上榜理由:如果你還在爲一鍵修改App內所有字體樣式而煩惱,6.3K個star的Calligraphy就值得你擁有,它可以同時修改整個整個項目的Textview字體,也可以單獨 設置某個Textview的字體,還在等什麼,快來試試吧!
github https://github.com/chrisjenx/Calligraphy
作者:Christopher Jenkins
39.AndroidSlidingUpPanel
一句話介紹:可拖動的滑動面板視圖框架
上榜理由:如果你的項目需要一個可拖拽的滑動式面板(展示某些詳情信息,播放音樂,地圖信息等),那麼推薦你使用它,6.3k個star,來自創業公司umano的作品,證明它是用心推出的傑作
github https://github.com/umano/AndroidSlidingUpPanel
作者:umano
40.AppIntro
一句話介紹:一款提供快速製作歡迎頁的框架
上榜理由:筆者從未把打算把歡迎頁框架納入排行榜當中,作爲國內開發者,ViewPager開發App的歡迎頁已經是手到擒來的需求,爲何一個開源的歡迎頁框架會在github上擁有6.3k個star?也許你會不屑一顧,是的,往往就在不屑一顧的瞬間,機遇就悄悄溜走了。
github https://github.com/apl-devs/AppIntro
41.recyclerview-animators
一句話介紹:一款爲Recyclerview提供擴展動畫能力的框架
上榜理由:有一句老話:如果有天你失去對新事物的興趣,那就說明你老了。recyclerview已經推出快三年了,還在用listview的人們,是否已經發掘自己漸漸變老;不要灰心,快爲你的項目加入recyclerview-animators框架吧,爲“自己”加入新鮮的血液和能量!(筆者備註:6.2K個star)
github https://github.com/wasabeef/recyclerview-animators
作者;https://github.com/wasabeef
42.dagger
一句話介紹:一款通過依賴注入降低程序間耦合的開發框架
上榜理由:github 上dagger1版本 有6.2k個star , dagger2版本有7.3k個;由square完成的dagger1版本,到如今google團隊接手的dagger2版本,強力開發團隊保證了代碼在設計上的優越性;如果你想探究Android 領域的設計模式,這也是不錯的選擇。
官網地址:https://google.github.io/dagger/
github :https://github.com/google/dagger
43.Android-Bootstarp
一句話介紹:一款提供在Android應用上實現Bootstrap(web框架)所作出效果的框架
上榜理由:榜單上第二款響應web技術的Android 端框架,還記得第一名是誰嗎——flexbox-layout,作爲Android開發者,你有必要去了解Web技術了。5.9k個star,證明它不容小覷
github https://github.com/Bearded-Hen/Android-Bootstrap
44.RxBinding
一句話介紹:一款提供UI組件事件響應能力的框架
上榜理由:如果你還未開始RxAndroid 之旅,RxBinding可以作爲你的第一站,通過RXBinding,你將理解響應式編程的快樂,讓項目裏的事件流程更清晰。5.6K個star,RxAndroid作者親自操刀,快來試用吧!
github https://github.com/JakeWharton/RxBinding
45.ListViewAnimations
一句話介紹:一款爲ListView提供動展示畫效果能力的框架
上榜理由:如果有一天我承認自己老了,我還會排排我的兄弟——ListView,證明我和它一起戰鬥過。ListViewAnimations的存在就是證明我們這些“老年人”仍有用武之地,也許你有說不出口的難處,無法體會到RecyclerView裏動畫的快樂,擁有ListViewAnimations,你一樣可以驕傲的說,我的孩子(每個item)也有自己的動效啦。(筆者備註 5.6K個star)
github https://github.com/nhaarman/ListViewAnimations
46.UItimateRecyclerView
一句話介紹:一款提供刷新、加載更多、動畫特效等額外能力的RecyclerView框架
上榜理由:榜單上第三次出現RecyclerView的身影,足以證明RecyclerView的優異性,5.5K個star,框架裏所提供衆多的能力,如果你是個功利開發者,那麼此框架會爲你節省很多學習時間,它可以完成多item式佈局的大多數需求,值得注意的是,這個項目也是在其他項目的思路上二次開發的。
github https://github.com/cymcsg/UltimateRecyclerView
作者:MarshalChen
47.uCrop
一句話介紹:一款優雅的圖片裁剪框架
上榜理由:5.3K個star,圖片編輯模塊單獨拎出來也是一款優雅的App。
github https://github.com/Yalantis/uCrop
48.RxJava-Android-Samples
一句話介紹:一款介紹RxJava使用場景的app
上榜理由:榜單出現的第一個“僅僅爲告訴你如何使用另一個項目”的開源項目,它可以說是RxJava的用例,你想得到的想不到的RxJava用法這裏都有,這就是爲什麼它以5.2k個star矗立在這份榜單裏的原因。遺憾自己沒有創作這麼一個受人追捧的demo?趕快動手寫個其他的“XX項目用例吧”
github https://github.com/kaushikgopal/RxJava-Android-Samples
49.AndroidAutoLayout
一句話介紹:一個提供適配能力的框架
上榜理由:5.2K個star,鴻洋老弟的作品,適合小項目的開發團隊,拿到設計MM的px像素設計稿是不是很頭疼捏?這個框架一鍵式搞定你的問題,它有很多的不足,但在追求完美適配的路上,你值得探索和了解它!筆者並不推薦把它應用到已經成熟運行的項目中,畢竟市面上已經有太多的適配解決方案了,適配問題就像是個大雜燴,想炒一盤好菜,就得備好各種佐料(適配小方案),當你把各種小佐料用的爐火純青的時候,你離美食大廚就不遠了。
github https://github.com/hongyangAndroid/AndroidAutoLayout
作者:張鴻洋
50.EffectiveAndroidUI
一句話介紹:一款講解高效展示UI的教學型App
上榜理由:編程新手很難對MVC MVP,MVVM等模式有深刻的理解,如果有一個示例型app,那對初學者會有很大裨益,筆者在遇到它時也是相見恨晚。4.8K個star,證明了它經受了廣大開發者的考驗與審視,其中Effective UI的編程思想更是與Android官方課程裏的Effective UI課程不謀而合,並且,此項目還包含了fragment、dagger、主題樣式、Butterknife等衆多小知識點,作爲編程初學者的學習用例再適合不過了
github https://github.com/pedrovgs/EffectiveAndroidUI
作者:Pedro Vicente
51.Luban
一句話介紹:最接近微信的圖片壓縮框架
上榜理由:好的思路總是可以讓你大放異彩,Luban僅以圖片壓縮單一功能,俘獲了4.8K個star,證明了它在圖片壓縮上的造詣,它可能不是最優秀的,但它是讓你我最接近偉大的項目
github https://github.com/Curzibn/Luban
52.DroidPlugin
一句話介紹:一款熱門的插件化開發框架
上榜理由:4.8K個star,插件化框架榜單第一名,,360團隊出品,框架質量有保證,有成功案例——360手機助手,並且持續維護着
github https://github.com/DroidPluginTeam/DroidPlugin/blob/master/readme_cn.md
53. otto
一句話介紹:一款老舊且強大的事件總線框架
上榜理由:4.8K個star,是square團隊早先推出的事件響應型框架,淘寶app的事件驅動也是基於此框架封裝的,如今square已經建議開發者採用RxJava RxAndroid來代替otto了。但otto仍有與EventBus橫向對比的價值,縱向來說,otto與square自家開發的Rx系列框架的差異同樣值得開發者們去探究。
github https://github.com/square/otto
54.u2020
一句話介紹:一款提供Dagger的高級教學示例的app(額,名字是有點繞)
上榜理由:4.7K個star,JakeWharton牽頭開發的教學類app,教你使用Dagger在其他高級框架的用法,它展示了Dagger與ButterKnife、Retrofit、Moshi、Picasso、Okhttp、RxJava、Timber、Madge、LeakCanar等衆多優秀框架結合起來的高級用法,你也可以借鑑到自己的項目當中
github https://github.com/JakeWharton/u2020
55.buck
一句話介紹:buck是一個快速構建系統
上榜理由:facebook+google出身的作者,對構建代碼的出色理解,加上大型團隊的維護,以及增量更新時的快速高效,讓buck成爲了微信Android團隊構建項目的首選,構建大型項目時,它比gradle更快,然而中小公司並不適合此框架,但作爲立志在框架設計領域有一番作爲的人們,歡迎來一探究竟
官網地址:https://buckbuild.com/
github https://github.com/facebook/buck
56.PermissionsDispatcher
一句話介紹:一款基於註解的提供解決運行時危險權限方案的框架
上榜理由:自Android6.0 Google提出危險權限一詞起,用戶安全性被提到一定的高度,一些運行時對用戶較爲危險的權限將不再自動被開發者獲取,需要經過用戶批准,開發者纔可以繼續使用該權限,如果你曾經被權限問題搞的抓耳撓腮,建議你試試這個框架,它足夠解決你的問題
官網地址:https://hotchemi.github.io/PermissionsDispatcher/
github https://github.com/hotchemi/PermissionsDispatcher
57.android-gif-drawable
一句話介紹:一款提供展示GIF動畫能力的視圖框架
上榜理由:據我所查國內著名App——知乎使用了android-gif-drawable,因此證明了它的存在價值,儘管在榜單第十一位介紹了lottie-android直接應用AE動畫的示例,但AE設計師不是每個公司都配備的,GIF的存在,就必然存在了展示GIF的需要,它值得你擁有!
github https://github.com/koral--/android-gif-drawable
58.Apktool
一句話介紹:一款反編譯apk的工具
上榜理由:開源的反編譯工具,對於志在瞭解apk逆向破解的諸位,值得擁有,4.5k個star,逆向破解apk神器!
github https://github.com/iBotPeaches/Apktool
官網地址:https://ibotpeaches.github.io/Apktool/
59.dynamic-load-apk
一句話介紹:插件化開發框架
上榜理由:4.5k個star,位於插件化開發框架第二名(第一名來自360團隊),全面的文檔介紹讓你很快就能上手插件化開發,如果你喜歡大段文字講解,那麼這個項目一定適合你
github:https://github.com/singwhatiwanna/dynamic-load-apk
60.atlas
一句話介紹:淘寶推出的組件化開發框架
上榜理由:淘寶團隊所出的精品,atlas框架提供瞭解耦、組件、動態的開發能力,4.5k個star讓他位列組件化開發框架第一名
github https://github.com/alibaba/atlas
61.volley
一句話介紹:google推薦使用的Android端網絡請求框架
上榜理由:4.4k個star,並不是他不夠優秀,而是使用volley已經漸漸成爲廣大開發者的習慣
github https://github.com/google/volley(新版volley地址)
62.androidmvp
一句話介紹:一款展示Android端Mvp設計的demo
上榜理由:榜單裏爲數不多、僅憑展示某種設計模式就獲得4.2K個star的項目,如果你有嘗試mvp的打算,androidmvp可以作爲你的前哨站
github https://github.com/antoniolg/androidmvp
作者:Antonio Leiva
使用:
clone到本地
63.SwipeBackLayout
一句話介紹:一款可以讓你通過滑動手勢關閉頁面的的框架
上榜理由:仿微信滑動退出當前聊天界面的效果,提供了activity的滑動關閉能力,通過這種思路,實現fragment的滑動關閉輕而易舉;筆者堅持建議諸位clone源碼到本地探索一番;4.2k個star證明很多人都喜愛它
github https://github.com/ikew0ng/SwipeBackLayout
64.FlycoTabLayout
一句話介紹:一款可以讓作出多種多樣指示器效果的框架
上榜理由:儘管我們沒有理由爲了給app加入頁面指示器功能就集成2.5M的依賴庫,但是作爲了解viewpager或swip views的指示器設計原理的優秀框架,你值得打開它試試,筆者建議單獨拆分所需源碼,加入到自己的項目中去。4.1K個star,二次開發的作品,仍然推薦!
github https://github.com/H07000223/FlycoTabLayout
作者:Flyco
65.android-testing
一句話介紹:一款展示四大自動化測試框架用例的demo(Espresso,UiAutomator,AndroidJunitRunner,JUnit4)
上榜理由:學習者經常會陷入似懂非懂的境地,如果你有幸學習過Android Testing Support Library site的課程,那麼你一定對android的四大測試框架迫不及待,這款demo非常適合你,快來學習這個4.1k個star的明星項目吧
github https://github.com/googlesamples/android-testing
作者:googlesampes團隊
66.FileDownloader
一句話介紹:一款高效、穩定、靈活、易用的文件下載引擎
上榜理由:4.1k證明了它有多受人喜愛,文件下載看似簡單的背後暗藏了多少的坑坑點點,我知道你有能力自己實現文件下載功能,但優秀的框架可以提升你的設計編碼能力,這款框架可以提升你的實力!
github https://github.com/lingochamp/FileDownloader
67.JieCaoVideoPlayer
一句話介紹:基於MediaPlayer api——VideoView 的多媒體播放框架
上榜理由:榜單裏第三款多媒體播放框架,它以靈巧的身姿擠入本榜單,精巧是它最大的優點,不到100k,擁有它,你就可以快速開發類似今日頭條那樣的視頻播放效果,4k個star,證明它值得一試
github https://github.com/lipangit/JieCaoVideoPlayer
68.glide-transformations
一句話介紹:爲衆多著名圖片加載框架提供圖片形狀變幻能力的框架
上榜理由:在榜單靠前的部分已經介紹過glide,Picasso,Fresco等圖片加載框架,glide-transformations就是一款爲他們提供圖片變形能力的框架,使用起來非常簡單,因此受到了大家的喜愛,github上有3.8K個star
github https://github.com/wasabeef/glide-transformations
作者:Daichi Furiya
69.android-gpuimage
一句話介紹:一款基於OpenGL的圖片渲染引擎
上榜理由:放下GpuImage在IOS平臺的榮譽不談,Android版的android-gpuimage就提供多達70多種圖片渲染效果,你還在好奇美圖秀秀是如何實現圖片變幻的?有了它,一切都不是問題。如果你是美圖工具類的工程師,此框架的建設思路也會對你大有裨益。筆者也是通過android-gpuimage仿造了美圖App並俘獲女友芳心的,再次爲它的實力點贊。ios版+android版一共19k個star,已經證明了它的實力,還在等什麼呢?
github:https://github.com/CyberAgent/android-gpuimage
更多的改造方法,還需要閱讀Ios的編程文檔,對於有毅力的小夥伴強力推薦!
70.RxPermissions
一句話介紹:一款基於RxJava完成權限申請的框架
上榜理由:榜單裏第二款提供權服務的框架,基於RxJava的設計,讓你可以專心寫業務,3.7K個star已經證明了它的實用價值
github https://github.com/tbruyelle/RxPermissions
71.freeline
一句話介紹:一款動態替換的編譯構建框架
上榜理由:繼Facebook的Buck,Androdi官方的InstRun之後,螞蟻金服推出了Freeline編譯框架,官網宣稱Freeline與業內主流構建方式相比仍然有數倍的速度領先;排行有先後,編譯速度並不在本榜單排序的考據因素中,因此freeline以3.7個star,暫列編譯框架第二名
官網地址:https://www.freelinebuild.com/
github:https://github.com/alibaba/freeline
72.RxLifecycle
一句話介紹:一款提供在使用RxJava過程中管理Activity和Fragment生命週期能力的框架
上榜理由:在榜單靠前的部分,你已經瞭解RxJava和RxAndroid的強大之處,但部分粗心的開發者因爲沒有及時取消訂閱而產生嚴重的內存泄漏,不要擔心,RxLifecycle可以爲你解決難題,在gtihub上擁有3.7K個star,國內知名軟件——知乎和淘寶也都在使用它
github https://github.com/trello/RxLifecycle
73.classyshark
一句話介紹:一款可執行文件瀏覽器
上榜理由:榜單裏繼Apktool之後第二款apk逆向工具,如果你喜歡優雅的圖形數據展示,那麼你一定不能錯過他,classyshark可以將破解的結果以圖形化展示用戶,方便分析,3.7K個star,讓它暫列apk逆向工具第二位!
github https://github.com/google/android-classyshark
74.acra
一句話介紹:一款提供記錄APP崩潰日誌能力的框架
上榜理由:如果你面臨着收集APP崩潰日誌的需求,那麼acra是個不錯的選擇。3.7K個star,讓acra位列崩潰日誌框架排行榜第一名,acra有足夠的能力記錄線上APP,並且發回服務端,acra也提供了相當棒的崩潰日誌統計服務端框架Acralyzer,cralyzer工作在Apache CouchDB之上,所以除了CouchDB之外,沒有必要安裝任何額外的軟件,移動端開發者也可以藉此學習服務端的建設,一舉兩得!
github https://github.com/ACRA/acra
服務端github https://github.com/ACRA/acralyzer
75.DiskLruCache
一句話介紹:一款提供磁盤文件緩存管理能力的框架
上榜理由:3.7k個star並不足以說明DiskLruCache的優秀,僅僅以管理磁盤文件能力單獨拎出來成爲一個框架,作者需要很大的勇氣,很幸運,作者做到了,並且也成爲Google官網提倡的緩存 ;如還記得上次做“一鍵清除緩存”、“查看緩存文件大小”功能是什麼時候嗎?DiskLruCache一句話就可以搞定!
github https://github.com/JakeWharton/DiskLruCache
作者:JakeWharton
76.dexposed
一句話介紹:一款支撐阿里大部分App客戶端熱修復、線上調試能力的框架
上榜理由:榜單上再次出現熱修復框架的身影,證明App熱修復技術的火熱,dexposed提供圖形化的性能監控、在線熱修復bug漏洞、支持AOP編程思想等,不論你是企業熱修復技術的設計者還是打算在熱修復領域一探究竟的新人,這款框架很適合你。3.5k個star,證明它作爲一門技術框架的存在,是多麼令人喜愛!
github https://github.com/alibaba/dexposed
77.Litho
一句話介紹:一款提供高效構建UI能力的框架
上榜理由:作爲一款專門構建UI的框架,Litho高效的地方在於:單獨開闢了用於渲染和佈局的線程,然後將創建好的組件傳遞給UI線程去完成最終的渲染,使用更少的視圖層級,來提升界面的滾動速度,值得注意的是,它僅支持開發者作出不可改變的UI組件 ,3.5K個star,證明了它在構建UI領域的價值,更多的妙處,期待你親自去發掘!
github https://github.com/facebook/litho
78.mosby
一句話介紹:一款提供構建MVP項目能力的框架
上榜理由:榜單靠前的部分已經介紹了MVC,MVVM,MVP的框架項目,想必此時你在構建企業項目架構上,選擇或者開發一款合適的MVP框架迫在眉睫,mosby可以作爲你的第一步參考,你可以封裝它,也可以照抄它,無論如何,3.4K個star,證明了它在框架設計上有多受開發者的喜愛
github https://github.com/sockeqwe/mosby
79.AndResGuard
一句話介紹:一款提供資源文件路徑混淆 的工具
上榜理由:如果你是個對APK大小很敏感的人,那麼AndResGuard一定適合你,它的原理類似Java Proguard,但是隻針對資源。他會將原本冗長的資源路徑變短,例如將res/drawable/wechat
變爲r/d/a,3.4K個star,證明了在優化APK道路上,你不是一個人在戰鬥!
github https://github.com/shwenzhang/AndResGuard
80.StatusBarUtil
一句話介紹:一款提供設置沉浸式狀態欄樣式能力的框架
上榜理由:設計師MM總是抱怨系統狀態欄不優雅?那就給她一個完美的沉浸式狀態欄。StatusBarUtil可以隨心所欲的設置狀態欄樣式,3.3K個star,足以說明它有多受設計MM的喜愛
github https://github.com/laobie/StatusBarUtil
81.robolectric
一句話介紹:一款不依賴於Android設備的單元測試框架,
上榜理由:sample中列舉了如何對Android四大組件和常見功能測試的用例,3.2K個star,值得充滿好奇心的人嘗試
官網地址:http://robolectric.org/
github https://github.com/robolectric/robolectric
82.Fragmentation
一句話介紹:一款提供管理Fragmen嵌套t能力的框架
上榜理由:對於Activity和Fragment使用,你一定得心應手,但如果要做一套通用的Activity&Fragment嵌套設計,想必你有點手足無措了,Fragmentation可以作爲你設計Fragment管理上的第一步,3.2K個star,筆者認爲有點名副其實了,項目介紹裏說的是Fragment的管理能力,但並未提供Fragment&Activity生命週期、任務棧的管理能力,因此很難直接應用到企業項目當中,但源碼當中的設計思路,值得筆者與諸位借鑑,拾人牙慧留有餘香!
github:https://github.com/YoKeyword/Fragmentation
83.Small
一句話介紹:輕巧的插件化框架
上榜理由:作爲插件框架榜單的新成員,Small的優點是輕巧,適合作爲小團隊的插件開發方案,3.1K個star,讓它獲得了酷狗音樂等著名開發團隊的青睞,如果你們的團隊想逐步實施插件化開發,Small是個不錯的選擇!
官網地址:http://code.wequick.net/Small/cn/cases
github https://github.com/wequick/Small
84.JsBridge
一句話介紹:一款提供WebView和Javascript通信能力的框架
上榜理由:該框架提供給了允許H5頁面調用通過JS調用App方法的能力;3.1K個star,簡潔的通訊方式,值得每一個Web\Hybrid App開發者嘗試
gtihub https://github.com/lzyzsd/JsBridge
85.richeditor-android
一句話介紹:一款強大的富文本編輯框架
上榜理由:2.8k個star,榜單裏第一個爲TextView提供擴展能力的框架,你暫時不需要它,但不能不知道它
github https://github.com/wasabeef/richeditor-android
86.Transitions-Everywhere
一句話介紹:一款教你正確使用Transitions API(Android 轉場動畫API)的教學型項目
上榜理由:你可能還未嘗試過Android API的Transitions 框架,可能聽過,但卻無法做出優雅奇妙的動效——別擔心,Transitions-Everywhere正如它的名字一樣,它將帶你全面體驗Transitions 的強大之處
github https://github.com/andkulikov/Transitions-Everywhere
87.android-viewbadger
一句話介紹:能夠快速的爲Android 視圖加入“勳章”能力的框架
上榜理由:如果說勳章一詞聽起來陌生,那麼顯示已讀未讀個數、小紅點標記信息這一類詞語你一定不太陌生,筆者相信在諸位實際開發中經常遇到爲某些item加入小紅點標記的需求,聰明的各位一定有着各種實現方案,爲什麼不能快速優雅的完成呢?android-viewbadger可以幫你實現,當然,在某些情況下,你需要具備修改源碼的能力,以符合設計MM的需求!值得注意的是,這寬項目已經五年沒有更新了!
github https://github.com/jgilfelt/android-viewbadger
88.AndroidWiFiADB
一句話介紹:一款不用數據線也可以讓你調試手機設備APP的插件項目
上榜理由:你是否還在擔心測試過程中高強度的拔插數據線對手機電池和USB端口造成終生難以彌補的損害?別擔心,有wifi有AndroidWiFiADB,無須數據線也可以調試應用了,更有趣的是,在測試工程師一邊拿着手機一邊找你聊bug的時候,你已經偷偷在它的手機上修復了bug,深藏功與名!
github https://github.com/pedrovgs/AndroidWiFiADB
889.emojicon
一句話介紹:一款提供在TextView、EdiText展示表情包能力的框架
上榜理由:2.7k個star,,榜單第二款增強TextView顯示能力的框架,這款專爲表情包設計,如果你曾經好奇微信、QQ的表情顯示是如何做到的?這款框架一定能滿足你的求知慾。
90.packer-ng-plugin
一句話介紹:一款打爆工具插件
上榜利用:筆者盡力維護榜單涉及範圍的全面性,因此引入此插件項目——項目號稱完成100個渠道包只需要10秒鐘,在市面上各種各樣多渠道打包方案的今天,選擇一款適合自己團隊的,纔是上上選擇
github https://github.com/mcxiaoke/packer-ng-plugin
91.android-priority-jobqueue
一句話介紹:一款提供後臺任務管理能力的框架
上榜理由:如果你是個志在深入研究多線程操作的開發者,這個項目一定不要錯過,不論是Activity重新加載、Service使用線程池時的任務優先級和併發問題,都不要擔心,Job Manage會照顧優先級,持久性,負載平衡,延遲,網絡控制,分組,2.4K個star,優秀的多線程管理能力,況且它依賴的第三方框架很少,值得你一試
github https://github.com/yigit/android-priority-jobqueue
作者:Yigit Boyar
92.Android-Debug-Database
一句話介紹:一款提供測試App內部數據庫能力的框架
上榜理由:榜單裏第二款針對調試數據庫的框架,一行代碼集成,直接在瀏覽器增刪改查App的數據庫,2.3k個star,心動不如行動!
github https://github.com/amitshekhariitbhu/Android-Debug-Database
93.conceal
一句話介紹:一款facebook提供的加密本地大文件的框架
上榜理由:如果還在擔心App內的圖片的隱私問題,這款facebook提供的文件加密框架足以解決你的問題,facebook客戶端的圖片和數據都是使用conceal加密的
官網地址:http://facebook.github.io/conceal/
github https://github.com/facebook/conceal
94.ARouter
一句話介紹:一款提供服務、頁面跳轉路由的框架
上榜理由:正如作者宣稱的那樣,該框架提供:從外部URL映射到內部頁面、跨模塊的頁面跳轉(頁面解耦)、攔截跳轉過程等能力,還有更多功能等你去發掘,2.1K個star,值得爲企業級的框架喝彩
github https://github.com/alibaba/ARouter
95.MagicaSakura
一句話介紹:一款提供多主題切換能力的框架
上榜理由:框架所提供的能力,一直是本榜單所看重的,這款由bilibili提供的多主題框架,作爲榜單所涉及範圍能補充,1.9個star,感謝bilibili團隊所作出的貢獻!
github https://github.com/Bilibili/MagicaSakura
96.CustomActivityOnCrash
一句話介紹:一款當APP crash的時候自動載入某個Activity的框架(而不是顯示Unfortunately, X has stopped)
上榜理由:新奇的創意是榜單所需要的,所以它贏得了1.8K個star;作爲開發者應該擁有考慮到各種潛伏的bug的能力,但我們不能總是面面俱到,其他系統端的同事也可能造成程序的意外crash,因此,如何讓程序優雅的crash->重啓值得我們思考,這款框架就提供了這種能力
github https://github.com/Ereza/CustomActivityOnCrash
97.XhsEmoticonsKeyboard
一句話介紹:最開心的開源表情解決方案
上榜理由:如果你還在發愁如何爲你的APP自制鍵盤,那麼此框架非常適合你,而且還提供表情包展示能力,1.7個star證明了它的獨特。此外作者還附贈了高仿微信鍵盤,QQ鍵盤的demo,分享給諸位
github https://github.com/w446108264/XhsEmoticonsKeyboard