业务通用UI
主要包含各种样式的Dialog, 自定义View等,根据APP的设计风格提供统一的样式;
图片操作库
图片操作库ImageSet是对图片组件库(包括Fresco, Glide, Universer ImageLoader)的封装,同时提供了调用系统相机/相册选择&裁剪照片,类似微信选择图片的组件,图片上传,图片压缩等功能。这个小模块其实也可放在Common组件层,只是觉得这里面也有一些业务相关的功能,所以就放在了这一层。
当然,基础业务层还还包括APP设计风格中需要用到的各种动画,样式,颜色值,尺寸值等资源。在进行业务开发时,统一使用这些资源,为后续修改整个APP风格提供可能。
Common组件层
这里包含了一些通用的组件,包括各种常用的工具类,通用的UI库,数据源的封装(包括网络,文件,数据库)。这是一个APP的基本架构,里面包含的类基本不需要改动。所以在对工具类和通用UI进行定义时,需要考虑放置的位置是否准确。
以上是整个项目使用组件化/模块化后基本结构的详细介绍,但是在开发过程中还是遇到了很多问题。
遇到的问题
模式切换
从Android工程的结构可以看出,app模块和新建的其他Module的结构基本一致,最大的区别就是build.gradle的结构:
// app模块中build.grald