架构分层:应用/模块层、应用框架层、通用技术库、性能优化等。
1.应用/模块层:App+Module+Core。
App:主应用,可按需集成一个或多个子模块。
Module:子系统或应用模块,也可以打包成独立App。如CMS、Chat、音视频会议、云盘等
Core:供App和Module公用的平台核心库。包括:1.公共接口、实体类、核心api接口及实现、aidl接口及服务;2.注册注销、选人、用户信息页、登录、子系统应用启动、自动更新等。
2.应用框架层 App Framework Layer
BaseUI:通用UI库,string.xml、适配的dimens.xml、style.xml、toast、alertdialog、appacativity、baseacitivity、baseframment、UIWidget(自定义UI组件)等
CommonUtils:通用工具库,自行封装的一些必要的工具类。
Auth:身份验证、登录及第三方登录方案的封装。
Router:管理界面跳转,引用第三方或自行封。
权限框架: Permission4M。
NetUtils:Httputils(通用网络客户端组件:请求、上传、下载、Https,可引用Retrofit2、OkHttp3等)、SocketUtils(常规Socket通讯和SSL安全的Socket通讯的封装)、BleUtils(蓝牙通讯库的封装)。
DBUtils:封装数据库工具库SqlUtils或引入第三方库GreenDao、Ormlite等。
PreferenceUtils:必要的封装,便于使用。
ImageLoader方案:引入第三方Fresco、Glide、ImageLoader,可适当封装。
Json解析:使用第三方库Gson、Jackson等。
Eventbus:事件总线组件。可引用EventBus、OTTO等。
性能监控框架:使用等LeakCanary、BlockCanary等。
其他:Dagger2、RxJava、RxAndroid。
3.通用业务组件层:Common Business Libs
音频、视频、二维码、LBS、支付、社会化分享、即时通讯等组件封装。
音视频业务:Audioplayer、Audiorecorder、Ijkplayer
第三方登录和分享的封装:socialsdk
第三方sdk及封装: PaySDK、LBSSDK、Zxing