Android非常有用的開源庫介紹整理
Android開源庫
自己一直很喜歡Android開發,就如博客副標題一樣,我想做個好的App。
在摸索過程中,GitHub上搜集了很多很棒的Android第三方庫,推薦給在苦苦尋找的開發者,而且我會不定期的更新這篇文章。
本文的其他貢獻者: ____sky____ 感謝~ 我的GitHub
Android下的優秀開發庫數不勝數,在本文中,我列舉的多是開發流程中最常用的一些。如果你還想了解更多的Android開源庫,可以查看我的GitHub Star,過濾Java選項,每一個庫都是我認真查看或者編譯運行的,希望對你產生幫助。
一、兼容類庫
- ActionBarSherlock : Action Bar是Android 3.0後才開始支持的,ActionBarSherlock是讓Action Bar功能支持2.X後的所有平台,而且他會自動的判斷是調用原生Action Bar還是使用擴展ActionBar。在我的小熊詞典裏有用到這個庫,而且很多非常知名的App也在使用這個庫。GitHub Official ActionBar科普 最新消息(2013年7月):Android官方發布的的Support Library Revision 18 開始支持ActionBar的兼容。所以可以不用再使用ActionBarSherlock了。
-
Android-ViewPagerIndicator : 這是與ViewPager兼容的一個分頁指示器庫。分頁指示器(Friends 和 Suggested就是分頁,而下麵藍色的小條就是指示器,ViewPagerIndicator支持多種樣式的指示器。):GitHub
-
NineOldAndroids : NineOldAndroids 將 Honeycomb
(Android 3.0) 的動畫 API 擴展到了Android 1.0以上。這個庫的作者即是ActionBarSherlock的作者,也是Android-ViewPagerIndicator的作者,Jake
Wharton, 非常厲害的一個人,Github關注量超過1.6K,如果你也做Android開發或者即將開始學習Android開發,一定要去Follow他,而且留意一下他每次的star和follow信息,經常會有很驚奇的發現。
- HoloEverywhere:在Android 4.0時,Google引入了新的主題風格—Holo,多數廠商都想統一界麵設計UI,因此更加具有兼容性的Holo主題庫HoloEveryWhere便成為很多開發者的選擇。在Android的官方Blog中也對HoloEveryWhere這個庫有所推薦,點此查看官方博客對HoloEveryWhere的介紹。HoloEveryWhere的Github。
-
Android-Datepicker: 兼容Android 4.0的datepicker至Android
2.2。 GitHub
二、擴展功能庫
-
SlidingMenu : SlidingMenu 能非常容易的讓開發者實現程序的抽屜效果,所謂的抽屜效果如下圖所示,通常被用作唿出菜單。而且SlidingMenu能很方便的與ActionBarSherlock融合,在官方GitHub上有關於如何融合的說明。 GitHub
同時,想要達到相同功能也可以看另一個Drawer設計:Android-Undergarment
-
AppMsg : 優雅的彈出類似Toast的消息提示,支持3種狀態Alert,Confirm以及Info。GitHub
-
Drag-Sort-ListView : 很多人都用過在一個ListView中通過拖拽對已有的數據進行排序操作。Drag-Sort-Listview就是實現這一功能的開源庫。GitHub
-
Android-Flip : 輕鬆實現類似FlipBoard的翻頁功能。 GitHub
-
Android-PullToRefresh : Android下拉刷新組件。 GitHub
此外,該作者還有另外一個實用度和關注量極高的項目–另一種Android ActionBar的實現:GitHub
另:GitHub上另一個Android-PullToRefresh的實現。GitHub
- ActionBar-PullToRefresh: 基於ActionBar的下拉刷新組件,在下拉的時候會替換掉ActionBar,顯示更新中… GitHub Demo下載
-
picasso: 程序中經常麵臨加載網絡圖片的情況,成熟做法:異步下載->緩存->顯示,Picasso一行代碼就可這三步輕鬆完成。GitHub GitHubPage ,GitHub上圖片異步加載緩存類庫很多,你也可嚐試使用Android-Universal-Image-Loader 或者 LazyList 後麵將介紹到的afinal(國人項目)也具有此功能。
-
Card-UI: Google很早之前開始在自家的App內使用卡片式布局,CardUI極其美觀大方,想要在自己的App中集成卡片UI布局,那麼就輕鬆地用這個項目吧。GitHub 或者你也可以使用這個庫來完成卡片布局。CardLib
- Android-DragArea:Android拖拽排序,拖拽移動 庫。GitHub (Opera Android瀏覽器的拖拽排序就是用的這個庫)
-
Android-StaggeredGrid: Android 下類pinterest布局。GitHub
Android 類 Pinterest 布局
- FlipImageView: 通過擴展ImageView,實現了ImageView的各種翻轉效果。GitHub 體驗地址
-
SmoothProgressBar:平滑的ProgressBar,各種效果。GitHub 體驗地址
各式各樣的ProgressBar
-
SuperToasts: 一個憤青對Toast的超強擴展,支持Toast中顯示Progressbar,顯示圖片,顯示文等等效果,快去感受下吧!Play GitHub
-
AndroidFloatLabel:Android Textview 浮動提示,效果是類似下圖的。GitHub
浮動提示
-
cropper:Android截圖和旋轉庫,輕鬆實現頭像和一些場景下的圖片操作。GitHub
Android Cropper
-
StickyGridHeaders:給GridView加上Header。GitHub
GridHeader
- Background-ViewPage:支持背景圖同時滑動的ViewPager。感受地址 GitHub
-
GoogleStyle-Datatime-Picker:做的很精致的Google風格的時間選擇器。 Play GitHub
三、工具類庫:
首先,就我個人開發經驗,總結一下平常用到的一些最常用的功能:
- 下載,比如圖片,文件。
- 將下載的文件進行解壓。
- 請求服務器,比如說上傳登陸信息,更新某些數據,又或者上傳頭像文件。
- 從文件係統中選擇要操作的文件(圖片,拍照,視頻,拍攝視頻)。
- 有時候也需要爬取某些網頁數據。
- 存儲一些配置信息
- 播放視頻
- 再有一個特殊需求就是關乎Android程序UI設計,圖標是個很麻煩的問題。每次都難以找到合適的Android 設計UI。
隨後,我將很有針對性的推薦一些功能庫,來簡化上麵的問題。
-
afinal: afinal是一個很方便的工具庫。GitHub 作者博客(注:國人項目喲)
- 一行代碼就可以對數據庫進行增刪改查。
- 完全注解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
- 輕鬆實現Android上傳文件,POST數據,下載文件(支持斷點續傳,隨時停止下載任務 或者 開始任務)。
- 一行代碼加載網絡圖片。
-
android-async-http:
Android下的異步HTTP庫。GitHub 文檔
PS:作者的GitHub值得關注。
- 發送異步http請求,並且可在回調函數中處理返回響應Response。
- http請求在thread線程,不會阻塞UI線程。
- 請求使用線程池(ThreadPool)實現,優化了並發的資源使用。
- 支持Multipart 文件上傳。
- 如果Request請求失敗,會自動請求。
- 支持Json解碼。
- 支持存儲Cookies到Preference中。
- 支持gzip處理Request以及Response。
- 整個庫隻有19KB。
- http-requests: Java http請求庫,設計的很優雅的一個庫,推薦。 GitHub
-
async-http-client: Android下的異步 Http 和 WebSocket 庫。 GitHub
- 支持代理設置
- 支持分片兒處理請求返回內容
- 支持WebSocket
-
zt-zip: 壓縮和解壓庫。 GitHub
- 壓縮和解壓
- 單獨操作文件壓縮和解壓。
- 替換zip文件中的某個文件
- aFileChooser:文件選擇器,用於選擇需要操作的文件 GitHub
- image-chooser-library: 圖片和視頻的選擇庫。 GitHub Demo
- jsoup: HTML解析,並且能很好理解DOM,CSS,以及JQuery。GitHub 官方 PS:這是java庫。做網頁爬蟲(Crawler,Robot)必備。
- toml:這是個跨語言的配置信息存取方案。GitHub
- Androiton-Action-Bar-Icons:一個針對Android 優化過的ICON圖標集。 GitHub Demo
- 推薦一個Android整體框架:ThinkAndroid 集成了ioc,orm,下載,緩存等模塊,能讓開發更加快速和高效,同時還是國人項目。GitHub
- 如果你想要更快的網絡傳輸和加載速度可以試試OKHTTP,他實現了Google開發的SPDY協議,通過複用一個Socket,縮短網絡加載時間。關於SPDY看這裏 OKHTTP
- Android-ProgressFragment:等待數據的時候,支持顯示等待符號的Fragment控件。GitHub
- 關於播放視頻,不要再去研究什麼FFMPEG了,too slow,國人有個非常非常出色的開源項目叫Vitamio,讓你播放視頻簡單如abc。GitHub 官方網站
- AndroidCommon:Android常用的一些庫和功能,如緩存,下拉列表,下載管理,靜默安裝等。感謝Trinea GitHub
- ion: 讓Android的網絡操作變得極其簡單,支持異步獲取和處理JSON,支持Android文件下載(同時支持下載進度條綁定),支持安全鏈接和代理。超級推薦! GitHub
四、圖標資源:
- https://iconsparadise.com/ 質量一般,但也是一種選擇
- https://iconbench.com/ 在線產生一些小圖標
- https://www.androidicons.com/ 圖標質量很不錯,但是要付費($25刀),如果有想合買的可以聯係我~
- https://code.google.com/p/android-ui-utils/ 用來在線生成符合Android Design風格的設計圖標。 項目地址
- https://www.flaticon.com/ 高質量矢量圖,推薦之~
- Android-Iconify:一個將AweomeICON和Android結合起來的項目,推薦。
-
IonIconView:Android下的一個基於AwesomeICON的圖標組件,力薦~
五、一些手冊
- Android圖形界麵設計手冊,可以用來快速查看圖標的大小、ActionBar的Height等瑣碎的Android Design要求。GitHub
- Android 官方UI設計手冊:下載 另:中文翻譯版本 源地址 (需要梯子) 鏡像1、鏡像2、鏡像3 離線版本打包 項目發起人:SunJW (需要梯子)
七、一些視頻(以下均為Google 2013 I/O大會的現場視頻,視頻較多持續更新中…)
- Android Studio 的新特性官方講解視頻,我在官方技術博客上下載下來,上傳到網盤,希望對大家有幫助。下載地址
- Android引入Gradle的官方講解視頻 下載地址。
- Google 2013 IO大會上抽出40多分鍾時間講解了Android Custom View的底層原理和書寫方法。非常值得一看!下載地址。
- IO大會上還講解了高性能Android RenderScript的原理和使用方法,搞圖形圖像必備良品。下載地址
- 大會上還向開發者講解了如何實現簡潔、快速的網絡請求。包括常用的JSON、AsyncTask,還提出了一種網絡負荷較重情況下的解決方案RequestQueue(請求隊列),提升自己技術必備視頻。下載地址
- Android 藍牙 操作最佳實踐。下載地址
- Android ui 設計官方指南 下載地址
- Android遊戲開發 官方講解視頻 下載地址
八、高價值鏈接
- Android官方博客 提供一些跟Android相關的即時谘詢。(需要梯子)
- Android官方技術博客 主要提供一些新工具(如Android Studio),新技術(如每次更新帶來新特性)的演示和講解。(需要梯子)
- 23code.com: 超強烈推薦,裏麵收集了非常多漂亮的Android開源項目。
- StylingAndroid: 時常介紹Android的新特性。
- AndroidViews Android View組件收集站點。
- 那兩年煉就的Android內功修養 (這是一篇Android入門到提高的文章,內容很全麵,而且由淺入深,強烈推薦,來自老羅的Android之旅)
- Android-er :專注Android好多年的一個老外的Blog。(需要梯子)
- Android-Pattern:Android的一些設計模式。
九、集成其他開發特性(懶人專用)
- ORM: Object-relationship mapping,如果你不知道什麼是ORM設計,Google。 目前Android上主要有三個ORM開源庫。greenDAO、OrmLite、AndrORM。排序基本代表性能。greenDao和Ormlite性能測試 Ormlite和Androrm性能對比,主要是原理實現決定的性能差異(GreenDao采用生成數據表類文件,其他的則采用了反射…)。如果對數據庫性能要求很高,那麼采用greenDao,如果想圖方便采用OrmLite或者AndrORM。
- ORM2: ActiveAndroid,另一個Android ORM組件,做的非常棒,推薦。GitHub
- sprinkles: 有一個ORM組件。 GitHub
- android-priority-jobqueue:Android Job隊列。輕鬆實現後台task管理,保證代碼更清晰,低耦合。GitHub
- androidquery: 簡單的Android框架,讓寫代碼變得更簡單。Google Code
十、專注Android的Blog
- https://www.trinea.cn/ 關注Android性能還有一些小細節的,感謝VilenEera推薦。
- https://blog.csdn.net/jj120522 解決很多關於Android生產環節的開發細節,感謝star的推薦。
- https://github.com/Trinea/android-open-project 由Trinea收集的很多關於Android第三方特征庫的Repo。
- https://linkyan.com/ 就職於花瓣,專注於Android。
十一、從這些項目中學習組件的用法
- Android-GitHub: GitHub官方Android客戶端(感謝Liu Chong推薦),用到了以下幾個項目:
文章出處:https://blog.daimajia.com/?page_id=60
實在太有用處了,所以必須單獨保存下,非常感謝文章的作者
最後更新:2017-04-03 12:55:13