Home

Awesome

组件化项目实践

目录介绍

01.项目整体概述

1.1 项目背景说明

1.2 遇到问题记录

1.3 基础概念介绍

1.4 开发设计目标

1.5 组件化改造阻力

1.6 组件化收益分析

02.组件化演变架构图

2.1 以前App说明

2.2 现在App架构图

03.组件化实践的步骤

3.1 组件化考虑问题

3.2 组件化架构拆分

3.3 架构设计的出发点

04.组件化是如何交互

4.1 组件初始化功能

4.2 组件间页面跳转

4.3 组件间业务通信

4.4 业务耦合逐渐劣化

05.组件化避坑的指南

5.1 避免组件依赖恶化

5.2 组件化时资源名冲突

5.3 关于依赖优化记录

06.公共基础库的介绍

6.1 公共组件层概括

6.2 公共组件说明

公共基础库地址库说明功能介绍
ActivityManagerActivity任务栈管理轻松和完全解耦合式管理activity栈操作
AppStatusLib常见广播监听库可以全局监听电量,蓝牙,gps,网络,屏幕,Wi-Fi等状态
ToolUtilsLib常用基础工具类大量工具库相关utils代码,可以节省开发时间
ApplicationLibapplication初始化用于组件化中application初始化操作库
ParallelTaskLibapp任务启动神器有向无环图,简介版本的启动优化策略task库
AppBaseStore通用存储库支持sp,mmkv,lru,disk,map多种缓存,统一api调用
BaseClassLib基础base类主要是四大组件,fragment等相关的包装类
ReflectionLib反射工具库提高反射调用,一行代码即可,增强反射的开发效率
AppLogLib简易版本log简单版本log日志工具库,可以自由灵活实现日志记录
AppRestartLibapp重启动库使用闹钟,service,清单等多种方式重新启动app
SafeIntentLibintent打印库支持intent,Bundle数据完整信息输出到控制台
ArchitectureLibjitpack库待完善中
FragmentManagerFragment生命周期监听支持多activity的子fragment的周期监听
ToolFileLibFile文件工具库字节流,字符流,高效流读和写文件操作库
EventUploadLib异常&事件&日志上报库辅助基础和功能组件的日志,异常和埋点上报接口库
AppCommonInter基础接口库用于基础组件中异常降级,日志,异常等接口调用
AppPermission简单的权限库用于权限判断,申请以及回调相关处理库
AppLruDiskLru磁盘缓存Lru淘汰算法磁盘缓存库,写入file文件。基础工具库
AppLruCacheLru内存缓存Lru淘汰算法内存缓存库,写入到map集合中
BaseVpAdapterVp,Vp2适配器库主要是针对vp控件adapter的简单封装

07.功能组件库的介绍

7.1 功能组件层概括

7.2 功能组件说明

功能组件库地址库说明功能介绍
ZxingServerLib二维码扫描库用于二维码扫描识别的基础功能
ZXingCodeLib二维码生成库用于生成二维码的基础库
SerialTaskLib串行线程任务管理库用于串行线程任务执行策略的task管理库
LocaleHelperLib国际化locale库国际化业务locale管理库
CountTimerLib倒计时器库用于倒计时时间工具库
AppTraceToolTrace工具库
LongAliveLib保活库
ThreadPoolLib线程池封装库各种线程池案例封装库
AutoCloserLib推到后台杀死app库推到后台n时间后自动杀死app应用进程
AppProcessLib前后台监听库用于判断前后台状态,监听前后台切换的库
EasyExecutor轻量级线程池库轻量级线程池封装库,简易好用
ThreadDebugLib线程debug工具线程debug工具库
NtpTimeLibNtp国际时间校验库主要是用于智能设备时间校验库
AppUpdateLibApp版本更新库App版本更新,可以设置强制更新,普通更新

08.服务组件库的介绍

服务组件库地址库说明功能介绍
ImageServer图片压缩库图片经典压缩库,高度压缩图片质量库
OkHttpServer网络请求库简单对okhttp网络请求封装版本的网络库
ShareServer本地分享工具库调用本地分享,可以分享图片,文件等等
NfcServerNFC封装库智能设备之间关于nfc通信交互的简单封装库
GsonServer解析容错框架解析gson数据容错框架,主要是对后台返回json数据实体偶发类型匹配错误校验
IpcServerIPC进程通信库
EasyBleServer简单蓝牙库蓝牙链接和配对,数据传递的简易版本封装库
LogUpload日志上报库支持上传本地路径日志文件到服务端,支持前后台上传和配置重试
PrivateServer隐私合规API库
NetInterceptor网络日志拦截器网络日志拦截器,可以打印完整json内容输出到控制台
GlideProgressLibGlide加载进度库替换请求拦截即监听glide加载图片百分比进度
CompressServer图片加载库简易版本图片压缩库
BellsVibrations铃声和震动库一键可以设置铃声,设置手机震动和调整声音的库

09.项目稳定性的实践

9.1 项目稳定性背景

9.2 稳定性建设实践

10.项目诊断工具开发

10.1 为何需要诊断工具

10.2 诊断工具分类说明

工具库地址库说明功能介绍
MonitorPrivacy隐私合规检查使用hook技术检测隐私合规api的调用堆栈
MonitorFileLib磁盘查看工具
MonitorNetLib网络抓包工具
MonitorCrashLib崩溃拦截工具
MonitorInterceptor弱网模拟工具
MonitorCatonLib卡顿检测工具
MonitorPingLibPing域名工具
MonitorFpsLibFps检查工具
MonitorAnrLibANR检测工具
LeakCanarySdk内存泄漏工具
MonitorSpeed流量测速工具
MonitorXposedXposed检测
MonitorPhoneApp信息工具

11.遇到的问题点记录

12.其他介绍

12.1 其他内容介绍

image

12.2 一些技术流程

12.3 其封装库推荐

工具库地址库说明功能介绍
YCWebViewWebView封装库基于腾讯x5开源库,提高webView开发效率,大概要节约你百分之六十的时间成本。
YCCommonLibApp组件基础库组件化开发中基础公共库,为App开发提高组件通用性
YCAndroidTool测试工具库用于项目测试,崩溃重启操作,崩溃记录日志,网络拦截查看,统计耗时,ping相关工具
YCBlogs博客大汇总技术博客大汇总,所有博客会同步到该库中
YCThreadPool轻量级异步线程池轻量级简易线程池库,轻量级线程池异步库,支持线程执行过程中状态回调监测
YCDialog弹窗封装库自定义Toast;自定义dialog控件;自定义DialogFragment弹窗;自定义PopupWindow弹窗;还有自定义Snackbar等等
YCVideoPlayer通用音视频播放器播放器内核(自由切换) + 视频播放器 + 边播边缓存 + 高度定制播放器UI视图层
YCScrollPager滑动视频库仿抖音,快手,短视频,竖直方向,一次滚动一个页面的封装库。
YCStateLayout状态管理器库状态切换,让View状态的切换和Activity彻底分离开。用builder模式来自由的添加需要的状态View
YCNotification通知栏封装库通知栏封装库,强大的通知栏工具类,链式编程调用

12.4 勘误及提问

12.5 关于LICENSE