1、SpiderQunar Android客户端架构的前世今生Spider是什么?老生常谈插件化去哪儿旅行客户端的架构迭代Qunar适配最低适配最低API版本版本远古时期ArmageddonSpiderAndroid 1.6 CupcakeAndroid 2.3 GingerbreadAndroid 4.0 Ice Cream远古时期的开发准则1.避免建立对象2.使用本地方法3.选择虚类而不是接口客户端size不超过3M4.用静态方法比虚方法好5.不用getter和setter6.将成员变量缓存到本地7.使用常量8.谨慎使用foreach9.避免使用枚举10.将内部类声明在包作用域内11.避免使用
2、浮点数业务的爆发&环境升级面临问题 前后端N+团队参与开发同一个App 方法数65535限制 编译构建过程复杂、缓慢、效率低下 统一的发布部署时间点,发布过程和时间失控Armagaddon的结构调整比Google更早更棒的Multidex解决掉的问题 前后端N+团队参与开发同一个App 方法数65535限制 编译构建过程复杂、缓慢、效率低下 统一的发布部署时间点,发布过程和时间失控Spider的特点 轻架构 平台=OS 组件化 ALL=atom 完全解耦 client/fe 独立开发、构建 云构建 一键打包 不改变标准开发形式 极小的迁移成本更细粒度的ClassLoader一切都是组件ATOM
3、组件更新也是组件!Atom的管理与通信Atom的解耦与依赖 atom可以独立运行 atom之间不能有代码引用 atom的业务依赖管理Atom级别复用Atom复用举例1 推送行为个性化 针对市场推送方案Atom复用举例2业务组件业务组件基础组件基础组件功能组件功能组件动态加载的优化 精准定位Class位置 控制单个atom的大小 业务直接解耦 根据依赖树atom级别做multidex 预加载&延迟加载 黑科技 避免dex优化Spider解决掉的问题 前后端N+团队参与开发同一个App 方法数65535限制 编译构建过程复杂、缓慢、效率低下 统一的发布部署时间点,发布过程和时间失控插件化 VS Hybrid VSReact-Native架构之争1.非对立关系2.多元化开发3.上下文打通4.资源共享实际场景技术沉淀与融合角色变化?单一团队多个团队离散化团队多个职能产品化与平台化自助使用 解放生产力完善生态环境 框架 自动化 设备云 Library 热部署开发 测试运营 监控 行为分析 ABTest 异常 性能优势 完全自助,解放生产力 为业务决策提供数据分析基础 迅速响应平台使用流程一体化集成平台部分平台展示-用户漏斗部分平台展示-网络监控部分平台展示-云测