file-type

Qunar Android客户端架构演进:从Armageddon到Spider

版权申诉

PDF文件

16.39MB | 更新于2024-07-06 | 129 浏览量 | 0 下载量 举报 收藏
download 限时特惠:#9.90
"该资源是去哪儿网平台事业部张子天关于Qunar Android客户端架构发展历程的分享,主要讨论了从早期的架构到Spider架构的演变,以及在此过程中遇到的问题和解决方案。" 去哪儿网Qunar的Android客户端架构经历了多次迭代,从早期的应对低API版本的“远古时期”到后来的Armageddon架构,再到最终的Spider架构。在“远古时期”,由于Android版本较低,开发者遵循了一系列优化准则,如避免建立对象、使用本地方法、选择虚类而非接口等,以保证应用的性能和大小控制在3M以内。 随着业务的快速发展和Android环境的升级,去哪儿旅行客户端遇到了一系列挑战,包括多个团队共同开发导致的协同问题、方法数达到65535的限制、复杂的编译构建过程以及统一的发布时间点导致的发布流程不可控。为解决这些问题,去哪儿网引入了Armagaddon架构,它通过Multidex技术解决了方法数限制,但仍然未能完全解决团队协作和构建效率问题。 随后,Spider架构应运而生,其核心特点包括: 1. 轻架构设计,将操作系统与应用分离。 2. 组件化全方面实施,每个组件(Atom)都是独立单元。 3. 完全解耦客户端和前端,允许独立开发和构建。 4. 实现云构建,一键完成打包过程。 5. 保持标准开发流程,迁移成本低。 Spider架构进一步细化了组件管理,使用了更细粒度的ClassLoader,并将所有功能视为组件——Atom。Atom具有以下特性: - Atom可以独立运行,彼此间没有代码引用。 - Atom之间的业务依赖通过管理机制进行处理。 - 支持Atom级别的复用,比如接口化的推送接入,实现推送行为的个性化。 - 动态加载优化,包括精准定位Class、控制单个Atom大小、业务直接解耦、按依赖树进行多 Dex 分割、预加载和延迟加载等策略,甚至使用黑科技来避免DEX优化。 通过Spider架构,去哪儿网成功解决了前后端多个团队共同开发一个App的问题,提高了开发效率,减少了构建和发布的时间,并实现了组件的灵活更新和独立维护,从而提升了整体的开发效率和产品质量。

相关推荐