别再浪费时间搭框架了,这个刚刚好

14,298 阅读4分钟
原文链接: github.com

XDroid

概述

XDroid是一个轻量级的Android快速开发框架,由UI、Cache、Event、ImageLoader、Kit、Log、Router、Net等几个部分组成。其设计思想是使用接口对各模块解耦规范化,不强依赖某些明确的三方类库,使得三方类库可自由搭配组装,方便替换。可快速、自由的进行App开发。

特性

XDroid主要有这些特性:

  • 基于MVC,可快速切换到MVP
  • 提供XActivity、XFragment、SimpleRecAdapter、SimpleListAdapter等基类,可快速进行开发
  • 完整封装XRecyclerView,可实现绝大部分需求
  • QTContentLayout、XRecyclerContentLayout实现loading、error、empty、content四种状态的自由切换
  • 实现了Memory、Disk、SharedPreferences三种方式的缓存,可自由扩展
  • 内置了EventBus,可自由切换到其他事件订阅库
  • 内置Glide,可自由切换其他图片加载库
  • 可输出漂亮的Log,支持Json、Xml、Throwable等,实现蝇量级
  • 内置链式路由
  • 内置常用工具类:package、random、file...,提供的都是非常常用的方法
  • 内置加密工具类 XCodec,你想要的加密姿势都有
  • 默认使用okhttputils作为api请求,可任性切换retrofit等其他库
  • 引入三方库极少

Get Started

使用,仅需三步:

step1

clone 'XDroid'库到本地:

git clone https://github.com/limedroid/XDroid.git

step2

将library作为依赖库,在您的app module 中 添加如下依赖:

compile project(':library')

step3

修改'kit'包下的'XDroidConf'配置类,主要针对log、cache、router。若采用默认配置,此步骤可略过.

1 使用说明

1.1 UI规范

在UI层,主要对Activity、Fragment、RecyclerView、ListAdapter进行了封装。

1.1.1 XActivity

项目的Activity可直接继承XActivity,也可重新写一个基类Activity并让其继承XActivity,子类Activity必须实现这四个方法:

    void initData(Bundle savedInstanceState);       //初始化数据

    void setListener();                 //设置事件监听

    int getLayoutId();                  //设置布局资源文件id

    boolean useEventBus();              //是否使用eventbus

这些类的定义在'UiCallback'接口中,若要进行修改,可直接修改此类。 XActivity中还实现了'UiDelegate',实现常用的公共方法,在子类中可直接使用。

可以将项目的showLoadingDialog()等常用方法添加进去,方便子类调用

1.1.2 XFragment

XFragment的实现与XActivity一致,为了方便的对Fragment和Activity进行切换,也就是只需要修改继承父类,就可改变Fragment&Activity的归属。其使用方法与XActivity是一致的。

1.1.3 UiDelegate

'UiDelegate'是一个接口,封装了一些常见的公共方法,供XActivity、XFragment的子类使用,其定义如下:

public interface UiDelegate {

    void resume();
    void pause();
    void destory();

    void visible(boolean flag, View view);
    void gone(boolean flag, View view);
    void inVisible(View view);

    void toastShort(String msg);
    void toastLong(String msg);

}

XDroid中内置了UiDelegateBase实现类。

1.1.4 XRecyclerView

XDroid集成了XRecyclerViewXRecyclerView有该库的详细说明。这里列举说明如下:

  • XRecyclerView继承自RecyclerView,它就是一个封装了常见功能的RecyclerView,而不是继承FrameLayout
  • XRecyclerView中实现了Header、Footer,header和Footer可以有多个
  • XRecyclerView的每一个header、footer的viewType是不同的,而大部分开源库的header、footer的viewtype是相同的,其直接后果是界面卡顿
  • XRecyclerView可以做出几乎任何的界面效果,可以取代ScrollView,你只需要使用header或者footer
  • XRecyclerView中实现了上拉加载更多,可以自定义加载更多的效果,只需要实现LoadMoreUIHandler接口即可
  • XRecyclerView并未实现下拉刷新功能,您可以选择SwipeRefreshLayout或者其他的下拉刷新viewGroup包裹,即 你可以自由选择下拉刷新功能的实现。
  • 为了方便自定义使用,特别集成了XRecyclerContentLayout控件,你可以根据业务进行扩展,XRecyclerContentLayout只是一个示例,当然也可以满足绝大部分需求了

1.1.5 SimpleRecAdapter&SimpleListAdapter

SimpleRecAdapter是针对单ItemType场景对RecyclerView.Adapter的封装,只需要继承该类,实现三个方法即可:

F newViewHolder(View itemView);         //创建viewholder

int getLayoutId();              //设置布局资源id

void onBindViewHolder(F holder, int position);       //绑定数据和事件

若有多个ItemType,请继承RecyclerAdapter类,具体实现推荐看源码

SimpleListAdapter是针对单ItemType场景对ListAdapter的封装,继承该类,也需要实现三个方法:

H newViewHolder(View convertView);      //创建viewholder

int getLayoutId();          //设置布局资源文件

void convert(H holder, T item, int position);       //绑定数据和事件

若有多个ItemType,请继承XListAdapter类

1.2 缓存

1.2.1 SharedPreferences

1.2.2 MemoryCache

1.2.3 DiskCache

1.2.4 自定义缓存

1.3 事件订阅

1.3.1 EventBus的使用

1.3.2 自定义事件订阅

1.4 图片加载

1.4.1 Glide的使用

1.4.2 图片加载扩展

1.5 常用工具

1.5.1 加解密Codec

1.5.2 常用工具kits

1.5.3 单例基类SingletonCtx

1.5.4 简单回调SimpleCallback

1.6 日志

1.7 路由

1.8 Api请求

1.9 XDroid配置

1.10 混淆