Android 優秀的開源庫

2020-08-12 14:51:50

前言

收集了一些比較常見的開源庫,特此記錄(已收錄350+)。另外,本文將持續更新,大家有關於Android 優秀的開源庫,也可以在下面 下麪留言。

一 、基本控制元件

TextView

EditText

ImageView

Button

Spinner

CheckBox

ProgressBar(包含loading動畫)

Seekbar

RatingBar

  • MaterialRatingBar 與 Google 系應用設計相同、支援拉伸、修正原生實現諸多問題的星級評分條

Toast

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 新增)

日曆、時鐘

Webview

ScrollView

ViewPager

WheelPicker

導航欄

二、功能相關

圖片選擇

圖片載入

音視訊

  • ExoPlayer 谷歌出品的視訊播放器

  • JiaoZiVideoPlayer 餃子視訊播放器

  • ijkplayer ijk 播放器

  • GSYVideoPlayer一個第三方視訊播放庫,基於bilibili 開源的 ijkplayer,可自定義性也還不錯,
    主要使用這個庫實現類似微博等視訊列表根據卷動判斷自動播放,

  • VitamioBundle 多媒體播放器

  • VideoPlayerManager 幫助實現VideoPlayer控制,使得它更容易使用ListView和recyclerview。

  • PlayerBase 專注於播放檢視元件的高複用性和元件間的低耦合,輕鬆處理複雜業務。

  • DanmakuFlameMaster 彈幕

  • AndroidVideoCache 視訊快取

  • TicktockMusic 一款 material design 風格的音樂播放器,可以播放本地和網路音樂,並且提供歌詞顯示。

  • Timber 一個完整的音樂播放器

  • NiceVieoPlayer 支援列表,完美切換全螢幕、小視窗的Android視訊播放器(2019-03-27 新增)

重新整理控制元件

動畫

輪播圖

許可權

二維條碼

新手引導

  • NewbieGuide Android 快速實現新手引導層的庫,通過簡潔鏈式呼叫,一行程式碼實現引導層的顯示

  • GuideView 能夠快速爲任何一個View建立一個遮罩層,支援單個頁面,多個引導提示,支援爲高亮區域設定不同的圖形,支援引導動畫,方便擴充套件,良好支援fragment

輕儲存

MMKV一款比sharepreferences稍重,遠遠小於數據庫量級,但效能卓越的儲存框架,由騰訊旗下的微信開發。(2020.05.09 新增)

數據庫

  • 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 一個高效、完整、易用的移動數據庫框架,基於(https://github.com/sqlcipher/sqlcipher)[SQLCipher][SQLCipher]),支援iOS, macOS和Android。

  • Android-Debug-Database 數據庫偵錯工具

圖表

選單

手勢關閉

事件處理

換膚

狀態列

顏色選擇器

佈局相關

載入反饋

  • LoadSir擴充套件性良好的載入反饋頁管理框架(2020-05-09 新增)

螢幕適配

其他

三、網路相關

http

  • RxEasyHttp基於RxJava2+Retrofit2實現簡單易用的網路請求框架

  • 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

下載、上傳

rx

  • RxAndroid 對RxJava在Android上的擴充套件,使得Android上也很容易實現reactive components,簡化執行緒操作,從而寫出很漂亮的程式碼。

  • RxJava

  • RxCache 專門爲Retrifit打造的快取庫

  • ReactiveNetwork 檢測網路狀態

  • RxLifecycle 管理rx的生命週期

  • AutoDispose rx 工具類

四、自定義View

蛛網圖

翻書效果

圖案解鎖

望遠鏡效果(部分高亮)

其他

五、其他

工具類

  • utilcodex一個android 工具庫,裏面有非常多的工具類,當然實際專案用不到這麼多,所以可以根據需求copy程式碼就好,不用整合(2020.05.09 新增)

  • AndroidUtilCode 強大易用的安卓工具類庫

  • RxTools Android開發人員不得不收集的工具類集合

  • butterknife 利用 annotation 幫你快速完成 View 的初始化,減少程式碼

熱修復

外掛化

  • RePlugin RePlugin是一套完整的、穩定的、適合全面使用的,佔坑類外掛化方案,由360手機衛士的RePlugin Team研發,也是業內首個提出」全面外掛化「(全面特性、全面相容、全面使用)的方案。(2019-03-27 新增)

簽名打包

  • walle Android Signature V2 Scheme簽名下的新一代渠道包打包神器

  • packer-ng-plugin 100個渠道包只需要10秒鐘

反編譯

依賴注入

  • dagger 依賴注入,適用於 Android 和 Java

日誌

容器

  • Atlas一個執行於Android系統上的一個容器化框架

路由

  • ARouter 幫助 Android App 進行元件化改造的路由框架

記憶體漏失檢測

佈局優化

  • X2C 在編譯生成APK期間,將需要翻譯的layout翻譯生成對應的java檔案,這樣對於開發人員來說寫佈局還是寫原來的xml,但對於程式來說,執行時載入的是對應的java檔案。 (2019-03-27 新增)

畫圖

圖片壓縮

攝像頭

富文字編輯器

指示器

  • MagicIndicator 強大、可定製、易擴充套件的 ViewPager 指示器框架。

  • dotsindicator 檢視頁導航點指示器(2019-03-27 新增)

自定義字型載入

檔案加密

表情包

相機濾鏡

車牌識別

鍵盤衝突

藍牙

  • 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 新增)

其他