别再浪费时间搭框架了,这个刚刚好
2016-12-06 20:28 阅读(228)

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

特性

XDroid主要有这些特性:

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是一个接口,封装了一些常见的公共方法,供XActivityXFragment的子类使用,其定义如下:

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有该库的详细说明。这里列举说明如下:

1.1.5 SimpleRecAdapter&SimpleListAdapter

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

F newViewHolder(View itemView);         //创建viewholderint getLayoutId();              //设置布局资源idvoid onBindViewHolder(F holder, int position);       //绑定数据和事件

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

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

H newViewHolder(View convertView);      //创建viewholderint getLayoutId();          //设置布局资源文件void convert(H holder, T item, int position);       //绑定数据和事件

若有多个ItemType,请继承XListAdapter类

1.2 缓存

XDroid定义了ICache接口

public interface ICache {    void put(String key, Object value);         //存

    Object get(String key);                     //取

    void remove(String key);                    //删除

    boolean contains(String key);               //检验是否存在

    void clear();                               //删除所有}

并实现了DiskCacheMemoryCache,其内部分别借助 DiskLruCacheLruCache实现。

1.2.1 SharedPreferences

SharedPref是对SharedPreferences的封装,包含了一系列的get&put方法、remove等。 推荐实践:创建一个新类,将键名作为常量,并封装对应的put&get静态方法,方便全局使用。如:

public String getUserName(){    return getString(KEY.USER_NAME , null);
}

可以在XDroidConf中配置缓存文件名称,默认是config

1.2.2 MemoryCache

MemoryCache内部采用LruCache实现,是ICache的实现类。 推荐实践:创建一个新类,将键名作为常量,并封装对应的put&get静态方法,方便全局使用。

1.2.3 DiskCache

DiskCache内部采用DiskLruCache实现,是文件缓存方式,其在基本缓存的基础上,增加了有效期,可以用于Api数据缓存。

void put(String key, String value);void put(String key, String value, long expireMills);String get(String key);void remove(String key);boolean contains(String key);void clear();

实现了上述方法。

可以在XDroidConf中配置缓存目录名称,默认是cache

1.2.4 自定义缓存

自定义缓存只需要实现ICache即可。

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 混淆