标题:“58同城Android客户端Walle框架演进与实践之路” 说明了58同城在Android客户端开发过程中,所采用的Walle框架的演变以及在实际业务中的应用实践。赵路平作为作者,他在GMTC全球移动技术大会上的演讲,深入剖析了58同城客户端的架构演进历程和组件化实践。
描述中提到赵路平在大会上通过PPT形式分享了58同城Android客户端如何逐步演进至使用Walle框架的历程,同时强调了在实践中所积累的经验与方法。本次分享是结合了技术与实际应用,旨在提供给与会者关于在大型互联网公司中进行Android客户端开发的参考。
标签“Android Walle”直接指向了演讲的核心,即Walle框架在Android开发中的应用。Walle(WebView Applet Library Engine)是一个支持动态化、插件化开发的框架,旨在解决大型应用中模块化与动态升级的问题。
从提供的部分内容来看,58同城的Android客户端开发经历了一个从Native到Hybrid再到动态化、插件化的演进过程。在2012年至2016年间,快速占领市场的需求促使他们寻求高速开发和迭代的方法。为此,他们将业务代码进行模块化拆分,并建立基础组件,快速搭建起主框架。到了2013年到2015年,他们开始实践纯Native的模式,模块化和基础组件的搭建为快速迭代提供了灵活性和维护性,同时保证了开发效率。
2015年以后,Walle框架成型并快速发展,采用Hybrid模式,即“大平台并行开发插件框架”。这种模式下,主程序与各业务模块可以并行开发,例如房产、招聘等模块业务代码,以及网络、图片、地图等SDK和公共代码,能够在同一个主程序下各自独立运作。
为了进一步提升用户体验,他们采用了部分动态化技术。Walle框架支持动态部署,通过动态框架和动态配置模板管理,如hybridCache,来实现业务的快速迭代。58同城也应用了插件机制,如osActivityProxy和Context隔离,以提供并行开发能力和动态升级能力。这一过程中,58同城面临了包括进程管理、代码共用、插件化后的单例问题、交互复杂性增加以及APK包体积增大等诸多挑战。
在保障平台与规划部分,提到了并行开发能力、降低依赖层次和提升编译速度的Walle框架结构,该框架在开发周期、运行期以及运维期都提供了效率提升。通过动态升级,Walle框架实现了按需加载,从而支持更大规模的业务扩展。
从以上内容可以提炼出以下知识点:
1. Android客户端的架构演进:从最初的纯Native开发模式,逐步演变为模块化、基础组件化的快速搭建模式,再到Hybrid模式的并行开发。
2. Walle框架的构建与演进:Walle框架从初步成型到快速迭代,支持Hybrid模式、动态化和插件化开发。
3. 动态化与插件化开发实践:包括缓存管理、动态部署、插件机制的运用,以及在实际操作中遇到的进程管理、代码共用等挑战。
4. 实践中的优化策略:为了应对如进程数膨胀、单例问题、插件交互复杂性增加等挑战,所采取的一系列技术方案和策略。
5. 框架保障与实践规划:Walle框架如何在不同的开发、运行、运维阶段提升效率,支持按需加载和动态升级。
以上知识点的提炼,贯穿了58同城在Android客户端开发中不断尝试与优化的过程,不仅涉及技术层面的深入分析,还包括了实践中的问题解决,展现了复杂应用开发中架构演进和问题应对的全景图。