1. 程式人生 > >搭建自己Android開發框架

搭建自己Android開發框架

摘要

Android優秀的開發框架有很多,很多功能都有成熟的解決方案,比如網路請求、依賴注入、圖片載入、資料庫等都有很多開源的框架可以直接使用,我們可以站在巨人的肩膀上,組合一套自己常用的開發框架,也可以作為公司的開發框架,達到快速開發的目的。選擇框架的原則:1、能滿足自己的業務需求選擇一個框架前首先考慮是否能滿足自己或公司的需求,比較流行的框架基本上能滿足我們大部分的需求2、主流的選擇主流的框架網上相關的資源也多,團隊成員都接觸過的概率也大3、持續更新的Android的發展很快,

Android優秀的開發框架有很多,很多功能都有成熟的解決方案,比如網路請求、依賴注入、圖片載入、資料庫等都有很多開源的框架可以直接使用,我們可以站在巨人的肩膀上,組合一套自己常用的開發框架,也可以作為公司的開發框架,達到快速開發的目的。

選擇框架的原則:

  • 能滿足自己的業務需求
    選擇一個框架前首先考慮是否能滿足自己或公司的需求,比較流行的框架基本上能滿足我們大部分的需求。
  • 主流的
    選擇主流的框架網上相關的資源也多,團隊成員都接觸過的概率也大。
  • 持續更新的
    Android的發展很快,持續更新的框架能更好適配新版本。

使用開源庫組合

結合自己和公司開發的情況以及上面的原則,選了下面的框架組合來搭建自己的Android開發框架。

MVP模式

MVP 是現在很流行的開發模式,全稱是 Model-View-Presenter,程式邏輯寫在 Presenter 中, View 並不直接訪問 Presenter,而是通過定義好的介面互動,達到檢視層和邏輯層分離的目的,並且 Presenter 可以被重用。使用 MVP 模式開發,程式碼的結構會非常清晰,缺點是會增加不少檔案。

GitHub Star:22k
GitHub:https://github.com/googlesamples/android-architecture

網路請求:

Retrofit2.0 是基於 okHttp 的網路請求框架,遵行 RESTful 設計風格。

GitHub Star:24k
GitHub:https://github.com/square/retrofit

依賴注入:

ButterKnife 是一個註解框架,可以快速繫結 view 和 click 事件,取代 findViewById,簡化程式碼。

GitHub Star:18k
GitHub:

https://github.com/JakeWharton/butterknife

圖片載入:

glide 是 Google 推薦的圖片載入庫,專注於流暢的滾動。

GitHub Star:18k
GitHub:https://github.com/bumptech/glide

選擇圖片:

PhotoPicker 是一個功能強大的圖片選擇器,支援拍照、從相簿選擇多張圖片和預覽功能。

GitHub Star:2k
GitHub:https://github.com/donglua/PhotoPicker

非同步:

RxAndroid 是 RxJava 在 Android 中的應用,使用觀察者模式“優雅”的實現非同步處理。

GitHub Star:14k
GitHub:https://github.com/ReactiveX/RxAndroid

響應式:

RxBinding 是 RxJava/RxAndroid 下UI元件響應式繫結的支援庫。

GitHub Star:6.4k
GitHub:https://github.com/JakeWharton/RxBinding

事件匯流排:

RxBus 是 RxAndroid 下的事件釋出/訂閱輕量級框架,簡化元件間的通訊。

GitHub Star:1.3k
GitHub:https://github.com/AndroidKnife/RxBus

JSON:

Gson 是 Google 公司釋出的一個開放原始碼的 Java 庫,主要用途為序列化 Java 物件為 JSON 字串,或反序列化 JSON 字串成 Java 物件。

GitHub Star:10k
GitHub:https://github.com/google/gson

下拉重新整理:

SwipeRefreshLayout 是 Google 官方下拉重新整理元件。

官網:https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

資料庫:

LitePal 是CSDN大神郭霖的開源專案。大部分專案都不需要用到資料庫,或者簡單的資料庫就可以滿足,LitePal 就可以滿足我的需求,跟著郭大神學資料庫。

GitHub Star:4k
GitHub:https://github.com/LitePalFramework/LitePal

除錯:

logger 是一個著名的開源日誌庫,支援列印執行緒的資訊、類的資訊、方法的資訊、格式列印json/xml、點選連結跳轉到原始碼等功能,方便除錯。

GitHub Star:7.7k
GitHub:https://github.com/orhanobut/logger

許可權:

RxPermissions 是一個統一處理 Android 執行時許可權問題的庫。我之前也寫過一篇使用教程: Android 6.0 執行時許可權

GitHub Star:4.7k
GitHub:https://github.com/tbruyelle/RxPermissions