搭建自己的Android開發(fā)框架

Android優(yōu)秀的開發(fā)框架有很多,很多功能都有成熟的解決方案,比如網(wǎng)絡(luò)請(qǐng)求、依賴注入、圖片加載、數(shù)據(jù)庫(kù)等都有很多開源的框架可以直接使用,我們可以站在巨人的肩膀上,組合一套自己常用的開發(fā)框架,也可以作為公司的開發(fā)框架,達(dá)到快速開發(fā)的目的。

選擇框架的原則:

1、 能滿足自己的業(yè)務(wù)需求
選擇一個(gè)框架前首先考慮是否能滿足自己或公司的需求,比較流行的框架基本上能滿足我們大部分的需求
2、 主流的
選擇主流的框架網(wǎng)上相關(guān)的資源也多,團(tuán)隊(duì)成員都接觸過(guò)的概率也大
3、 持續(xù)更新的
Android的發(fā)展很快,持續(xù)更新的框架能更好適配新版本

結(jié)合自己和公司開發(fā)的情況以及上面的原則,選了下面的框架組合來(lái)搭建自己的Android開發(fā)框架。

MVP模式
MVP 是現(xiàn)在很流行的開發(fā)模式,全稱是 Model-View-Presenter,程序邏輯寫在 Presenter 中, View 并不直接訪問 Presenter,而是通過(guò)定義好的接口交互,達(dá)到視圖層和邏輯層分離的目的,并且 Presenter 可以被重用。使用 MVP 模式開發(fā),代碼的結(jié)構(gòu)會(huì)非常清晰,缺點(diǎn)是會(huì)增加不少文件。
GitHub Star:22k
GitHub:https://github.com/googlesamples/android-architecture

網(wǎng)絡(luò)請(qǐng)求:
Retrofit2.0 是基于 okHttp 的網(wǎng)絡(luò)請(qǐng)求框架,遵行 RESTful 設(shè)計(jì)風(fēng)格。
GitHub Star:24k
GitHub:https://github.com/square/retrofit

依賴注入:
ButterKnife 是一個(gè)注解框架,可以快速綁定 view 和 click 事件,取代 findViewById,簡(jiǎn)化代碼。
GitHub Star:18k
GitHub:https://github.com/JakeWharton/butterknife

圖片加載:
glide 是 Google 推薦的圖片加載庫(kù),專注于流暢的滾動(dòng)。
GitHub Star:18k
GitHub:https://github.com/bumptech/glide

選擇圖片:
Matisse 是一個(gè)知乎開源的圖片選擇器。
GitHub Star:8.7k
GitHub:https://github.com/zhihu/Matisse

異步:
RxAndroid 是 RxJava 在 Android 中的應(yīng)用,使用觀察者模式“優(yōu)雅”的實(shí)現(xiàn)異步處理。
GitHub Star:14k
GitHub:https://github.com/ReactiveX/RxAndroid

響應(yīng)式:
RxBinding 是 RxJava/RxAndroid 下UI組件響應(yīng)式綁定的支持庫(kù)。
GitHub Star:6.4k
GitHub:https://github.com/JakeWharton/RxBinding

事件總線:
RxBus 是 RxAndroid 下的事件發(fā)布/訂閱輕量級(jí)框架,簡(jiǎn)化組件間的通信。
GitHub Star:1.3k
GitHub:https://github.com/AndroidKnife/RxBus

JSON:
Gson 是 Google 公司發(fā)布的一個(gè)開放源代碼的 Java 庫(kù),主要用途為序列化 Java 對(duì)象為 JSON 字符串,或反序列化 JSON 字符串成 Java 對(duì)象。
GitHub Star:10k
GitHub:https://github.com/google/gson

下拉刷新/上拉加載:
強(qiáng)大的下拉刷新和上拉加載庫(kù)
GitHub Star:15k
GitHub:https://github.com/scwang90/SmartRefreshLayout

數(shù)據(jù)庫(kù):
LitePal 是CSDN大神郭霖的開源項(xiàng)目。大部分項(xiàng)目都不需要用到數(shù)據(jù)庫(kù),或者簡(jiǎn)單的數(shù)據(jù)庫(kù)就可以滿足,LitePal 就可以滿足我的需求,跟著郭大神學(xué)數(shù)據(jù)庫(kù)。
GitHub Star:4k
GitHub:https://github.com/LitePalFramework/LitePal

調(diào)試:
logger 是一個(gè)著名的開源日志庫(kù),支持打印線程的信息、類的信息、方法的信息、格式打印json/xml、點(diǎn)擊鏈接跳轉(zhuǎn)到源碼等功能,方便調(diào)試。
GitHub Star:7.7k
GitHub:https://github.com/orhanobut/logger

權(quán)限:
RxPermissions 是一個(gè)統(tǒng)一處理 Android 運(yùn)行時(shí)權(quán)限問題的庫(kù)。我之前也寫過(guò)一篇使用教程: Android 6.0 運(yùn)行時(shí)權(quán)限
GitHub Star:4.7k
GitHub:https://github.com/tbruyelle/RxPermissions

Banner輪播圖:
Android廣告圖片輪播控件,支持無(wú)限循環(huán)和多種主題,可以靈活設(shè)置輪播樣式、動(dòng)畫、輪播和切換時(shí)間、位置、圖片加載框架等!
GitHub Star:7.5k
GitHub:https://github.com/youth5201314/banner

PickerView:
仿iOS時(shí)間選擇器、省市區(qū)三級(jí)聯(lián)動(dòng)
GitHub Star:8.8k
GitHub:https://github.com/Bigkoo/Android-PickerView

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 摘要 Android優(yōu)秀的開發(fā)框架有很多,很多功能都有成熟的解決方案,比如網(wǎng)絡(luò)請(qǐng)求、依賴注入、圖片加載、數(shù)據(jù)庫(kù)等都...
    布道課堂閱讀 1,312評(píng)論 0 26
  • 榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網(wǎng)絡(luò)層、UI層、通信層或其他單一功能的框架混合開發(fā)框架:提供開...
    _7宇閱讀 1,184評(píng)論 0 12
  • 自己總結(jié)的Android開源項(xiàng)目及庫(kù)。 github排名https://github.com/trending,g...
    passiontim閱讀 2,753評(píng)論 1 26
  • 今天是離開家的26天, 因?yàn)榫嚯x,所以想念。 其實(shí)時(shí)間沒有變,它就在這兒,只是我們?cè)陂L(zhǎng)大 ,幼稚時(shí)期總是想著離開...
    檸檬白蘭閱讀 252評(píng)論 2 1
  • 從古到今隨著人類的不斷進(jìn)化發(fā)展人類的社交方式一直在改變,語(yǔ)言、文字、印刷紙媒、電視、網(wǎng)絡(luò)。 著名的傳播學(xué)家麥克盧漢...
    哥德巴赫狂想曲閱讀 482評(píng)論 0 2

友情鏈接更多精彩內(nèi)容