Home

Awesome

XSnowIcon


XSnow

Codacy Badge License API

基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展。

XSnow,X:未知一切,取其通用之意;Snow:雪,取其纯净之意。该框架通用纯净,只依赖公共核心库。

功能简介

效果展示

操作演示动画

使用简介

1、引用依赖

在 build 文件的 dependencies 添加如下依赖:

compile 'com.vise.xiaoyaoyou:xsnow:x.x.x'

其中的 x.x.x 为版本号,下文有具体介绍。

如果需要使用 Glide 加载图片功能,还需要添加如下依赖:

compile 'com.github.bumptech.glide:glide:3.7.0'

如果需要使用GreenDao数据库功能,还需要添加如下依赖:

compile 'org.greenrobot:greendao:3.2.0'

并根据 GreenDao 数据库的使用规则进行相关配置。

2、初始化

在 Application 中进行全局初始化以及添加全局相关配置,简易初始化使用如下:

ViseHttp.init(this);
ViseHttp.CONFIG()
        //配置请求主机地址
        .baseUrl("服务器地址");

如果想快速接入项目中使用只需配置服务器地址就行,其他配置都将采用库中默认的配置。

如果想修改全局相关配置以及查看具体请求调用介绍,请移步 >>> 详细使用介绍文档。

如果想深入了解项目中用到的相关技术,请移步 >>> 相关技术说明文档。

代码托管

JCenter

相关代码 Release 版本已上传到 JCenter,如需查看相关版本记录可点击上面链接进行查询。

版本说明

LatestVersion

如需查看相关版本记录点击上面进入相关链接查看即可,下面是最新修改记录:

混淆配置

由于 XSnow 库有依赖部分第三方库,所以需要对依赖的第三方库也做相应的混淆保护,具体的混淆配置如下:

#glide
-dontwarn com.bumptech.glide.**
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

#gson
-dontwarn com.google.gson.**
-keep class com.google.gson.** { *; }

#rxjava
-dontwarn io.reactivex.**
-keep class io.reactivex.** { *; }

#okhttp
-dontwarn okio.**
-keep class okio.** { *; }
-dontwarn okhttp3.**
-keep class okhttp3.** { *; }

#retrofit
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

#greendao
-dontwarn org.greenrobot.greendao.**
-keep class org.greenrobot.greendao.** { *; }
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
    public static java.lang.String TABLENAME;
}
-keep class **$Properties

针对 XSnow 库本身的混淆保护配置如下:

#XSnow
-dontwarn com.vise.utils.**
-keep class com.vise.xsnow.event.inner.ThreadMode { *; }
-keep class com.vise.xsnow.http.api.ApiService { *; }
-keep class com.vise.xsnow.http.mode.CacheMode
-keep class com.vise.xsnow.http.mode.CacheResult { *; }
-keep class com.vise.xsnow.http.mode.DownProgress { *; }
-keep class com.vise.xsnow.http.strategy.**
-keepclassmembers class * {
    @com.vise.xsnow.event.Subscribe <methods>;
}
-keep class com.bumptech.glide.Glide

如果有拷贝使用到拓展库 netexpand,那么需要保护 ApiResult 这个类,具体配置如下:

#netexpand
-keep class com.vise.netexpand.mode.ApiResult { *; }

注意事项

关于我

一位热爱分享的技术爱好者!

人生就是一场游戏,你遇到的障碍就是各种关卡,所以,让我们尽情地去攻略吧!

WebsiteGitHubCSDN

最后


如果觉得该项目有帮助,请点下 Star,也欢迎推荐给你的朋友。


如果感觉自己从项目中学到了很多,请不要吝惜你的钱包给点打赏鼓励吧,一分钱也是爱呀! 微信支付


如果有好的想法和建议,也欢迎Fork项目参与进来,使用中如果有任何问题和建议都可以进群交流,QQ群二维码如下:

QQ群 (此群已满)

QQ群