美文网首页
simpleLib - android快速开发核心框架

simpleLib - android快速开发核心框架

作者: 极客收藏夹 | 来源:发表于2019-06-05 14:07 被阅读0次

SimpleLib

🔥 simpleLib 是笔者开发历程中积累下来的能大幅提升效率的方法和约束整合。旨在 帮助基于该类库的开发者能够高效的完成 Android 项目搭建和开发

项目 持续迭代更新 中,会继续丰富类库功能。

基于 Java1.8 开发,深度依赖以下开源类库

data-binding RxJava glide okHttp Gson

项目基本结构

└── simplelib
    ├── Const.java                     类库所需常量
    ├── LibCore.java                   初始化核心
    ├── core                              
    │   ├── JsonHelper.java            Json转化
    │   ├── ImageLoader.java           图片加载    
    │   ├── Logs.java                  日志管理
    │   ├── PrefHelper.java            SharePreference管理
    │   ├── Router.java                界面跳转路由
    │   ├── RxBus.java                 事件管理
    │   ├── RxHelper.java              RxJava线程调度
    │   └── UiHelper.java              界面工具集合
    ├── http
    │   ├── OkHttpHelper.java          okHttp管理
    │   ├── SslCertHelper.java         ssl信任
    │   ├── cookie                     cookie管理
    │   └── intercaptor                拦截器
    ├── model
    │   ├── DeviceInfo.java            设备信息
    │   └── CommonEvent                事件载体
    ├── ui
    │   ├── BindingAdapters.java       dataBindingAdapter
    │   ├── activity                   activity界面基类
    │   ├── adapter                    基础适配器
    │   ├── fragment                   fragment界面基类
    │   ├── interfaces                 接口约束
    │   └── web                        WebView的封装处理(腾讯x5)
    ├── util
    │   ├── CallBacks.java             基础回调封装
    │   ├── StringHelper.java          字符串工具类集合
    │   ├── ThreadHelper.java          线程调度工具类集合
    │   └── UrlUtil.java               Url工具类集合
    └── view                           自定义view集合

如何使用

1. 引入依赖

// app/build.gradle 处添加依赖
implementation 'com.github.cchao:simpleLib:[last_version]'

clone 类库作为项目的子模块引用

2. 初始化类库

public class App extends Application {
    
    @Override
    public void onCreate() {
        super.onCreate();
        
        // 核心 初始化
        LibCore.init(mContext, new LibCore.InfoSupport() {
            // 使用Lib提供的 OkhttpClient 能获取基本的网络交互日志
            public OkHttpClient getOkHttpClient() {
                return OkHttpManager.getOriginClient();
            }

            public LibCore.ILogEvents getLogEvents() {
                return new LibCore.ILogEvents() { /* 自定义日志上报规则 */};
            }

            public LibCore.RouterConfig getRouterConfig() {
                return new LibCore.RouterConfig() { /* 自定义路由拦截规则 */};
            }
        });
        
        // 自定义基础样式
        LibCore.setLibConfig(new LibCore.LibConfig() { /* 自定义界面基础样式 */ });
    }
}

类库说明

核心依赖

基础核心,进行初始化和依赖对象的注入, 由 InfoSupportLibConfig 提供配置项

  • InfoSupport 返回基本且必须的参数

    • getOkHttpClient 提供给上层调用,默认使用 SimpleLib 默认的 OkHttpClient 实例
    • getLogEvents 日志事件回调,可以在这执行日志收集(比如 Bugly 收集)
    • getRouterConfig 路由配置,如:某些需要登录权限的页面会调用配置中的跳转代码
  • LibConfig 配置关于样式上的自定义

    • 自定义的配置项,比如加载对话框,标题栏,页面加载图,加载失败图等。非必选的,不配置的话 会返回默认的实现。

[图片上传失败...(image-72f37a-1575336981955)]

篇幅有限,更详细的配置范例移步 详细配置范例 查看

界面基础

ui目录提供了 基础的 BaseActivityBaseFragment 实现,各级界面 Base 类通过接口实现 约束,方便子类业务交互调用

  • BaseView - 简单的界面交互操作,如: showToast showProgress
  • BaseStateView - 界面状态切换(加载、异常、空数据等)
  • TitleBar - 配合 LibCore.LibConfig 提供标题栏操作
  • EventSubscriber - 事件订阅回调接口

[图片上传失败...(image-1528df-1575336981955)]

网络交互

RxHelper 依赖 Rxjava 提供了线程切换和结合基础界面接口 BaseView/BaseStateView 的交互和状态切换

(执行 Error consumer 均会触发 Logs 的异常日志收集上报)

// 显示 加载框,开始发起网络请求
showProgress();
addSubscribe(RetrofitHelper.getApis().login(email, password)
    .compose(RxHelper.toMain())
    .subscribe((respBean -> {
        hideProgress();
        // 失败,弹出异常文案
        if (respBean.isCodeFail()) {
            showToast(respBean.getMsg());
            return;
        }
        // 发送事件,登录成功
        RxBus.get().postEvent(Constant.Code.LOG_IN);
    }, RxUtil.getHideProgressError(this));

其他核心类

  • Logs 日志类,包括日志输出与日志收集
  • RxBus 基于 RxJava 的事件总线
  • PrefHelper 对 SharedPreferences 基本操作
  • RxHelper 对 RxJava 一些方法调用封装
  • Router 对 Activity 跳转和传参的封装
  • UiHelper 界面相关操作的整合
  • JsonHelper - 对 Json 的操作

篇幅有限,更多的类库使用范例移步 核心类库使用范例 查看

ChangeLog

v1.2.0

  • 新增滴滴 DoKit

v1.1.0

  • 新增 JsonHelper(弃用GsonUtil)
  • 新增 DevHelper 提供应用内的开发者选项(方便调试)
  • 修改 WebViewFragment 使用 X5 内核做网页的解析

相关文章

网友评论

      本文标题:simpleLib - android快速开发核心框架

      本文链接:https://www.haomeiwen.com/subject/feujxctx.html