GitHub上排名前100的Android開源庫介紹javascript
文章來源:css
http://www.open-open.com/news/view/1587067#6734290-qzone-1-31660-bf8335a56eb142042e6dc893bd988125html
摘要:java
本項目主要對目前 GitHub 上排名前 100 的 Android 開源庫進行簡單的介紹,至於排名徹底是根據 GitHub 搜索 Javareact
語言選擇 (Best Match) 獲得的結果,而後過濾了跟 Androidandroid
不相關的項目,因此排名並不具有任何官方效力,僅供參考學習,方便初學者快速了git
本項目主要對目前 GitHub 上排名前 100 的 Android 開源庫進行簡單的介紹,至於排名徹底是根據 GitHub 搜索Java 語言選擇 (Best Match) 獲得的結果,而後過濾了跟 Androidgithub
不相關的項目,因此排名並不具有任何官方效力,僅供參考學習,方便初學者快速瞭解當前一些流行的 Android 開源庫。web
項目名稱項目簡介算法
這個是 Facebook 在 React.js Conf 2015 大會上推出的基於 JavaScript 的開源框架 ReactNative, 該框架結合了 Web 應用和 Native 應用的優點, 可使用 JavaScript 來開發 iOS 和 Android原生應用
2.Android-Universal-Image-Loader
ImageLoader 是最先開源的 Android 圖片緩存庫, 強大的緩存機制, 早期被普遍 Android 應用使用,至今仍然有不少 Android 開發者在使用
3.RxJava
RxJava 是一個在 Java VM 上使用可觀測的序列來組成異步的、基於事件的程序的庫, 簡單來講它就是一個實現異步操做的庫, RxJava 的優勢在於一個詞 「簡潔」, 使用它就算你程序邏輯有多麼複雜, 它依然可以保持簡潔易懂
4.retrofit
Retrofit 是 Square 公司出品的 HTTP 請求庫, 同時是 Square 是最先開源項目之一, Retrofit是目前 Android 最流行的 Http Client 庫之一, 目前版本是 Retrofit2.0 Beta4, 愈來愈多 Android開發者開始使用這個請求庫了
5.okhttp
OKHttp是 Square 公司出品的 HTTP 另外一個請求庫, Google 不推薦人們使用 HttpClient, 但是 HttpURLConnection 實在是太難用了, 所以不少人使用了 OkHttp 來解決這問題, 聽說 Android4.4 的源碼中能夠看到 HttpURLConnection 已經替換成 OkHttp 實現呢
一個側滑菜單開源庫, 在 Google 本身原生態的側滑菜單 NavigationDrawer 沒有出現以前, 這個庫就已經被普遍使用, 但是到如今這個庫已經被放棄了
是 Square 公司出品的一款圖片緩存庫, 主導者是 JakeWharton 大神
Android 開發最佳實踐, 裏面所介紹的經驗都是來自於 Futurice 公司 Android 開發者, 介紹內容有 Android 開發規範、架構、佈局技巧, 以及使用一些有助於快速開發相關工具等等, 很是適合新手去學習
9.EventBus
EventBus 是 Android 事件管理總線, 使用它能夠替帶 Android BroadCast,BroadCastReceiver, Handler 在 Activity, Fragment, Service, 線程之間傳遞消息,大大簡化了事件傳遞邏輯
Android-Async-Http 是 Android 一款老牌異步請求庫, 專門對 Android 在 Apache 的HttpClient 基礎上構建的異步 http 鏈接, 該庫有不少特徵, 例如: 庫的 size 小, 支持文件上傳不需使用第三方庫支持,內部使用線程池來處理併發, 等等
11.fresco
Fresco是 FaceBook 公司出品的一款圖片緩存庫, Fresco 是一個強大的圖片加載組件, 支持加載 Gif 圖和 WebP 格式, 支持 Android2.3(API level 9) 及其以上系統, Fresco 中設計了Image pipeline 和 Drawees 兩個模塊各施其職,使得圖片完美加載出來,想知道更多 image pipeline 和 Drawees 有關於它的特性, 能夠到它官方平臺看介紹
12.zxing
ZXing 是二維碼領域中名氣最大的開源項目, 它提供了多個平臺的二維碼/條形碼掃描解決方案, 擁有掃描快, 識別率高, 使用簡單等特色
13.leakcanary
LeakCanary 是 Square 公司出的一款檢測內存泄露工具, 該工具能幫助你在開發階段方便的檢測出內存泄露的問題, 使用起來很是簡單方便
14.butterknife
由 JakeWharton 大神開發出來的, ButterKnife 是 View 注入框架, 使用它爲了簡寫不少 findViewById 代碼, 同時還支持 View 的一些事件處理函數
MPAndroidChart是一款強大的 Android 圖表庫, 支持各類各樣圖表顯示, 能想到的圖表樣式這裏幾乎都有, 圖表還支持選擇, 拖放和縮放動畫效果
ActionBarSherlock 這個庫是 JakeWharton 大神開發出來支持 AndroiD3.0 如下版本的, 後來慢慢的 Google 也提供了 AppCompat 庫來支持 Android3.0 如下版本使用 ActionBar, 所以做者不建議咱們再使用這個庫了
AndroidAnnotations 是一個可以讓你快速進行 Android 開發的開源框架, 它能讓你專一於真正重要的地方,使代碼更加精簡, 使項目更加容易維護, 它的目標就是 「Fast Android Development.Easy maintainance」
由 JakeWharton 大神開發出來的一個ViewPager指示器, 使用起來簡單方便, 可高度定製, 開發出各類各樣動畫效果
是 Google 員工的開源項目, 普遍應用於 Google 一些 App 上, 在 2014 年 Google I/O 大會上被推薦使用, Glide 和 Picasso 被人拿來比較研究過, Glide 與 Picasso 有 90% 的類似度, 但在一些細節上仍是有點區別的, 各有各優缺點看君選擇
20.HomeMirror
開發者是由一名程序媛 Hannah Mittelstaedt , HomeMirror 是一款 Android 鏡子應用, 目前它能實現日期, 時間, 天氣, 生日信息, 事件提醒器, 騎車天氣的推薦, 股票信息, XKCD 漫畫網站的新帖等等
21.Android-PullToRefresh (不建議使用)
一個強大的拉動刷新開源項目,支持各類控件下拉刷新,ListView、ViewPager、WebView、ExpandableListView、GridView、ScrollView、Horizontal ScrollView、Fragment上下左右拉動刷新, 不過如今這個項目已經中止維護更新了, 推薦使用 Android-Ultra-Pull-to-Refresh
這個庫控件都是遵循了 Google Material Design 設計規範開發出來, 例若有: Flat Button,Rectangle Button, CheckBox, Switch, Progress bar circular indeterminate等等
23.PhotoView
PhotoView 是 ImageView 的子類, 支持全部 ImageView 的源生行爲, 例如: 支持 Pinch手勢自由縮放, 支持雙擊放大/還原, 支持平滑滾動等等, 而且很是方便的與 ImageLoader/Picasso之類的網絡圖片讀取庫集成使用, 還方便的與 ViewPager 等一樣支持滑動手勢的控件集成
24.RxAndroid
由 JakeWharton 大神主導開發的項目, RxAndroid 是 RxJava 的一個針對 Android 平臺的擴展, 主要用於 Android 開發
Material Dialogs 是一個可高度定製易用, 符合 Material Design 風格的 Dialogs, 兼容 Android API8 以上版本, 我的使用感受它徹底可替代 Android 原生那個, 比原生那個更加簡單易用
26.Android-ObservableScrollView
ObservableScrollView 是一款用於在滾動視圖中觀測滾動事件的 Android 庫, 它可以垂手可得地與 Android 5.0 Lollipop 引進的工具欄 (Toolbar) 進行交互, 還能夠幫助開發者實現擁有 Material Design 應用視覺體驗的界面外觀, 支持 ListView, ScrollView, WebView,RecyclerView, GridView 組件
Android 版的Bootstrap, 利用這個庫可以實現不少 Bootstrap 樣式風格, 以前有學過 Html 的人就知道 Bootstrap 是什麼玩意啦
開發者是代碼家, AndroidSwipeLayout 是一個支持 ListView, GridView, ViewGroup 等等左右上下滑動出操做菜單, 相似 qq 消息列表向左滑動顯示出多某條信息的操做菜單
29.dagger
Dagger 是 Square 公司出品的一個針對 Android 和 Java 的快速依賴注入器, 可以有效減小你敲代碼量
30.ListViewAnimations一個輕輕鬆鬆給 Android ListView 添加動畫效果的庫, 支持的動畫有: Alpha, SwingRightIn,SwingLeftIn, SwingBottomIn, SwingRightIn and ScaleIn 等等, 使用它能很容易就實現帥爆的效果
PagerSlidingTabStrip 是一個給 Android ViewPager 添加上 ViewPager 滑動指示器, 從 GitHub 上面看, 這個庫彷佛沒有人在維護了, 請謹慎使用該庫
開發者是代碼家, 這個庫實現不少很酷炫的 Android 動畫, 動畫效果是借鑑 Animate.css 來實現的, 很是酷, 並且這個使用起來也是很是簡單
AndroidSlidingUpPanel 是一個上拉麪板, 就是向上滑動的時候往上飛出一個顯示面板控件, 該庫效果在 Google Music, Google Maps and Rdio 等 App 應用到
MaterialDrawer 是一個相似 Google 官方 NavigationView 側滑顯示控件, 我的認爲NavigationView 並無 MaterialDrawer 實用, 由於 NavigationView 自由度不是很好,不少都寫死了不能夠自由定義佈局, 而 MaterialDrawer 可以實現跟 NavigationView 同樣的效果,同時還支持自定義效果, 自由度很是高
Material-Animations 是一個很好過渡動畫庫, 能夠應用於 Activity 與 Activity 之間的跳轉, Fragment 與 Fragment 之間的跳轉, 以及各個 View 變化先後的過渡動畫
一個簡單易用 Material Design 風格的 ViewPager 庫
37.ion
ion 是一個讓 Android 的網絡操做變得極其簡單, 支持異步獲取和處理 JSON, 支持 Android 文件下載 (同時支持下載進度條綁定), 支持安全連接和代理
38.stetho
Stetho 是 Facebook 出品的一個強大的 Android 調試工具,使用該工具你能夠在 ChromeDeveloper Tools 查看 App 的佈局, 網絡請求(僅限使用 Volley, okhttp 的網絡請求庫), sqlite,preference, 一切都是可視化的操做,無須本身在去使用 adb, 也不須要 root 你的設備
39.fastjson
Fastjson 是一個 Java 語言編寫的高性能功能完善的 JSON 庫。它採用一種「假定有序快速匹配」的算法,把 JSONParse 的性能提高到極致,是目前 Java 語言中最快的 JSON 庫。Fastjson接口簡單易用,已經被普遍使用在緩存序列化、協議交互、Web 輸出、Android 客戶端等多種應用場景
40.cardslib
Cardslib 是早期由 Gabriele Mariotti 開發的一個爲開發者方便實現各類 Card UI 的 Android 開源代碼庫, 後來 Google 官方提供本身封裝了Cardview在 v7 包下, 使用 Google 官方的能夠徹底替代了這個庫, 所以這個也被棄用了
41.Android-Ultra-Pull-To-Refresh
開發者是廖祜秋, 這個是一個很是強大的下拉刷新庫, 繼承 ViewGroup 能夠包含任何 View, 功能甚至比 SwipeRefreshLayout 強大, 使用起來也很是容易, 還能夠自由定製本身的 UI 樣式
42.greenDAO
greenDAO 是一個能夠幫助 Android 開發者快速將 Java 對象映射到 SQLite 數據庫的表單中的 ORM解決方案, 經過使用一個簡單的面向對象 API, 開發者能夠對 Java 對象進行存儲, 更新, 刪除和查詢, greenDAO 相對OrmLite, AndrORM 這兩個 ORM 開源庫, 性能是最高的
AndroidStaggeredGrid 是一個支持多列而且每一行的 item 大小不一, 交錯排列的 GridView,就是實現瀑布流樣式效果, 目前該庫已經被棄用了, 開發者建議咱們使用 Google 官方控件 RecyleView 中的StaggeredGridLayoutManager 佈局來實現瀑布流效果
44.otto
Otto 是 Square 公司出的一個事件庫 (pub/sub 模式), 用來簡化應用程序組件之間的通信, otto 修改自Google 的 Guava 庫, 專門爲 Android 平臺進行了優化, 與上面介紹的 EventBus 相比, 兩個庫各有各的優勢,徹底取決於咱們本身項目的需求來選擇它們哪個
45.xUtils
xUtils 是一個快速開發框架, 裏面包含 DbUtils, ViewUtils, HttpUtils, BitmapUtils 四大模塊, 可用於快速開發, 支持大文件上傳, 擁有更加靈活的 ORM, 最低兼容 Android 2.2
46.realm-java
Realm 一個輕量的 Android 版本的數據存儲庫, 比 Android 原生系統的 SQLite 更加簡潔快速對數據進行操做
CleanArchitecture 是一個很是典型使用 MVP 架構的項目, 你們若是尚未理解 MVP 架構的能夠看看這個項目
StickyListHeaders 是一個實現可以固定在屏幕頂部的 ListView Section Header 庫, 就是當前section 的 header 固定在屏幕頂部, 當滑動到其餘 section 時, 其餘 section 的 header 會代替以前的section 的 header, 固定到屏幕頂部, 相似於 Android4.0 的手機通信錄的效果
49.AppIntro
AppIntro 是一個讓人輕鬆快速搭建漂亮酷炫的引導頁庫
ActiveAndroid 是採用 Rails 中的Active Record架構模式設計的適用於 Android 平臺的輕量級 ORM 架構, 幾乎能夠不用寫任何 SQL 代碼實現快速開發
Volley 是谷歌官方開發團隊在 2013 年 Google I/O 大會推出的一個新的網絡通訊框架, 這個框架把AsyncHttpClient 和 Universal-Image-Loader 的優勢集於了一身,既能夠像 AsyncHttpClient同樣很是簡單地進行 HTTP 通訊,也能夠像 Universal-Image-Loader 同樣輕鬆加載網絡上的圖片, 這個庫並非官方的,只是託管同步在 Maven, 官方只提供的 Jar 包
52.twoway-view
TwoWayView 是簡化 RecyclerView 開發的一個庫, 能夠在其 Base LayoutManager 基礎上構建各類各樣的佈局, 該庫內置了幾個經常使用佈局 List, Grid, Staggered Grid,Spannable Grid
53.ShowcaseView
ShowcaseView 是一個很是適合用於對用戶進行第一次使用進行指導的庫,使用起來很是簡單還能夠自定義樣式
54.Calligraphy
Calligraphy 是一個用來簡化 Android 應用使用自定義字體的類庫, 該類庫會自動查找應用中的 TextView 並設置其使用的字體
NineOldAndroids 由 JakeWharton 大神開發的一個向下兼容的動畫庫, 主要是使低於 API 11的系統也可以使用 View 的屬性動畫, 不過如今 JakeWharton 大神已經不推薦使用該庫, 而是推薦咱們使用官方封裝在 Support庫裏面的動畫
56.android-floating-action-button
FloatingActionButton 是一個懸浮操做按鈕, 官方在 Support Design包下也有封裝一個相似這個庫效果的 FloatingActionButton, 值得說明的是這個庫是早在官方封裝以前就存在的,我的感受這個庫比官方那個更加好用
CircleImageView 是一個輕鬆幫你實現圓形效果 ImageView 圖片庫, CircleImageView 是基於 ImageView 擴展出來, 所以它擁有 ImageView 控件全部屬性, 簡單易用值得你使用的庫
58.material
Material 是將 Material Design 風格控件封裝在該庫當中, 目前封裝有 Progress, Button,Switch, Slider, Spinner, Text Field, TabPageIndicator, SnackBar, Dialog,BottomSheetDialog, Dynamic theme
ActionBar-PullToRefresh 是一個下拉刷新, 下拉刷新時在 ActionBar 出現加載中提示的庫
又一個懸浮操做按鈕庫, 該庫添加支持監聽滑滾動事件, 當向下滑時按鈕隱藏, 向上滑時按鈕顯示, 還有動畫效果, 支持監聽 ListView, ScrollView, RecylerView
61.AndroidAsync
AndroidAsync 是一款基於 NIO 的低端 Android 異步 socket, http (client+server), websocket 和 socket.io 網絡通訊協議類庫
62.rebound
Rebound 是 Facebook 推出的一個彈性動畫庫, 可讓動畫看起來真實天然, 像真實世界的物理運動, 帶有力的效果, 使用的參數則是 Facebook 的 origami 中使用的
android-common-lib 是 Trinea 大神收集的一些開發通用的緩存, 公共 View 以及一些經常使用工具類
64.RippleEffect
RippleEffect 是一個實如今 Android 任何組件點擊出現 Material Design 的波紋效果, 向下兼容到 Android API9
SmoothProgressBar 是一個幫你的 App 方便實現可定製, 平滑動畫的水平滾動進度條庫
RecyclerView Animators 是一個對 Recycler 控件的 Item 添加以及刪除增長動畫效果, 動畫效果有 Scale, Fade, Flip, Slide 裏面各類各樣效果
一個帶進度顯示的 Button, 效果和動畫作的都很是贊
68.DroidPlugin
DroidPlugin 是 360 手機助手在 Android 系統上實現了一種新的插件機制: 它能夠在無需安裝, 修改的狀況下運行 APK 文件, 此機制對改進大型 APP 的架構, 實現多團隊協做開發具備必定的好處
開發者是 singwhatiwanna (任玉剛), 是《Android 開發藝術探索》書籍的做者, 這個是做者聯合另兩位開發者嘯(時之沙)和宋思宇花了幾個月時間研究出來的 Apk 動態加載框架, 想了解更多關於這框架可到做者博客看這篇文章有詳細介紹
70.ExoPlayer
ExoPlayer 是 Google 開發團隊開源出來的一個媒體播放庫, 比 Android 框架原生的 MediaPlayer擁有更多優勢支持動態的自適應流 HTTP (DASH) 和平滑流, 支持高級的 HLS 特性, 支持自定義和擴治你的使用場景等等
71.Crouton
Crouton 是一個顯示提示信息的顯示工具類, 能夠用來代替 Toast, 默認顯示在窗口的頂部, 能夠按隊列一個接着一個顯示, 不過該庫已經被棄用, 不推薦使用
72.robospice
RoboSpice 是一個使你創建異步的長時間的運行任務異常輕鬆的一個網絡庫,在網絡請求,緩存支持,和提供開箱即用的 rest 請求方面尤其強大
73.hugo
Hugo 是 JakeWharton 大神推出的一個用於打印 Log, hugo 是基於註解被調用的, 引入相關依賴後, 在方法上加上 @DebugLog 便可輸出 Log, 使用很是簡單
AsyncHttpClient 是又一款 Android 異步請求庫, 該庫支持 WebSocket 協議, 使用起來也比較簡單易用
UltimateRecyclerView 是一個功能強大的 RecyclerView (advanced and flexibleversion of ListView), 包括了下拉刷新, 加載更多, 多種動畫, 空數據提示, 拖動排序, 視差處理, 工具欄漸變,滑動刪除, 自定義 floating button, 多種刷新效果, scrollbar, sticky header, 多 layout支持等等元素, 並且使用起來跟 RecyclerView 同樣的方便
MaterialEditText 是就任於 Flipboard 的員工扔物線開發的, 在 AppCompat v21 中也提供了 Material Design 的控件 EditText, 但是因爲比較難用, 沒有提供設置顏色的 Api, 因而就產生這個第三方庫
Side Menu 是Yalantis組織開源出來, 該組織因開源出一些動畫很棒的開源庫爲你們所熟知該庫是其中一個, 該庫是提供翻頁動畫效果的側邊菜單, 動畫體驗超讚的
DragSortListView 是一個能夠實現拖動排序, 滑動刪除的 listview 控件, 注意的是做者對該庫已經放棄維護更新了, 不過感興趣的人能夠去研究一下
TimesSquare 是 Square 公司出品的一款顯示日曆選擇日期的控件, 可讓用戶選擇多個日期
GreenDroid是一個封裝好的 Android UI 界面庫, 不過該庫已經被棄用了,不建議使用
81.logger
Logger 是一個簡單, 漂亮, 強大 Android 打印日誌庫
82.acra
Acra 是一個可以讓 Android 應用自動將崩潰報告以谷歌文檔電子錶的形式進行發送的庫, 旨在當應用發生崩潰或出現錯誤行爲時, 開發者能夠獲取到相關數據
FadingActionBar 是一個支持 ListView, ScrollView, WebView 向下滾動時逐漸顯示 ActionBar 庫
AndroidImageSlider 庫開發者是代碼家, 該庫是爲 Banner 圖片滑動提供多種動畫效果, 還能夠輕易爲 Banner 加載網絡圖片
SystemBarTint 是一個實現沉浸式狀態欄庫, 適用於 Android 系統 4.4 其以上的版本
MenuDrawer 是一款滑出式菜單庫, 經過拖動屏幕邊緣滑出菜單, 支持屏幕上下左右劃出, 支持當前 View 處於上下層, 支持 Windows 邊緣, ListView 邊緣, ViewPager 變化劃出菜單等
RoundedImageView 一個快速支持圖片圓角顯示效果的庫, 該庫特色是能快速加載, 爲了提升加載速度,該庫不用建立原始位圖的副本, 不使用 clipPath, 不使用 setXfermode 裁剪的位圖等方式來實現 ImageView 圓角,使用也很是簡單
88.afinal
Afinal 是一個 android 的 sqlite orm 和 ioc 框架, 同時封裝了 android 中的 http框架, 使其更加簡單易用, 使用 finalBitmap, 無需考慮 bitmap 在 android 中加載的時候 oom的問題和快速滑動的時候圖片加載位置錯位等問題, Afinal 的宗旨是簡潔, 快速, 約定大於配置的方式, 儘可能一行代碼完成全部事情
89.android-pulltorefresh (不建議使用)
另外一個下拉刷新庫, 可是該庫已經中止維護, 所以不建議使用, 推薦使用 Android-Ultra-Pull-to-Refresh
Bolts 是一款底層類庫集合, 在後臺實現異步操做, 並提供接口反饋當前異步執行的程度 (能夠經過接口實現 UI 進度更新),最後反饋執行的結果給 UI 主線程, 與 AsyncTask 比較: (1) 使用的是無大小限制的線程池; (2)任務可組合可級聯,防止了代碼耦合
NumberProgressBar 開發者是代碼家, 這是一個帶簡約性感數字顯示的進度條庫, 使用很是簡單方便
SwipeBackLayout 是一個支持屏幕上下左右滑動返回上層 Activity, 關閉當前 Activity, 相似簡書 App
一個支持 gif 顯示的 view, 用 jni 實現的, 編譯生成 so 庫後直接 xml 定義 view 便可, 簡單易用
Vitamio 是一款 Android 與 iOS 平臺上的全能多媒體開發框架,
特色:(1) 全面支持硬件解碼與 GPU 渲染,(2) 可以流暢播放 720P 甚至 1080P 高清 MKV, FLV, MP4, MOV, TS, RMVB 等常見格式的視頻, (3) 在Android 與 iOS 上跨平臺支持 MMS, RTSP, RTMP, HLS (m3u8) 等常見的多種視頻流媒體協議, 包括點播與直播
SmartTabLayout 是一個自定義的 Tab title strip, 基於 Google Samples 中的 android-SlidingTabBasic 項目, 滑動時 Indicator 可平滑過渡
96.uCrop
uCrop 是Yalantis組織開源的圖片裁剪庫, 支持縮放, 旋轉圖片, 支持各類比例的裁剪框, 很是強大的一個圖片裁剪庫
97.android-crop
又一個圖片裁剪庫, 向下兼容到 Api 10, 我的感受這個庫並無比上面介紹的 uCrop 強大
HoloEveryWhere 是一套 Android 開發庫, 提供了全套 Holo Style 控件, 它的外觀與功能和標準 Holo Style 控件基本相同, 惟一不一樣的是它能夠運行在低於 4.0 版本的 Android 系統上
AVLoadingIndicatorView 庫含有各類各樣漂亮的加載動畫效果, 使用起來也很是簡單, 和平時使用 ProgressBar 同樣
Android 版的 SweetAlert, 清新文藝, 快意靈動的甜心彈框, 靈感來源於 JS 版SweetAlert
粗計
Square 公司佔有 7 席
項目名稱排名
Dagger29
Otto44
FaceBook 公司佔有 4 席
項目名稱排名
Fresco11
Stetho38
Rebound62
JakeWharton 大神佔有 5 席
項目名稱排名
Hugo73
代碼家大神佔有 4 席
項目名稱排名
感謝
感謝全部爲開源而辛辛苦苦付出努力的人, 相信有大家 Android 會發展的更加美好, 讓咱們一塊兒爲他們辛辛苦苦付出的努力鼓掌吧!!
來自:github.com