淘系技术部结合各自优点探寻新的组件化方式
署名2021-03-01

App Bundle的缺点

第一,App Bundle虽然是官方推荐的新组件化方式,但是通过官方的例子淘系技术部不难发现,所有的业务模块都是在同一个项目下开发的,对于小型APP来说可以这样做,但是对于淘系技术部手机淘宝这样集几十甚至上百个业务于一身的航母级APP来说就不现实了,这等同于失去了并行开发的优势,又回到了过去。

淘系logo.png

第二,App Bundle方案只能通过Google Play进行发布,因此目前还不能满足国内的应用。

第三,所有的资源都要基于最新的编译工具链来进行编译,这会导致在运行期出现各种资源问题,例如,不能用淘系技术部自己的包名去引用基础apk中的资源,对于淘系技术部手机淘宝这种大型APP,资源量在成百上千的情况下,很难完全统一编译方式,历史包袱迫使淘系技术部要不断的向前做兼容。

通过深入分析App Bundle的编译流程,淘系技术部理出了其核心编译链路,(如0)。

1.png

App Bundle核心编译链路

App Bundle的优点

通过对核心链路的编译链进行深入研究,淘系技术部研发出了一套适合自己的App Bundle构建体系,其主要有以下几个优点。

第一,可以基于外部依赖的形式来构建App Bundle,这对于国内IDE集成环境来说是非常有效的,随着APP的资源日益增多,淘系技术部更倾向于将资源通过仓库或者外部依赖的形式进行管理,而不是将不同的业务模块放在同一工程下进行开发,否则会导致相互阻塞,发版延期的问题,从而极大地影响发版效率。

第二,可以同时构建App Bundle包以及国内应用市场的APK包,一次构建,各个渠道都能使用,从而解决了不同构建体系下编译代码不一致的问题。

淘系技术部未来的目标是构建出一套组件化方案,可以同时满足海内外需求,如0

2.png

淘系技术部的目标