DevRing

Project Url: LJYcoder/DevRing
Introduction: 安卓基础开发库,包含各常用模块,让开发简单点。
More: Author   ReportBugs   
Tags:

label1 label2 label3 label4

介绍

DevRing是一个提供了常用模块的安卓基础开发库
主要包括 网络请求WebSocket 长连接图片加载数据库事件总线缓存权限管理工具类 模块。

其中,网络请求使用 Retrofit+RxJava 实现,图片加载使用 Glide 实现(可替换),数据库使用 GreenDao 实现(可替换),事件总线使用 EventBus 实现(可替换),权限管理使用 RxPermission 实现。


使用

使用文档请点这里

1.添加依赖

在项目 module 下的 gradle 中添加以下依赖:

implementation 'com.ljy.ring:devring:1.2.0'

2.初始化、配置、构建

在 Application 的 onCreate 中进行初始化、配置、构建。
务必按顺序执行这三步。


//1.初始化
DevRing.init(this);


//2.根据你的需求进行相关模块的全局配置

//配置网络请求模块,如 BaseUrl,连接超时时长,Log,全局 Header,Cookie,缓存,失败重试等
DevRing.configureHttp().setXXX()...

//配置图片加载模块,如替换实现框架,加载中图片,加载失败图片,开启过渡效果,缓存等
DevRing.configureImage().setXXX()...

//配置事件总线模块,如替换实现框架,EventBus 的 index 加速
DevRing.configureBus().setXXX()...

//配置数据库模块、替换实现框架
DevRing.configureDB(dbManager);  

//配置缓存模块,如磁盘缓存的地址、大小等
DevRing.configureCache().setXXX()...

//配置其他模块,如 Toast 样式,是否显示 RingLog,是否启用崩溃日志等
DevRing.configureOther().setXXX()...


//3.构建
DevRing.create();

3.开始调用

通过 DevRing.xxxManager()得到相关模块的管理者,然后进行具体操作。

//网络请求模块:
//普通请求、上传请求、下载请求、监听上传下载进度、生命周期控制等。
DevRing.httpManager().xxx();

//WebSocket 模块:
//连接监听、发送消息、心跳发送、生命周期控制等。
DevRing.webSocketManager().xxx();

//图片加载模块:
//各类型图片的加载,可设置加载选项(圆形、圆角、模糊、灰白),下载图片,获取 Bitmap 等
DevRing.imageManager().xxx();

//事件总线模块:
//订阅、解除订阅,发送普通事件,发送粘性事件
DevRing.busManager().xxx();

//数据库模块:
//对 key 值对应的数据表进行增删改查等
DevRing.tableManager(key).xxx();

//缓存模块:
//提供内存缓存,磁盘缓存,SharedPreference 缓存
DevRing.cacheManager().xxxCache().xxx();

//其他模块:权限管理、Activity 管理
DevRing.permissionManager().xxx();
DevRing.activityListManager().xxx();

...

4.其他

提供了 ActivityLifeCallback 和 FragmentLifeCallback,以实现基类的功能。
只需 Activity 实现 IBaseActivity 接口即可完成相关的基类操作。
只需 Fragment 实现 IBaseFragment 接口即可完成相关的基类操作。
具体请查看项目代码以及关于基类的那些事

提供了部分常用的工具类
BarUtil(状态栏导航栏颜色控制),FileUtil(文件操作工具类),RingLog(可定位的 Log 打印),RingToast(吐司工具类),ImageUtil(图片工具类),NetworkUtil(网络状态工具类)、FontTypeUtil(修改 App 字体样式工具类)、KeyboardUtil(软键盘工具类)等。

5.注意事项

  1. 配置参数为 File 时,请自行确保对传入的 File 具有可读写权限。
  2. 部分框架需忽略混淆,具体的混淆配置请参考 Demo 中 app 下的 proguard-rules.pro 文件。
  3. DevRing 库中 AndroidManifest 已添加了网络权限,所以主项目不必重复添加。
  4. DevRing 库中已添加了 Glide,EventBus,GreenDao,Dagger2,Retrofit2,RxJava2,RxAndroid2,RxLifeCycle2,RxPermission2 的依赖,所以主项目不必重复添加。
  5. 可以通过 exclude 移除 DevRing 库中相关框架的依赖以减小包体积。 例如:
    api ('com.ljy.ring:devring:x.x.x'){
    //如果不需使用图片加载模块或者该模块不使用 Glide 实现,那么可以加上这句移除 Devring 库中对 Glide 的依赖以减小包体积
    exclude module: 'glide'
    //如果不需使用事件总线模块或者该模块不使用 EventBus 实现,那么可以加上这句移除 Devring 库中对 EventBus 的依赖以减小包体积
    exclude module: 'eventbus'
    //如果不需使用数据库模块或者该模块不使用 GreenDao 实现,那么可以加上这句移除 Devring 库中对 GreenDao 的依赖以减小包体积
    exclude module: 'greendao'
    }
    


Demo

内容

  1. 演示了 DevRing 各模块的使用。
  2. 演示了如何使用 Fresco 替换图片加载模块中默认的 Glide。
  3. 演示了如何使用 RxBus 替换事件总线模块中默认的 EventBus。
  4. 演示了如何使用原生数据库替换数据库模块中默认的 GreenDao。
  5. 演示了如何使用 LifeCycleCallback 来实现 Activity/Fragment 基类的功能。
    ....

运行图


版本信息

  • v1.2.1

    • 支持 WebSocket 长连接、支持同步(异步)发送消息、支持自定义心跳消息、支持生命周期控制(实现内容参考)
  • v1.2.0

  • v1.1.9 (2020/7/14)

    • 兼容 AndroidX
    • 迁移依赖库到 AndroidX
    • 升级 Glide 图片加载控件到最新版本(4.9.0)
  • v1.1.8 (2019/5/16)

    • 修复 GreenDao 数据库在部分高版本系统手机上崩溃的问题。问题和解决
  • v1.1.7 (2019/4/27)

    • 小优化
  • v1.1.6 (2019/2/21)

    • 新增根据 Tag 手动取消网络请求的功能
  • v1.1.5 (2019/1/29)

    • (PR by Xieyos) 网络模块新增 Cookie 功能,支持持久化和非持久化
    • 优化部分工具类
  • v1.1.4 (2018/12/22)

    • 修复网络模块刷新时重复添加拦截器的问题
  • v1.1.3 (2018/12/17)

    • 图片加载模块添加是否使用缓存的设置
    • 关于状态栏导航栏颜色控制:移除 ColorBar,引入了 Ultimatebar
  • v1.1.2 (2018/10/28)

    • 修复网络请求模块中生命周期控制无效的问题

更多版本信息点这里查看


相关博客

建议先熟悉相关框架的用法介绍,可更好地了解本库的用法与代码

DevRing 使用说明
系列开篇
Retrofit+RxJava
Fresco
Glide
EventBus
ButterKnife
GreenDAO
关于基类的那些事
常用的一些工具类


最后,感谢本项目中所涉及的开源代码的作者们。
有什么问题或建议,可以提 issue 或者简书告知。
如果觉得对你有帮助,不妨点个★star支持鼓励我~~

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools