微 V
1.项目简介:
微 V 是企业内部的一款 OA 办公软件,主要提供企业内部消息沟通、签到、公众号信息发布、轻应用管理、
会议日程管理、音视频会议、在线文档、邮件、审批、数据加密保护等功能。
2.项目责任:
1).参与项目需求分析评估,技术选型,制定项目开发计划
2).项目重构、解决闪退、卡顿等性能问题
3).负责 IM 模块、轻应用混合开发,以及数据加密保护功能开发
4).负责团队日常管理,轻应用技术对接,Code Review,技术分享等
3.主要技术点:
1).项目架构:
(1)前期使用模块化架构模式,封装基础组件、核心库(网络、数据库)、common 库(路由等)、业务
通用组件,采用分层的设计思想防止横向依赖,实现各业务模块深度解藕。
(2)项目重构采用组件化架构模式,综合考虑项目模块众多,改动平凡,且构建速度变慢等因数,采用组件
化模式,提升开发效率
2).Webview 模块封装:
(1)因项目存在大量的 h5 与 native 交互问题,基于 SPI 原理,使用 AutoService 封装 jsbridge
(2)为加快 h5 加载速度,开发了一套 h5 应用管理平台,h5 应用打包成 zip 下载到本地提升加载速度
3).ARouter 路由框架:
使用 ARouter 路由实现跨模块跳转,使用 Hook 技术、反射加载更新 dex,实现在线更新
4) .View 自定义封装:
为了提高 view 复用及减少布局层级,提升渲染速度,自定义 View 及采用 ConstraintLayout、ViewStub、
merge 等实现消息页面、表情页面等界面开发,加快渲染速度
4.项目优化:
1).启动优化:
由于 App 业务模块多,导致 app 冷启动慢,结合 Profiler、systrace 工具分析启动耗时,优化启动
时初始化顺序,采用首选初始化、延迟初始化、子线程初始化模式,提升了 APP 启动速度至 3 秒以
内
2).内存优化:
结合 LeakCanary 工具监测内存泄漏情况,在 Activity/Fragment 退出时是否发生内存泄漏,溯源
问题;
使用 BlockCanary 监测主线程卡顿问题,将主线程耗时操作提取到异步线程中,异步更新到主线
程
3).热修复 crash:
app 上线后前期经常遇到 crash、ANR 情况,通过捕获异常,上传日志,分析问题后,基于热修复原
理,通过类加载、反射等技术,优先加载修复 dex 文件,实现在线问题免更新修复
4).ANR 问题收集处理:
因项目初期有耗时 IO、启动时过多初始化操作、消息复杂逻辑计算等操作,导致 ANR,通过
FileObserver 监听 data/anr 下的 trace 文件,并对日志文件回捞分析 ANR 产生原因,解决卡顿
问题