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; } });