implementation 'io.github.afkt:DevEngine:1.0.0'
- dev.engine | 根目录
- barcode | BarCode Engine 条形码、二维码处理
- cache | Cache Engine 有效期键值对缓存
- compress | Image Compress Engine 图片压缩
- image | Image Engine 图片加载、下载、转格式等
- json | JSON Engine
- keyvalue | KeyValue Engine 键值对存储
- log | Log Engine 日志打印
- media | Media Selector Engine 多媒体资源选择
- permission | Permission Engine 权限申请
- storage | Storage Engine 外部、内部文件存储
DevEngine(基于 DevAssist Engine 模块) 主要为了解决项目代码中对第三方框架强依赖使用、以及部分功能版本适配。
通过实现对应功能模块 Engine 接口,实现对应的方法功能, 对外无需关注实现代码,直接通过 DevXXXEngine 进行调用,实现对第三方框架解耦、一键替换第三方库、同类库多 Engine 混合使用、以及部分功能适配 ( 如外部文件存储 MediaStore 全局适配 ) 等
可通过 Key-Engine 实现对组件化、模块化各个 Module 使用同类型 Engine 不同库实现使用
该库为 Kotlin 实现,另有 Java 实现代码 ,该库会依赖第三方库导致项目体积变大等情况,可自行 copy 所需已实现代码进行使用
已实现模块有(依赖第三方库实现列表如下展示):
- BarCode 条形码
- Cache 有效期键值对缓存
- Image Compress 图片压缩
- Image 图片加载、下载、转格式
- JSON 映射
- KeyValue 键值对存储
- Log 日志打印
- Media Selector 多媒体资源选择
- Permission 权限申请
- Storage Engine 外部、内部文件存储
如已封装代码无法直接使用于需求实现,可自行 copy 代码进行修改,或自定义对应模块 Engine 实现类进行设置并通过 DevXxxEngine.getEngine(key) 进行调用获取
项目类结构 - 包目录
BarCode 条形码 - 包目录
可选实现方案:
- 依赖 ZXing 实现 ZXingEngineImpl
Cache 有效期键值对缓存 - 包目录
可选实现方案:
Image Compress 图片压缩 - 包目录
可选实现方案:
- 依赖 Luban 鲁班图片压缩 实现 LubanEngineImpl
Image 图片加载、下载、转格式 - 包目录
可选实现方案:
- 依赖 Glide 图片加载框架 实现 GlideEngineImpl
JSON 映射 - 包目录
可选实现方案:
-
依赖 Gson 实现 GsonEngineImpl
-
依赖 Fastjson 实现 FastjsonEngineImpl
KeyValue 键值对存储 - 包目录
可选实现方案:
Log 日志打印 - 包目录
可选实现方案:
Media Selector 多媒体资源选择 - 包目录
可选实现方案:
Permission 权限申请 - 包目录
可选实现方案:
Storage Engine 外部、内部文件存储 - 包目录
可选实现方案: