1. 程式人生 > >一些比較好的Android 開源框架

一些比較好的Android 開源框架


P.S.某些大廠的開源庫,是內部不知道測試了多少遍才丟擲來的,所以很多可見bug除非沒測到否則是不會推薦給你們用的,所以說感謝這些開源的專案和所有默默奉獻的開發者。so,第一個建議就是多看看Google推出的開源庫,當然也包括Facebook、Square。

1. 網路庫:
GitHub - square/retrofit: Type-safe HTTP client for Android and Java by Square, Inc.

Retrofit 是 Square 公司出品的 HTTP 請求庫, 同時是 Square 是最早開源專案之一, Retrofit 是目前 Android 最流行的 Http Client 庫, 目前版本是 Retrofit 2.1.0。除了這個其他的網路庫都歇著吧!

2.圖片載入庫:

GitHub - square/picasso: A powerful image downloading and caching library for Android

GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

GitHub - facebook/fresco: An Android library for managing images and the memory they use.

GitHub - nostra13/Android-Universal-Image-Loader: Powerful and flexible library for loading, caching and displaying images on Android.


喜歡用square的全家桶,所以現在專案中使用的最多的是Picasso。Google推薦的圖片載入庫Glide,使用方式和Picasso很像。Fresco一款用於Android應用中展示圖片的強大圖片庫,可以從網路、本地儲存和本地資源中載入圖片。Android-Universal-Image-Loader是最早的老牌圖片載入庫,現在的許多專案中還在用。

3.資料庫:
GitHub - Raizlabs/DBFlow: A blazing fast, powerful, and very simple ORM android database library that writes database code for you.

儘管專案中沒有使用開源的資料庫,主要是程式中更換太麻煩所以還是用預設的;高票推薦的greenDAO效能很高。這裡在推薦的是DBFlow,它自己的介紹是A robust, powerful, and very simple ORM android database library with annotation processing.一個屌爆的,強大的,和使用非常簡單的通過註解處理的ORM Android資料庫。

4.其他更屌的庫:
RxJava
GitHub - ReactiveX/RxJava: RxJava

RxJava的操作符、Schedulers的執行緒間切換,避免了程式中那些迷之回撥以及那些for迴圈if判斷所帶來的深度巢狀,配合Retrofit可以讓戰鬥力成倍提升,讓人感覺不像是在寫的是Java。
像這樣:
<img src="https://pic1.zhimg.com/ce0de3eb55ad532acdc5c32260c7fa60_b.png" data-rawwidth="1065" data-rawheight="1288" class="origin_image zh-lightbox-thumb" width="1065" data-original="https://pic1.zhimg.com/ce0de3eb55ad532acdc5c32260c7fa60_r.png">

Dagger
GitHub - square/dagger: A fast dependency injector for Android and Java.

Dagger框架為了簡化你的程式碼,讓你把你的注意力轉移到真正需要關注的類上 ,比如:
我們常說要通過工廠類來創建出產品類物件。但是,往往我們更重視的是產品類,而並不是工廠類,更不是它的生產過程。
例如使用Retrofit載入網路資料,老子連單例都懶的寫還會寫這些!所以Dagger就是解放這些的。
<img src="https://pic4.zhimg.com/9990f1743ddc6093bbe42349418d59c7_b.png" data-rawwidth="791" data-rawheight="1252" class="origin_image zh-lightbox-thumb" width="791" data-original="https://pic4.zhimg.com/9990f1743ddc6093bbe42349418d59c7_r.png">
butterknife
https://github.com/JakeWharton/butterknife

好吧大家都說butterknife,也算一個吧,少寫幾句findViewById,onClick()還是很方便的!
教程:
<img src="https://pic2.zhimg.com/bd49c90f1c144446f5909ac8d2466a31_b.png" data-rawwidth="484" data-rawheight="349" class="origin_image zh-lightbox-thumb" width="484" data-original="https://pic2.zhimg.com/bd49c90f1c144446f5909ac8d2466a31_r.png">
<img src="https://pic4.zhimg.com/eed82bd3c2093754dd38a4ad64317d5f_b.png" data-rawwidth="631" data-rawheight="349" class="origin_image zh-lightbox-thumb" width="631" data-original="https://pic4.zhimg.com/eed82bd3c2093754dd38a4ad64317d5f_r.png">
上面的開源框架連結都已經給了,大家可以直接點選連結進入專案主頁進行檢視學習!

最後附上網易雲音樂開發過程中使用的第三方開源類庫、元件:

原文:網易雲音樂Android版使用的開源元件

material-dialogs MD 對話方塊
fastjson JSON解析
fresco 圖片載入
CircleProgress 圓形進度條
drag-sort-listview 拖拽重新排序
BottomSheet 底部選單操作 bottom sheets
android-flowlayout 流式佈局
Android-ObservableScrollView 滾動檢視觀測滾動事件
android-stackblur / NativeStackBlur 高斯模糊使用
NativeBlurProcess
PagerSlidingTabStrip
ViewPager 滑動頁面導航效果
HoloColorPicker 顏色選擇器
ZoomableDraweeView-sample Fresco's ZoomableDraweeView
shimmer-android View閃光效果
SwipeBackLayout 滑動返回效果
android-FlipView 翻轉動畫效果
fab-transformation 浮動操作按鈕切換
android-wheel Wheel Picker
pinyin4j 漢字轉拼音
DanmakuFlameMaster 開源彈幕引擎
cybergarage-upnp DLNA
PhotoView 圖片縮放

如果有幫助star一下,謝謝!