2017 Android GitHub常用開源框架匯總
發(fā)布時間: 2017-07-28
現(xiàn)在 GitHub 上流行的開源庫極大地節(jié)省了開發(fā)者的開發(fā)時間,很多企業(yè)和個人都在 GitHub 上開源自己的項目,今天我們就來整理一下 Android 開發(fā)中一些非常流行的庫,這樣可以使我們在使用到時快速的查找到,這里的總結(jié)基本都是小編在開發(fā)中用到的,也是一些個人的見解,供各位參考。
一、網(wǎng)絡(luò)庫
1. Retrofit
Retrofit 是 Square 公司研發(fā)的網(wǎng)絡(luò)請求庫,也是目前 Android 最流行的 HttpClient 庫之一,越來越多的公司開始使用這個請求庫,并且可以完美結(jié)合 RxJava,Retrofit 是一款類型安全的網(wǎng)絡(luò)框架,基于 HTTP 協(xié)議,服務(wù)于 Android 和 Java 語言。
2. okhttp
同樣 okhttp 也是 Square 公司研發(fā)的網(wǎng)絡(luò)請求庫,是一款基于 HTTP 和 HTTP2.0 協(xié)議的網(wǎng)絡(luò)框架,服務(wù)于 Java 和 Android 客戶端,okhttp 以 21K 的 stars 排在 GitHub 中 android 子標(biāo)題的第二名,很多企業(yè)都在使用,從 Retrofit 2.0 開始內(nèi)置 okhttp 框架,Retrofit 專注封裝接口完成業(yè)務(wù)需求,okhttp 專注網(wǎng)絡(luò)請求的高效安全。
3. volley
Google 的 Andorid 開發(fā)團(tuán)隊也意識到有必要將 HTTP 的通信操作再進(jìn)行簡化,于是在 2013 年度的 Google I/O 大會上推出了“Volley”,它在性能方面進(jìn)行了大幅度的調(diào)整,它是設(shè)計目標(biāo)是適合進(jìn)行數(shù)據(jù)量不大,但通信頻繁的網(wǎng)絡(luò)操作,對于數(shù)據(jù)量大的網(wǎng)絡(luò)操作就會表現(xiàn)糟糕。
二、圖片加載庫
在 Android 設(shè)備上面,快速高效的顯示圖片是較為重要的,在過去的很長時間里,我們在如何高效的存儲圖像這方面遇到了很多問題,例如圖片太大,但是內(nèi)存卻比較小,但是越來越多優(yōu)秀開源框架的使用解決了我們這方面的問題,接下來我們來看看這些優(yōu)秀的開源框架。
1. fresco
一款管理圖片內(nèi)存的方案,是目前強(qiáng)大的圖片加載框架之一,facebook 的出身證明了它不是重復(fù)的制造輪子,在管理圖片的內(nèi)存上以及漸進(jìn)式加載、加載 gif 都具有獨(dú)有特性。
2. picasso
非常強(qiáng)大的圖片下載、緩存框架,picasso 更強(qiáng)調(diào)的是圖片的下載,更重要的是這也是 square 團(tuán)隊的作品,想必提到 square 團(tuán)隊,它出片的東西我們還是非常的放心使用。
3. Android-Universal-Image-Loader
看到這個,想必有一定經(jīng)驗(yàn)的 Android 開發(fā)者都會非常的熟悉,曾經(jīng)的圖片加載之王當(dāng)之無愧,15.4k 的 stars 足以證明它的熱門,與 glide 不同的是 UIL 提供了大量的配置方式,圖片加載狀態(tài)的回調(diào),加載動畫等,以及提供了移動端圖片加載框架的緩存思路,三級緩存策略等。
4. PhotoView
一款 ImageView 展示框架,支持縮放,響應(yīng)手勢,位于圖片排行榜的第五位,PhotoView 與上面不同的是圖片的展示功能,可以實(shí)現(xiàn)類似微信頭像的放大功能,還有就是很多 App 的圖片顯示響應(yīng)手勢按壓式如何是現(xiàn)實(shí)的,這里 PhotoView 將都可以輕松實(shí)現(xiàn)。
5. CircleImageView
圓角 ImageView,在我們的 App 中這個想必是太常見了,也許我們可以有無數(shù)種展示圓角圖片的方法,但是 CircleImageView 絕對是我們在開發(fā)時需要優(yōu)先考慮的,如果你還不知道 CircleImageView,那么你需要趕快去體驗(yàn)它在處理圓角圖片時的強(qiáng)大了,相信你肯定會覺得和 CircleImageView 相見恨晚。
三、UI
1. material-dialogs
是一款自定義View框架,如多你還是一個自定義 View 的新人,對 Dialog 使用還有點(diǎn)生疏,那么通過使用 material-dialogs 可以提升你的 Dilaog 使用能力。
2. flexbox-layout
是一款彈性伸縮布局,F(xiàn)lexboxLayout 作為 LinearLayout 和 RelativeLayout 的替代者,值得大家在項目開發(fā)中去嘗試使用。
3. AndroidSwipeLayout
非常強(qiáng)大的滑動式布局,滑動刪除是我們 app 中的常見需求,商品詳情的上下滑動需求在實(shí)際開發(fā)中我們也是經(jīng)常遇到,AndroidSwipeLayout 在 GitHub 上有 8300 個 stars,證明還是值得使用。
4. BaseRecyclerViewAdapterHelper
強(qiáng)大的通用 RecyclerView 適配器,在 GitHub Android 適配器排行榜第一。
5. Android-ObservableScrollView
一款讓視圖滑動更具有視覺效果的滑動式框架,在 GitHub 上提供了 12 種滑動效果,可以用來提升 App 的滑動體驗(yàn)。
6. AppIntro
一款提供快速制作歡迎頁的框架,在國內(nèi)的 App 開發(fā)中,ViewPager 開發(fā) App 的歡迎頁已經(jīng)是標(biāo)配的需求,但是 AppIntro 也是絕對值得你一看。
7. ViewPagerIndicator
一款基于 ViewPager 的頁面指示器開源框架,作者是 Android 大神 JakeWharton,只是已經(jīng)很長時間沒有更新了。
四、動畫
1. lottie-android
動畫類框架排行榜第一名,一款可以在 Android 端快速展示 Adobe Afeter Effect(AE) 工具所做動畫的框架,利用 json 文 件快速實(shí)現(xiàn)動畫效果是它較大的便利,而這個 json 文件也是由 Adobe 提供的 AE 工具制作的,在 AE 中裝一個 Bodymovin 的插件,使用這個插件最終將動畫效果生成 json 文件,這個 json 文件即可由 LottieAnimationView 解析并生成絢麗的動畫效果,而且它還支持跨平臺。
2. Material-Animations
一款提供場景轉(zhuǎn)換過渡能力的動畫框架,與 lottie-android 不同的是,Material-Animations 提供的是場景切換的動畫效果。
3. AndroidViewAnimations
一款提供可愛動畫集的動畫框架,在 lottie-android 和 Material-Animations 兩個動畫框架霸主之后排名第三,可見也是非常厲害。
4. recyclerview-animators
為 recyclerview 提供擴(kuò)展動畫的框架,recyclerview 已經(jīng)推出了很長時間,如果你還在使用 ListView,那就說明你老了。
五、內(nèi)存泄露檢測
1. leakcanary
一款內(nèi)存檢測框架,服務(wù)于 Java 和 Andorid 客戶端,方便簡潔是 leakcanary 較大的特點(diǎn),只需要在應(yīng)用的 apllication 中集成,就可以直接使用它,15.9k 的 stars 足夠說明它的厲害,最關(guān)鍵是是,它也是 square 團(tuán)隊的作品,就這一條,不用說相信大家也都明白。
六、頁面路由
1. ARouter
一款提供服務(wù)、頁面跳轉(zhuǎn)的路由框架,該框架提供從外部 URL 映射到內(nèi)部頁面、跨模塊的頁面跳轉(zhuǎn)(模塊化必備,頁面解耦),攔截跳轉(zhuǎn)過程等能力,絕對是一個企業(yè)級的開發(fā)框架。
七、數(shù)據(jù)庫框架
1. realm-java
Realm 是一款專門為移動端打造的數(shù)據(jù)庫框架,比普通的數(shù)據(jù)庫更快。
2. greenDAO
greenDAO 是一款高效、快速的 SQLite 型數(shù)據(jù)庫,star 數(shù)量和 Realm 不相上下,由 greenrobot 團(tuán)隊開發(fā)維護(hù),此團(tuán)隊還有一個很牛的框架便是 EventBus。
八、異步
1. RxJava
RxJava 是 ReactiveExtensions 的 Java VM 實(shí)現(xiàn),用于通過使用 observable 序列來組合異步和基于事件程序的庫,它擴(kuò)展觀察者模式以支持?jǐn)?shù)據(jù)/事件序列,并添加允許你以聲明組合序列的操作符,同時提取對低級線程、同步、線程安全性和并發(fā)數(shù)據(jù)結(jié)構(gòu)等問題的隱藏。
2. RxAndroid
一款 Android 客戶端組件間異步通信框架,位于通信框架排行榜的第二名,僅在 EventBus 之后,兩者的區(qū)別是 EventBus 是用來取代組件之間繁瑣的 Interface,而 RxAndroid 是用來取代 AnsyTask 的,兩者并不沖突。
3. agera
Agera 是一組類和接口,可以幫組編寫 Android 的功能,異步和無效應(yīng)用程序,需要 Android SDK 版本 9 或更高。
4. RxBinding
一款提供 UI 組件事件響應(yīng)能力的框架,通過 RxBinding 可以理解響應(yīng)式編程的快樂,讓項目的事件流程更加的清晰。
九、事件消息
1. EventBus
事件間通信框架 stars 第一,在大型項目的 Activities、Fragments、Threads、Services 都有使用場景,盡管 EventBus 在向未創(chuàng)建的組件傳遞事件時有些局限,僅適合在活著的組件之間傳遞消息,但任然不妨礙在各個大型項目的場景中使用。
十、生成模板代碼
1. butterknife
使用注解生成模板代碼,將 view 與方法和參數(shù)綁定,配合 Android Studio 提供的 ButterKnife 插件,幫組開發(fā)者省卻了頻繁的 findViewById 的煩惱,最新的 ButterKnife 還提供了 onclick 綁定以及字符串的初始化,初學(xué)者可以查閱 ButterKnife 以及 ButterKnife 進(jìn)一步學(xué)習(xí)。
今天的總結(jié)就先到這里,不知道會不會對你有所幫助呢
上一篇: 騰科快訊-Python語言再登新高峰