XAOP
一个简易的AOP(Android)应用框架。囊括了最实用的AOP应用。
关于我
特点
-
支持快速点击切片
@SingleClick,支持设置快速点击的时间间隔。 -
支持动态申请权限切片
@Permission,支持自定义响应动作。 -
支持主线程切片
@MainThread。 -
支持IO线程切片
@IOThread,支持多种线程池类型。 -
支持日志打印切片
@DebugLog,支持自定义日志记录方式。 -
支持内存缓存切片
@MemoryCache,支持设置缓存大小。 -
支持磁盘缓存切片
@DiskCache,支持自定义磁盘缓存,缓存有效时间等。 -
支持自定义拦截切片
@Intercept,支持自定义切片拦截。
如何使用
1.先在项目根目录的 build.gradle 的 repositories 添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
2.再在项目根目录的 build.gradle 的 dependencies 添加xmark插件:
buildscript {
···
dependencies {
···
classpath 'com.github.xuexiangjys.XAOP:xaop-plugin:1.0.0'
}
}
3.在项目的 build.gradle 中增加依赖并引用xaop插件
apply plugin: 'com.xuexiang.xaop' //引用xaop插件
dependencies {
···
implementation 'com.github.xuexiangjys.XAOP:xaop-runtime:1.0.0' //添加依赖
}
4.在Application中进行初始化
XAOP.init(this); //初始化插件
XAOP.debug(true); //日志打印切片开启
XAOP.setPriority(Log.INFO); //设置日志打印的等级,默认为0
//设置动态申请权限切片 申请权限被拒绝的事件响应监听
XAOP.setOnPermissionDeniedListener(new PermissionUtils.OnPermissionDeniedListener() {
@Override
public void onDenied(List<String> permissionsDenied) {
ToastUtil.get().toast("权限申请被拒绝:" + Utils.listToString(permissionsDenied));
}
});
//设置自定义拦截切片的处理拦截器
XAOP.setInterceptor(new Interceptor() {
@Override
public boolean intercept(int type, JoinPoint joinPoint) throws Throwable {
XLogger.d("正在进行拦截,拦截类型:" + type);
switch(type) {
case 1:
//做你想要的拦截
break;
case 2:
return true; //return true,直接拦截切片的执行
default:
break;
}
return false;
}
});