看看阿里的动态组件化: https://github.com/alibaba/atlas/tree/master/atlas-docs
背景:
-
现在项目中都追求模块化开发、组件化开发。一个是避免代码重复开发(重复造轮子),另一个是方便维护和项目集成。
-
Android 项目有方法数的限制(常说的64K限制),如果项目太大或者引用了太多的三方库(依赖库的方法数量也会计算在64k中)。现在通常使用的方法是 使用 multiDex。
-
一个很大的项目, 比如美团、淘宝、支付宝等。里面会融合很多功能。比如美团APK里面可能需要集成 猫眼APK、酒店民宿apk、外卖apk、抢票apk等等。这些项目在开发的时候是分布进行的。作为一个用户,如果我下载美团apk,不希望直接把所有相关的内容apk都带下来。我可能只是想用外卖或者电影票的功能。
host |
基础支持 |
包含独立的中间件,以及一个Base的工程,里面可能包含应用的Application,应用icon等基础性内容 |
|
bundle |
业务层基本单位 | 运行期按需动态加载。bundle可以调用host的代码和资源,同时bundle之间允许存在依赖关系。 |
|
接下来看看Atlas能做什么:高复用、低耦合、可插拔
-
hos