XSnow完整指南:一个基于RxJava2+Retrofit2的Android全能基础框架能帮你解决多少项目难题?
【免费下载链接】XSnow基于RxJava2Retrofit2精心打造的Android基础框架包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载基本都是项目中必用功能每个模块充分解耦可自由拓展。项目地址https://gitcode.com/gh_mirrors/xs/XSnow点击查看免费下载XSnow 是一个基于RxJava2 Retrofit2打造的 Android 全能基础框架集网络请求、文件上传下载、本地缓存、事件总线、权限管理、数据库、图片加载于一身每个模块充分解耦、可自由拓展帮你一次性解决 App 开发中的大部分通用难题。 先认识 XSnow它到底是什么取名的含义很有意思X 代表未知一切取其通用之意Snow 代表雪取其纯净之意。也就是说XSnow 追求的是通用且纯净——只依赖公共核心库不绑定任何业务逻辑。从 settings.gradle 可以看到项目由三个模块组成职责划分非常清晰模块作用xsnow核心框架库网络、缓存、事件总线、权限、数据库、图片加载netexpand拓展模块针对服务器统一返回格式ApiResultTCode/Data/Message的请求处理app官方 Demo每个功能都配有可运行的使用示例 功能清单一个框架覆盖 8 大模块新手常问为什么我要引入 XSnow看看它内置了哪些项目中必用功能⚡网络请求支持 GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH 全请求方式请求与响应数据自动转换无需为每个接口单独定义 Retrofit 接口缓存策略共5 种缓存策略可自由配置后文详述还支持 OKHttp 原生 HTTP 缓存健壮性失败自动重试可配置次数与间隔、按 Tag 取消单个或全部请求、异常统一处理ApiException上传/下载支持单文件与多文件上传、字节流/图片等多种上传类型回调上传与下载进度事件总线基于 Rx 响应式思想实现的 RxBus用注解标记事件消费点替代 EventBus 的手动注册/注销权限管理Android 6.0 动态权限申请回调区分允许/拒绝/不再询问️数据库集成 GreenDao开箱即用️图片加载默认集成 Glide且通过ILoader接口可自由替换成 Fresco 等其他库Demo 中就有 Fresco 实现。核心入口类 ViseHttp.java 用静态方法GET()、POST()、UPLOAD()、DOWNLOAD()等提供链式调用上手成本很低。 快速上手3 步接入 XSnow第 1 步添加依赖在build.gradle的 dependencies 中加入compile com.vise.xiaoyaoyou:xsnow:2.1.9如果要用 Glide 图片加载或 GreenDao 数据库再按需添加对应依赖。第 2 步在 Application 中初始化参考 Demo 的 MyApplication.javaViseHttp.init(this); ViseHttp.CONFIG() .baseUrl(服务器地址) .setCookie(true) .interceptor(new HttpLogInterceptor().setLevel(HttpLogInterceptor.Level.BODY)); 极简用法如果只想快速接入只需配置baseUrl服务器地址其余全部采用框架默认配置。第 3 步发起第一个请求ViseHttp.GET(/getAuthor) .as(AuthorModel.class) // 泛型自动解析响应 .callback(new ACallbackAuthorModel() { // 在这里接收数据 });框架同时支持返回Observable可以继续享受 RxJava 的调度、组合等特性局部配置与全局配置冲突时局部配置优先。 5 种缓存策略一张表帮你选对缓存是 XSnow 网络模块的一大亮点定义在 CacheMode.java具体实现见 strategy 目录策略行为典型场景FIRST_REMOTE优先网络先请求网络失败后降级读缓存对实时性要求高的数据FIRST_CACHE优先缓存先读缓存没有再请求网络启动页、弱网兜底ONLY_REMOTE只加载网络只走网络但响应会被写入缓存登录、支付等敏感操作ONLY_CACHE只读缓存完全离线不发请求纯本地数据展示CACHE_AND_REMOTE缓存和网络先回缓存再回网络回调两次首屏秒开 后台刷新配合内存、磁盘二级缓存与 SharedPreferences 加密存储Base64离线场景也能有数据可用。 运行官方 Demo一次性看懂所有功能想直接跑起来体验按下面步骤操作克隆仓库git clone https://gitcode.com/gh_mirrors/xs/XSnow启动本地 Mock 服务器项目内置 moco 服务运行 start_moco_server.bat 即可在 80 端口启动模拟接口数据定义在 data.json 中/getAuthor、/postAuthor等十余个接口修改 baseUrl把应用初始化中的服务器地址改成你本地电脑的 IP这一步是新手最容易踩的坑不设置 Demo 请求全部失败。启动后Demo 首页通过右侧滑出菜单进入四大演示页每个功能都有对应可点击按钮NetTestActivity.javaGET/POST、各缓存策略、Retrofit 接口请求UploadDownActivity上传/下载与进度条展示ImageLoaderActivity图片加载Demo 中切换为 FrescoOtherTestActivity数据库增删改查、三种缓存读写、事件总线发送/接收。⚠️ 注意数据库操作、事件通知等效果主要通过日志观察记得打开 ViseLog 日志开关。️ 项目目录速览源码都藏在哪儿功能源码位置网络请求入口ViseHttp.java请求/缓存/拦截器http/request、ApiCache.java、http/interceptor失败重试ApiRetryFunc.java事件总线BusManager.java、Subscribe.java权限管理PermissionManager.java数据库DBManager.java图片加载可替换ILoader.java、GlideLoader.java统一响应格式处理ApiResult.java全局配置类 HttpGlobalConfig.java 支持超时时间、代理、SSL、Cookie、拦截器、失败重试等一整列可定制项。⚠️ 避坑指南这些注意事项能帮你省时间API 调试依赖 moco网络演示接口由 moco 服务提供使用前必须先启动服务并把 baseUrl 指向本机 IP这是 Demo 跑不通的第一嫌疑混淆配置XSnow 依赖 RxJava、OkHttp、Retrofit、Gson 等第三方库Release 打包需按 README.md 中给出的 proguard 规则配置否则线上会出现数据解析崩溃版本演进历史版本记录见 VERSION.md2.0.0 起完成 RxJava2 重构建议直接使用 2.1.x 稳定版上传功能Demo 中的上传示例对接的是作者公司内网服务器本地只能看到调用方式、看不到真实效果。✅ 写在最后XSnow 用最少的依赖把网络、缓存、上传下载、事件总线、权限、数据库、图片加载这些每个项目都要写一遍的底层能力打包好了。对于新手它是学习 RxJava2 Retrofit2 组合的优秀范本对于老手它的模块化解耦意味着可以只取所需、自由替换。如果你的下一个 Android 项目还在从零搭基建不妨让 XSnow 帮你先把地基打好。赞分享【免费下载链接】XSnow基于RxJava2Retrofit2精心打造的Android基础框架包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载基本都是项目中必用功能每个模块充分解耦可自由拓展。项目地址https://gitcode.com/gh_mirrors/xs/XSnow点击查看免费下载相关推荐Hello-Agents 共创项目模板指南基于 HelloAgents 框架构建你的第一个智能体项目Hello Agents 共创项目模板指南基于 HelloAgents 框架构建你的第一个智能体项目 本文面向 Hello Agents 教程的读者与贡献者教程文档AI Agent人工智能大模型CloudReader架构设计指南Retrofit2 RxJava2 Room的最佳实践CloudReader架构设计指南Retrofit2 RxJava2 Room的最佳实践 CloudReader是一款基于网易云音乐UI设计风格的An移动开发推荐一款强大的Android开发框架XSnow推荐一款强大的Android开发框架XSnow 项目介绍 XSnow是一个基于 RxJava2 和 Retrofit2 构建的高度解耦的Android基础框架创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考