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 实现代码
该库实现模块为 BarCode 条形码、Cache 有效期键值对缓存、Image Compress 图片压缩、Image 图片加载、下载、转格式 、JSON 映射、KeyValue 键值对存储、Log 日志打印、Media Selector 多媒体资源选择、Permission 权限申请 、Storage Engine 外部、内部文件存储,且依赖第三方库实现列表如下展示。
该库会依赖第三方库导致项目体积变大等情况,可自行 copy 所需已实现库代码进行使用
如无法直接使用于需求实现,可自行 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 外部、内部文件存储 - 包目录
可选实现方案:
- 依赖 DevApp MediaStoreUtils、 、UriUtils 实现 DevMediaStoreEngineImpl