Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked from LJYcoder/DevRing

安卓基础开发库,包含各常用模块,让开发简单点。

Notifications You must be signed in to change notification settings

Lucifer1m/DevRing

Repository files navigation

DevRing

label1 label2 label3 label4

介绍

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

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


使用

1.添加依赖

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

compile 'com.ljy.ring:devring:1.1.6'

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();
//图片加载模块:
//各类型图片的加载,可设置加载选项(圆形、圆角、模糊、灰白),下载图片,获取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接口即可完成相关的基类操作。
具体请查看项目代码以及关于基类的那些事

提供了部分常用的工具类:
UltimateBar(状态栏导航栏颜色控制),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.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支持鼓励我~

About

安卓基础开发库,包含各常用模块,让开发简单点。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /