前言
收集了一些比較常見的開源庫,特此記錄(已收錄350+)。另外,本文將持續更新,大家有關於Android 優秀的開源庫,也可以在下面留言。
一 、基本控制元件
TextView
- HTextView 一款支援TextView文字動畫效果的Android元件庫。
- ScrollNumber 滾動數字控制元件
- ticker 滾動數字控制元件
- ReadMoreTextView 閱讀更多,摺疊文字
- ExpandableTextView 摺疊文字
- android-autofittextview 自動調整文字大小
- html-textview 展示html標籤
- BabushkaText 自定義文字樣式
- Android-TextView-LinkBuilder 文字連結
- TextJustify-Android 自動調整文字間隔
- SlantedTextView 一個傾斜的TextView,適用於標籤效果。
- RichText Android平臺下的富文字解析器
- MixtureTextView Android圖文混排、文字環繞圖片
- VerticalTextView 垂直的Textview
- JumpingBeans 文字像 Mexican beans 一樣跳動
EditText
- MaterialEditText 智慧提醒輸入框
- android-edittext-validator 輸入效驗、提醒
- ClearEditText 帶刪除的輸入框
- PasswordEditText 顯示/隱藏密碼
- MaterialSearchView 一個基於Material design 規範的Android 搜尋控制元件。MaterialSearchView顯示在Toolbar 或者 ActionBar 上面,併為使用者顯示一個最近搜尋或者搜尋提示的列表。
ImageView
- CircleImageView 圓形圖片
- android-gif-drawable 展示gif
- android-shape-imageview 自定義形狀的ImageView
- android-combination-avatar 組合頭像
- PaletteImageView 懂得智慧配色的ImageView,還能給自己設定多彩的陰影哦。
- PhotoView 支援雙擊或雙指縮放的 ImageView
- subsampling-scale-image-view 支援放大、縮小
Button
- android-floating-action-button FloatingActionButton
- FloatingActionButton
- SwitchButton 開關按鈕
- ShineButton 點贊效果
- LikeButton 點贊效果
- RapidFloatingActionButton 展開選單
- android-flat-button 自定義按鈕,支援圓角等
- android-process-button 帶進度條的botton
- circular-progress-button 帶完成動畫的botton
- FABProgressCircle 帶進度條的fabotton
- ProgressRoundButton 帶進度條的botton
Spinner
- nice-spinner 美化的spinner
- MaterialSpinner
- BetterSpinner
- Material-Spinner
- SearchableSpinner 帶搜尋的spinner
CheckBox
- SmoothCheckBox 帶動畫的checkbox
- AnimateCheckBox 帶動畫的checkbox
ProgressBar(包含loading動畫)
- SmoothProgressBar
- NumberProgressBar 帶數字的進度條
- android-square-progressbar 載入圖片的進度條
- MaterialLoadingProgressBar
- circular-music-progressbar 播放音樂進度條
- materialish-progress
- Android-RoundCornerProgressBar 圓角進度條
- GoogleProgressBar 仿谷歌的進度條
- DownloadProgressBar 帶下載動畫的進度條
- ACProgressLite 仿IOS 進度條
- Android-SVProgressHUD 仿IOS 進度條
- MaterialProgressBar
- CircularProgressBar 圓環進度條
- Android-ProgressBarWidthNumber 帶進度的進度條
- LoadingView 載入進度條
- LoadingDrawable 酷炫的android載入動畫
- Android-SpinKit Android載入動畫庫
- AVLoadingIndicatorView 漂亮的載入動畫
Seekbar
- RangeSeekBar 雙向SeekBar
- IndicatorSeekBar 帶進度的seekbar
- DragChooseView 仿微信設定字型
- FontSliderBar 仿微信設定字型
- DoubleSeekBar 帶進度的seekbar
- CircleSeekbar 一個環形Seekbar元件,支援疊加複合使用
RatingBar
- MaterialRatingBar 與 Google 系應用設計相同、支援拉伸、修正原生實現諸多問題的星級評分條
Toast
- SuperToasts 豐富樣式的 toast
- Crouton
- Android-AppMsg
- UndoBar 帶按鈕的toast
- Alerter Dropdown 風格的彈窗
- Toasty
- Sneaker
RecyclerView
- BaseRecyclerViewAdapterHelper 萬能adapter
- MultiChoiceAdapter 多選adapter
- SwipeRecyclerView 基於RecyclerView的封裝,提供了Item側滑選單、Item滑動刪除、Item長按拖拽、新增HeaderView/FooterView、載入更多、Item點選監聽等基本功能。
- EasyRecyclerView 封裝RecyclerView
- StickyItemDecoration 懸浮頭部
- PinnedSectionItemDecoration 懸浮頭部
- recyclerview-animators RecycleView的專案動畫的Android元件庫
- UltimateRecyclerView 能強大的Recyclerview,包括了下拉重新整理,載入更多,多種動畫,空資料提示,拖動排序,視差處理,工具欄漸變,滑動刪除,自定義floating button,多種重新整理效果,scrollbar等等元素,而且使用起來跟recyclerview一樣的方便。
- epoxy Epoxy採用可組合的方式來建立列表。列表中的每個item由一個model代表,model定義了item的佈局,id以及span。model還負責處理資料到檢視的繫結,在檢視被回收的時候釋放資源。如果要顯示這些model則把它們新增到Epoxy的adapter中,adapter為你處理複雜的顯示問題。
- XRecyclerView XRecyclerView實現了下拉重新整理,滾動到底部載入更多以及新增header功能的的RecyclerView。使用方式和RecyclerView完全一致,不需要額外的layout,不需要寫特殊的adater。 載入效果內建了AVLoadingIndicatorView上的所有效果,可以根據需要指定。
- RecyclerViewPager RecyclerViewPager基於 RecyclerView 實現的 ViewPager,可自定義 Page 切換敏感度,支援垂直 ViewPager,支援類 Gallary 效果,支援無限迴圈。
- SuperRecyclerView SuperRecyclerView主要特性包括:1、當adapter沒有設定的時候使用ProgressBar(進度條);2、當adapter時空的時候使用EmptyView;3、SwipeRefreshLayout (Google's one);4、Swipe To Dismiss;5、Sticky headers;6、無限滾動,當到達最後一項時,載入更多資料;
- LRecyclerView 下拉重新整理,自動載入更多;仿IOS側滑Item刪除選單
- LayoutManagerGroup 自定義RecyclerView 的LayoutManager實現幾種炫酷的效果。
- android-advancedrecyclerview 自定義RecyclerView (2019-03-29 新增)
日曆、時鐘
- CalendarView 一個優雅、萬能自定義UI、支援周檢視、自定義周起始、效能高效的日曆控制元件
- material-calendarview
- Caldroid
- android-times-square
- Android-Week-View 周檢視
- android-calendar-view 顯示陽曆,農曆,節假日和二十四節氣 實現對某月日期的單選或者多選的andorid 日曆控制元件庫
- Simple-Calendar
- CountdownView 倒數計時
- android-calendar-card 日曆
- CosmoCalendar 高度自定義的日曆庫,UI精美,支援多種模式。
- CalendarExaple 高仿釘釘和小米的日曆控制元件,支援快速滑動,介面快取
- MaterialDateTimePicker Material風格的日期選擇器(2019-03-29 新增)
Webview
- AgentWeb
- VasSonic 首屏載入速度快
- JsBridge
- chromeview 利用 Chromium 實現的 WebView
ScrollView
- Android-ObservableScrollView
- DiscreteScrollView 基於RecyclerView 實現的一個橫向滑動列表
ViewPager
- VerticalViewPager 垂直的viewpager
- InfiniteCycleViewPager 3D的viewpager
- DiscreteScrollView
- ExpandingPager
- RecyclerViewSnap
- AndroidImageSlider
- ViewPagerIndicator
- RecyclerViewCardGallery RecyclerView實現Card Gallery效果,替代ViewPager方案
- JazzyViewPager 支援 Fragment 切換動畫的 ViewPager,動畫包括轉盤、淡入淡出、翻頁、層疊、旋轉、方塊、翻轉、放大縮小等
- FlipViewPager.Draco Flip 翻轉效果的 ViewPager
- UltraViewPager 封裝多種特性的ViewPager,主要是為多頁面切換場景提供統一解決方案。
- MaterialViewPager Material風格的viewpager
- WoWoViewPager 結合viewpager和動畫,實現了一個漂亮的歡迎頁
WheelPicker
- Android-PickerView iOS的PickerView控制元件,有時間選擇和選項選擇,並支援一二三級聯動,支援自定義樣式。
- androidWheelView
- WheelPicker
- AndroidPicker
- HorizontalWheelView 水平的wheelview
- WheelView-Android 帶刻度的wheelview
導航欄
- BottomBar 一個Material Design風格的底部導航的Android檢視元件
- NavigationTabBar 一個具有豐富的動畫效果的Android導航Tab工具欄元件。
- ahbottomnavigation material風格的底部導航
- Material-BottomNavigation
- SmartTabLayout 自定義的viewpager標題欄,在滾動時向使用者提供連續反饋
- material-menu 帶動畫的導航欄
二、功能相關
圖片選擇
- MultiImageSelector 仿微信實現多圖選擇
- GalleryFinal 拍照、圖片選擇(單選/多選)、 裁剪(單/多裁剪)、旋轉、ImageLoader無繫結任由開發者選擇、功能可配置、主題樣式可配置
- Matisse 圖片選擇
- {
停止維護
} ImagePicker 圖片選擇 - TakePhoto 拍照或從相簿、檔案中選擇、裁剪圖片、壓縮圖片的開源工具庫
- PictureSelector 圖片選擇
- android-crop 圖片裁剪
- ImageEditor-Android 圖片編輯
- boxing 基於MVP模式的Android多媒體選擇器
- cropper 圖片裁剪
- uCrop Yalantis 出品的強大的圖片裁剪庫 ,支援縮放,旋轉圖片,支援各種比例的裁剪框
- android-crop 圖片裁剪
- cropiwa 圖片裁剪
- SmartCropper 智慧圖片裁剪框架。自動識別邊框,手動調節選區,使用透視變換裁剪並矯正選區;適用於身份證,名片,文件等照片的裁剪。
- Android-Image-Cropper 圖片裁剪
- android-gpuimage 圖片濾鏡框架
- Blurry 圖片模糊
- Horizon 簡單的Android視覺均衡器
- GestureViews 大圖預覽
圖片載入
- glide
- glide-transformations 基於glide 的圖片變化庫
- fresco
- picasso
- LargeImage 載入大圖 可以高清顯示10000*10000畫素的圖片,輕鬆實現微博長圖功能
音視訊
- ExoPlayer 谷歌出品的視訊播放器
- JiaoZiVideoPlayer 餃子視訊播放器
- ijkplayer ijk 播放器
- GSYVideoPlayer
- VitamioBundle 多媒體播放器
- VideoPlayerManager 幫助實現VideoPlayer控制,使得它更容易使用ListView和recyclerview。
- PlayerBase 專注於播放檢視元件的高複用性和元件間的低耦合,輕鬆處理複雜業務。
- DanmakuFlameMaster 彈幕
- AndroidVideoCache 視訊快取
- TicktockMusic 一款 material design 風格的音樂播放器,可以播放本地和網路音樂,並且提供歌詞顯示。
- Timber 一個完整的音樂播放器
- NiceVieoPlayer 支援列表,完美切換全屏、小視窗的Android視訊播放器(2019-03-27 新增)
重新整理控制元件
- SmartRefreshLayout Android智慧下拉重新整理框架
- android-Ultra-Pull-To-Refresh
- Android-PullToRefresh
- SpringView
- Phoenix
動畫
- Material-Animations
- Loop3DRotation-master 3D旋轉動畫
- lottie-android 載入ae做的動畫
- AndroidViewAnimations 動畫合集
- ParticleTextView 粒子動畫
- ExpectAnim 一個漂亮的動畫效果
- android-pathview 路徑動畫
- ViewAnimator 動畫合集
- TextSurface 炫酷的文字展示動畫
- CircularAnim 水波紋動畫
- AndroidCarrouselLayout 3D旋轉動畫(2019-03-27 新增)
輪播圖
- banner
- Android-ConvenientBanner
- MZBannerView 仿魅族BannerView,圖片輪播控制元件,支援多種模式切換
許可權
- PermissionsDispatcher
- RxPermissions
- easypermissions
- Dexter
- AndPermission
- PermissionHelper
- PermissionGen
- HiPermission
- TedPermission
- permissions4m 國產手機5.0、6.0許可權適配框架
二維碼
- zxing
- BGAQRCode-Android 掃描二維碼、掃描條形碼、
- QrCodeScan 二維碼掃描
- android-zxingLibrary 幾行程式碼快速整合二維碼掃描功能
新手引導
- NewbieGuide Android 快速實現新手引導層的庫,通過簡潔鏈式呼叫,一行程式碼實現引導層的顯示
- GuideView 能夠快速為任何一個View建立一個遮罩層,支援單個頁面,多個引導提示,支援為高亮區域設定不同的圖形,支援引導動畫,方便擴充套件,良好支援fragment
資料庫
- greenDAO
- ActiveAndroid Android Sqlite orm 的 db 工具類
- realm-java 移動端的資料庫,適用於 Phone、Tablet、Wearable,支援 ORM,執行緒安全、支援連表及資料庫加密,比 SQLite 效能更好
- DBFlow Android SQLite ORM 工具庫。綜合了 Active Android, Schematic, Ollie,Sprinkles 等庫的優點;通過註解實現,效能好;能生成 ContentProvider。
- SnappyDB key-value資料庫,非常流行的NoSQL資料庫
- LitePal 不編寫SQL語句的情況下完成大多數資料庫操作,包括建立或升級表、CRUD操作、聚合函式等
- objectbox-java ObjectBox是一個超高速的物件導向的資料庫,具有很強的關係支援。ObjectBox嵌入到Android、Linux、MacOS或Windows應用程式中。
- wcdb 一個高效、完整、易用的移動資料庫框架,基於SQLCipher,支援iOS, macOS和Android。
- Android-Debug-Database 資料庫除錯工具
圖表
- MPAndroidChart
- XCL-Charts
- hellocharts-android
- DashboardView 儀表盤
- FinancialCustomerView 金融類的自定義View
- WilliamChart 雙向圖表
- EazeGraph
- android-DecoView-charting
- GraphView 繪製圖表和曲線圖的 View,可用於 Android 上的曲形圖、柱狀圖、波浪圖展示
- PieChartView 餅狀圖
- SpeedView Android的動態車速表
- KalmanRx kalman 濾波(2019-03-29 新增)
- ikvStockChart K線圖 (2019-03-29 新增)
選單
- BoomMenu 爆炸選單效果
- Side-Menu.Android 側滑選單
- Context-Menu.Android 可以方便快速整合漂亮帶有動畫效果的上下文選單,Yalantis出品。
- FlowingDrawer 帶手勢的側滑選單
- SlidingMenu 側滑選單
- android-menudrawer 滑出式選單,通過拖動螢幕邊緣滑出選單,支援螢幕上下左右劃出,支援當前 View 處於上下層,支援 Windows 邊緣、ListView 邊緣、ViewPager 變化劃出選單等。
- AndroidResideMenu 仿 Dribbble 的邊欄選單
- MaterialDrawer Material Design 風格的導航抽屜,提供簡便且強大的定製功能
- bottomsheet 底部選單(2019-03-27 新增)
手勢關閉
事件處理
換膚
- QSkinLoader
- Android-Skin-Loader 支援多種場景的Android換膚框架
- MultipleTheme 夜間模式的Android框架
- Colorful 基於Theme的Android動態換膚庫,無需重啟Activity、無需自定義View,方便的實現日間、夜間模式。
- MaterialDesignDemo
- Android-skin-support 一款用心去做的Android 換膚框架, 極低的學習成本, 極好的使用者體驗. 一行程式碼就可以實現換膚
狀態列
顏色選擇器
佈局相關
- flexbox-layout 柔性佈局
- overscroll-decor 仿IOS回彈效果
- ChipsLayoutManager TAG 佈局
- vlayout VirtualLayout是一個針對RecyclerView的LayoutManager擴充套件, 主要提供一整套佈局方案和佈局間的元件複用的問題。
- ArcLayout 弧形佈局
- FlowLayout Android流式佈局,支援單選、多選等,適合用於產品標籤等。
- MaterialDesignLibrary 包含android l元件的庫,供您在低版本中使用。
- material 包含android l元件的庫,供您在低版本中使用。
- QMUI_Android 快速搭建一個具備基本設計還原效果的 Android 專案
- Android-Bootstrap Android 上的bootstrap 效果
- ScalingLayout 縮放佈局
- android-ConstraintLayoutExamples ConstraintLayout 佈局的官方demo (2019-03-27 新增)
- ViewSpreadTranslationController 檢視擴散切換控制器(2019-03-27 新增)
螢幕適配
- AndroidAutoSize 今日頭條螢幕適配方案終極版
其他
- AndroidPdfViewer pdf 載入
- android-job 用於後臺執行延遲的作業
三、網路相關
http
- retrofit
- okhttp
- okhttp-OkGo 封裝了 OkHttp 的網路請求框架
- {
停止維護
} okhttputils okhttp的輔助類 - NoHttp 實現Http標準協議框架,支援多種快取模式,底層可動態切換OkHttp、URLConnection。
- xUtils3 xUtils 包含了orm, http(s), image, view註解
- afinal Afinal是一個android的ioc,orm框架,內建了四大模組功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp
- Fast-Android-Networking 支援http2的網路庫(2019-03-29 新增)
json
下載、上傳
- MultiThreadDownloader 多執行緒下載
- android-upload-service 檔案上傳
- Aria 下載
- FileDownloader 檔案下載引擎,穩定、高效、靈活、簡單易用
rx
- RxAndroid 對RxJava在Android上的擴充套件,使得Android上也很容易實現reactive components,簡化執行緒操作,從而寫出很漂亮的程式碼。
- RxJava
- RxCache 專門為Retrifit打造的快取庫
- ReactiveNetwork 檢測網路狀態
- RxLifecycle 管理rx的生命週期
- AutoDispose rx 工具類
四、自定義View
蛛網圖
翻書效果
- android-PageFlip
- android-flip 類似 Flipboard 翻轉動畫
圖案解鎖
望遠鏡效果(部分高亮)
其他
- SeatTable 電影選座效果
- FlightSeat 飛機票選座效果
- GoodView 點贊效果
- Android-PullLayout 仿uc下拉效果
- AlphaIndicatorView 仿微信底部TAB 滑動效果
- RadarView 高仿360檢測評分動畫
- CardStackView 三種炫酷的列表卡片滑動動畫
- TapTargetView 難於描述,還是自己看效果圖吧
- CoordinatorTabLayout 可快速實現TabLayout與CoordinatorLayout相結合的樣式
- ShimmerLayout 掃光效果
- PhotoMovie 仿抖音照片電影
- MyCardView 一個支援自定義陰影顏色的 CardView (2019-03-27 新增)
五、其他
工具類
- AndroidUtilCode 強大易用的安卓工具類庫
- RxTools Android開發人員不得不收集的工具類集合
- butterknife 利用 annotation 幫你快速完成 View 的初始化,減少程式碼
- parceler 序列化(2019-03-29 新增)
熱修復
- tinker 它支援dex、庫和資源更新,無需重新安裝apk
- Nuwa
- AndFix 阿里的方案
- VirtualXposed
外掛化
- RePlugin RePlugin是一套完整的、穩定的、適合全面使用的,佔坑類外掛化方案,由360手機衛士的RePlugin Team研發,也是業內首個提出”全面外掛化“(全面特性、全面相容、全面使用)的方案。(2019-03-27 新增)
簽名打包
- walle Android Signature V2 Scheme簽名下的新一代渠道包打包神器
- packer-ng-plugin 100個渠道包只需要10秒鐘
反編譯
- Apktool 反編譯工具
依賴注入
- dagger 依賴注入,適用於 Android 和 Java
日誌
路由
- ARouter 幫助 Android App 進行元件化改造的路由框架
- DeepLinkDispatch (2019-03-29 新增)
記憶體洩漏檢測
佈局優化
- X2C 在編譯生成APK期間,將需要翻譯的layout翻譯生成對應的java檔案,這樣對於開發人員來說寫佈局還是寫原來的xml,但對於程式來說,執行時載入的是對應的java檔案。 (2019-03-27 新增)
畫圖
圖片壓縮
- Luban Android圖片壓縮工具
- Compressor
- AiYaCompressHelper
攝像頭
- cameraview 輕鬆整合camera
- camerakit-android
富文字編輯器
- richeditor-android
- Android-Rich-text-Editor (2019-03-27 新增)
指示器
- MagicIndicator 強大、可定製、易擴充套件的 ViewPager 指示器框架。
- dotsindicator 檢視頁導航點指示器(2019-03-27 新增)
- PageIndicatorView ViewPager 的指示器 (2019-03-29 新增)
自定義字型載入
檔案加密
表情包
相機濾鏡
車牌識別
鍵盤衝突
藍芽
- Android-BLE AndroidBLE藍芽框架,包括掃描、連線、設定通知、傳送資料、讀取、接收資料和OTA升級以及各種直觀的回撥,近乎一行程式碼植入專案,可擴充套件配置藍芽相關操作。
測試
- Matrix 通過各種效能監控方案,對效能監控項的異常資料進行採集和分析,輸出相應的問題分析、定位與優化建議,從而幫助開發者開發出更高質量的應用。
- pandora 一款無需ROOT、可以直接在應用內檢視和修改包括網路、資料庫、UI等的工具箱,適合開發和測試階段的各種問題的快速定位。
- ArgusAPM 。ArgusAPM是360移動端產品使用的視覺化效能監控平臺,為移動端APP提供效能監控與管理,可以迅速發現和定位各類APP效能和使用問題,幫助APP不斷的提升使用者體驗。(2019-03-27 新增)
- AndroidPerformanceMonitor 非侵入式的效能監控元件
- UETool 一個各方人員(設計師、程式設計師、測試)都可以使用的除錯工具。它可以作用於任何顯示在螢幕上的 view,比如 Activity/Fragment/Dialog/PopupWindow 等等。(2019-03-27 新增)
- robolectric 單元測試 (2019-03-29 新增)
其他
- WeChatLuckyMoney 微信搶紅包外掛
- BookReader 完整的小說閱讀器
- CloudReader 小說閱讀器
- Android-Iconics 圖示
- smartTable 自動生成表格框架(2019-03-27 新增)
- k-9 郵箱(2019-03-29 新增)