基于RxJava2+Retrofit2的Android全能基礎(chǔ)框架能幫你解決多少項(xiàng)目難題?)
【免費(fèi)下載鏈接】XSnow基于RxJava2Retrofit2精心打造的Android基礎(chǔ)框架包含網(wǎng)絡(luò)、上傳、下載、緩存、事件總線、權(quán)限管理、數(shù)據(jù)庫(kù)、圖片加載基本都是項(xiàng)目中必用功能每個(gè)模塊充分解耦可自由拓展。項(xiàng)目地址https://gitcode.com/gh_mirrors/xs/XSnow點(diǎn)擊查看免費(fèi)下載XSnow 是一個(gè)基于RxJava2 Retrofit2打造的 Android 全能基礎(chǔ)框架集網(wǎng)絡(luò)請(qǐng)求、文件上傳下載、本地緩存、事件總線、權(quán)限管理、數(shù)據(jù)庫(kù)、圖片加載于一身每個(gè)模塊充分解耦、可自由拓展幫你一次性解決 App 開發(fā)中的大部分通用難題。 先認(rèn)識(shí) XSnow它到底是什么取名的含義很有意思X 代表未知一切取其通用之意Snow 代表雪取其純凈之意。也就是說(shuō)XSnow 追求的是通用且純凈——只依賴公共核心庫(kù)不綁定任何業(yè)務(wù)邏輯。從 settings.gradle 可以看到項(xiàng)目由三個(gè)模塊組成職責(zé)劃分非常清晰模塊作用xsnow核心框架庫(kù)網(wǎng)絡(luò)、緩存、事件總線、權(quán)限、數(shù)據(jù)庫(kù)、圖片加載netexpand拓展模塊針對(duì)服務(wù)器統(tǒng)一返回格式ApiResultTCode/Data/Message的請(qǐng)求處理app官方 Demo每個(gè)功能都配有可運(yùn)行的使用示例 功能清單一個(gè)框架覆蓋 8 大模塊新手常問(wèn)為什么我要引入 XSnow看看它內(nèi)置了哪些項(xiàng)目中必用功能?網(wǎng)絡(luò)請(qǐng)求支持 GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH 全請(qǐng)求方式請(qǐng)求與響應(yīng)數(shù)據(jù)自動(dòng)轉(zhuǎn)換無(wú)需為每個(gè)接口單獨(dú)定義 Retrofit 接口緩存策略共5 種緩存策略可自由配置后文詳述還支持 OKHttp 原生 HTTP 緩存健壯性失敗自動(dòng)重試可配置次數(shù)與間隔、按 Tag 取消單個(gè)或全部請(qǐng)求、異常統(tǒng)一處理ApiException上傳/下載支持單文件與多文件上傳、字節(jié)流/圖片等多種上傳類型回調(diào)上傳與下載進(jìn)度事件總線基于 Rx 響應(yīng)式思想實(shí)現(xiàn)的 RxBus用注解標(biāo)記事件消費(fèi)點(diǎn)替代 EventBus 的手動(dòng)注冊(cè)/注銷權(quán)限管理Android 6.0 動(dòng)態(tài)權(quán)限申請(qǐng)回調(diào)區(qū)分允許/拒絕/不再詢問(wèn)?數(shù)據(jù)庫(kù)集成 GreenDao開箱即用?圖片加載默認(rèn)集成 Glide且通過(guò)ILoader接口可自由替換成 Fresco 等其他庫(kù)Demo 中就有 Fresco 實(shí)現(xiàn)。核心入口類 ViseHttp.java 用靜態(tài)方法GET()、POST()、UPLOAD()、DOWNLOAD()等提供鏈?zhǔn)秸{(diào)用上手成本很低。 快速上手3 步接入 XSnow第 1 步添加依賴在build.gradle的 dependencies 中加入compile com.vise.xiaoyaoyou:xsnow:2.1.9如果要用 Glide 圖片加載或 GreenDao 數(shù)據(jù)庫(kù)再按需添加對(duì)應(yīng)依賴。第 2 步在 Application 中初始化參考 Demo 的 MyApplication.javaViseHttp.init(this); ViseHttp.CONFIG() .baseUrl(服務(wù)器地址) .setCookie(true) .interceptor(new HttpLogInterceptor().setLevel(HttpLogInterceptor.Level.BODY)); 極簡(jiǎn)用法如果只想快速接入只需配置baseUrl服務(wù)器地址其余全部采用框架默認(rèn)配置。第 3 步發(fā)起第一個(gè)請(qǐng)求ViseHttp.GET(/getAuthor) .as(AuthorModel.class) // 泛型自動(dòng)解析響應(yīng) .callback(new ACallbackAuthorModel() { // 在這里接收數(shù)據(jù) });框架同時(shí)支持返回Observable可以繼續(xù)享受 RxJava 的調(diào)度、組合等特性局部配置與全局配置沖突時(shí)局部配置優(yōu)先。 5 種緩存策略一張表幫你選對(duì)緩存是 XSnow 網(wǎng)絡(luò)模塊的一大亮點(diǎn)定義在 CacheMode.java具體實(shí)現(xiàn)見(jiàn) strategy 目錄策略行為典型場(chǎng)景FIRST_REMOTE優(yōu)先網(wǎng)絡(luò)先請(qǐng)求網(wǎng)絡(luò)失敗后降級(jí)讀緩存對(duì)實(shí)時(shí)性要求高的數(shù)據(jù)FIRST_CACHE優(yōu)先緩存先讀緩存沒(méi)有再請(qǐng)求網(wǎng)絡(luò)啟動(dòng)頁(yè)、弱網(wǎng)兜底ONLY_REMOTE只加載網(wǎng)絡(luò)只走網(wǎng)絡(luò)但響應(yīng)會(huì)被寫入緩存登錄、支付等敏感操作ONLY_CACHE只讀緩存完全離線不發(fā)請(qǐng)求純本地?cái)?shù)據(jù)展示CACHE_AND_REMOTE緩存和網(wǎng)絡(luò)先回緩存再回網(wǎng)絡(luò)回調(diào)兩次首屏秒開 后臺(tái)刷新配合內(nèi)存、磁盤二級(jí)緩存與 SharedPreferences 加密存儲(chǔ)Base64離線場(chǎng)景也能有數(shù)據(jù)可用。 運(yùn)行官方 Demo一次性看懂所有功能想直接跑起來(lái)體驗(yàn)按下面步驟操作克隆倉(cāng)庫(kù)git clone https://gitcode.com/gh_mirrors/xs/XSnow啟動(dòng)本地 Mock 服務(wù)器項(xiàng)目?jī)?nèi)置 moco 服務(wù)運(yùn)行 start_moco_server.bat 即可在 80 端口啟動(dòng)模擬接口數(shù)據(jù)定義在 data.json 中/getAuthor、/postAuthor等十余個(gè)接口修改 baseUrl把應(yīng)用初始化中的服務(wù)器地址改成你本地電腦的 IP這一步是新手最容易踩的坑不設(shè)置 Demo 請(qǐng)求全部失敗。啟動(dòng)后Demo 首頁(yè)通過(guò)右側(cè)滑出菜單進(jìn)入四大演示頁(yè)每個(gè)功能都有對(duì)應(yīng)可點(diǎn)擊按鈕NetTestActivity.javaGET/POST、各緩存策略、Retrofit 接口請(qǐng)求UploadDownActivity上傳/下載與進(jìn)度條展示ImageLoaderActivity圖片加載Demo 中切換為 FrescoOtherTestActivity數(shù)據(jù)庫(kù)增刪改查、三種緩存讀寫、事件總線發(fā)送/接收。?? 注意數(shù)據(jù)庫(kù)操作、事件通知等效果主要通過(guò)日志觀察記得打開 ViseLog 日志開關(guān)。? 項(xiàng)目目錄速覽源碼都藏在哪兒功能源碼位置網(wǎng)絡(luò)請(qǐng)求入口ViseHttp.java請(qǐng)求/緩存/攔截器http/request、ApiCache.java、http/interceptor失敗重試ApiRetryFunc.java事件總線BusManager.java、Subscribe.java權(quán)限管理PermissionManager.java數(shù)據(jù)庫(kù)DBManager.java圖片加載可替換ILoader.java、GlideLoader.java統(tǒng)一響應(yīng)格式處理ApiResult.java全局配置類 HttpGlobalConfig.java 支持超時(shí)時(shí)間、代理、SSL、Cookie、攔截器、失敗重試等一整列可定制項(xiàng)。?? 避坑指南這些注意事項(xiàng)能幫你省時(shí)間API 調(diào)試依賴 moco網(wǎng)絡(luò)演示接口由 moco 服務(wù)提供使用前必須先啟動(dòng)服務(wù)并把 baseUrl 指向本機(jī) IP這是 Demo 跑不通的第一嫌疑混淆配置XSnow 依賴 RxJava、OkHttp、Retrofit、Gson 等第三方庫(kù)Release 打包需按 README.md 中給出的 proguard 規(guī)則配置否則線上會(huì)出現(xiàn)數(shù)據(jù)解析崩潰版本演進(jìn)歷史版本記錄見(jiàn) VERSION.md2.0.0 起完成 RxJava2 重構(gòu)建議直接使用 2.1.x 穩(wěn)定版上傳功能Demo 中的上傳示例對(duì)接的是作者公司內(nèi)網(wǎng)服務(wù)器本地只能看到調(diào)用方式、看不到真實(shí)效果。? 寫在最后XSnow 用最少的依賴把網(wǎng)絡(luò)、緩存、上傳下載、事件總線、權(quán)限、數(shù)據(jù)庫(kù)、圖片加載這些每個(gè)項(xiàng)目都要寫一遍的底層能力打包好了。對(duì)于新手它是學(xué)習(xí) RxJava2 Retrofit2 組合的優(yōu)秀范本對(duì)于老手它的模塊化解耦意味著可以只取所需、自由替換。如果你的下一個(gè) Android 項(xiàng)目還在從零搭基建不妨讓 XSnow 幫你先把地基打好。贊分享【免費(fèi)下載鏈接】XSnow基于RxJava2Retrofit2精心打造的Android基礎(chǔ)框架包含網(wǎng)絡(luò)、上傳、下載、緩存、事件總線、權(quán)限管理、數(shù)據(jù)庫(kù)、圖片加載基本都是項(xiàng)目中必用功能每個(gè)模塊充分解耦可自由拓展。項(xiàng)目地址https://gitcode.com/gh_mirrors/xs/XSnow點(diǎn)擊查看免費(fèi)下載相關(guān)推薦Hello-Agents 共創(chuàng)項(xiàng)目模板指南基于 HelloAgents 框架構(gòu)建你的第一個(gè)智能體項(xiàng)目Hello Agents 共創(chuàng)項(xiàng)目模板指南基于 HelloAgents 框架構(gòu)建你的第一個(gè)智能體項(xiàng)目 本文面向 Hello Agents 教程的讀者與貢獻(xiàn)者教程文檔AI Agent人工智能大模型CloudReader架構(gòu)設(shè)計(jì)指南Retrofit2 RxJava2 Room的最佳實(shí)踐CloudReader架構(gòu)設(shè)計(jì)指南Retrofit2 RxJava2 Room的最佳實(shí)踐 CloudReader是一款基于網(wǎng)易云音樂(lè)UI設(shè)計(jì)風(fēng)格的An移動(dòng)開發(fā)推薦一款強(qiáng)大的Android開發(fā)框架XSnow推薦一款強(qiáng)大的Android開發(fā)框架XSnow 項(xiàng)目介紹 XSnow是一個(gè)基于 RxJava2 和 Retrofit2 構(gòu)建的高度解耦的Android基礎(chǔ)框架創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考