淘宝电商技术的发展见证了互联网的兴盛,同时也有几点隐患
署名2021-02-25

淘宝电商技术的更新迭代见证了整个移动互联网的兴起和繁荣。伴随业务的发展和新生,AndroidiOS双端涌入了日益增多的代码,在受限的环境内,APP的体积也随之不断膨胀。加上研发APP的成本和获取流量的难度,各业务线更愿意在手机淘宝上进行研发以满足自身需求。基于当时的航母战略背景,迫切需要一种技术对客户端纷乱的现状进行统一管理、化整为零,实现各自的模块化开发和模块按需更新的能力,以匹配繁杂的业务诉求。

2012年年底的淘宝电商技术,线上质量不高,为达到类似服务端那样能够及时修复发布的效果,客户端开始研发如何快速触达用户的技术能力,这也就是后面广为人知的动态化。随后经过不断地打磨和演变,在2013淘宝电商技术形成了手机淘宝插件化框架Atlas淘宝电商技术基于插件化的能力,淘宝电商技术在一个普通的Android应用可以低成本地转化为符合Atlas规范的插件,使APK既可以以插件的方式运行也可以独立安装运行。一个大的Android客户端项目可以分割成数个插件,做到代码隔离,从而降低开发、维护和部署的成本,如所示。

淘1.png

基于Native的插件化构想

与当时业界的插件化方案设计思路类似,Atlas模拟Android的运行构想,让每个插件以独立进程的形式运行在各自的沙箱环境中,并提供低成本接入,使得其他业务应用能够迅速接入淘宝电商技术环境,做到随时发版和更新。

插件化的方案有其特有的优势,独立的进程保证了业务的绝对隔离,同时也有利于隔离风险。淘宝电商技术让聚划算、天猫、彩票一个个独立的应用开始出现在手机淘宝上。但是随着淘宝电商技术All In的深入,加上业务包的不断膨胀,一些隐患开始逐渐浮现出来,具体体现在以下几个方面。

性能

淘宝电商技术新进程的开辟极大地影响了每个业务的进入速度,同时由淘宝电商技术插件并不是用完即走的场景,比如说,首页>聚划算>详情>店铺>下单,各个环节之间存在着一定的关联,各个插件的进程无法退出。而多进程的机制又极大地占用了内存,现有淘宝电商技术引起了许多用户抱怨手机淘宝占用太多内存导致卡顿

复用

淘宝电商技术插件的独立性限制了许多中间件的复用,AIDLAndroid Interface Definition LanguageAndroid接口定义语言)的方式并不适合中间件能力的输出,独立的APKAndroid Application PackageAndroid应用程序包)在直接进入的同时也携带了大量重复的二方库,这极大地增加了应用的体积。

稳定

淘宝电商技术插件化需要一个模拟的Android运行环境,在Android的多个版本以及国产ROMRead-Only Memory,只读存储器)的兼容中需要做大量的工作,同时,在多插件运行过程中,低端设备很容易遇到进程被回收或者三方应用强杀的情况,如果没有良好的恢复机制,则会极大地降低用户的体验。