三、组件化的拆分步调和动态需求
为了便利,我们同一把 library 称之为依附库,而把 Component 称之为组件,我们所讲的组件化也主如果针对 Component 这种类型。而负责拼装这些组件以形成一个完成 app 的 module,一般我们称之为主项目、主 module 或者 Host,便利起见我们也同一称为主项目。
3.1 拆分原则
组件化的拆分是个宏大年夜的工程,特别是大年夜几十万行代码的大年夜工程拆搀扶去,所要推敲的工作千头万绪。为此我认为可以分成三步:
大年夜产品需求到开辟阶段再到运营阶段都有清楚界线的功能开端拆分,比如读书模块、直播模块等,这些开端分批先拆搀扶去
在拆分中,造成组件依附主项目标依附的模块持续拆出去,比如账户体系等
最终主项目就是一个 Host,包含很小的功能模块(比如启动图)以及组件之间的拼接逻辑
3.2 组件化的动态需求
最开端我们讲到,幻想的代码组织情势是插件化的方法,届时就具备了完全的运行时动态化。在向插件化迁徙的过程中,我们可以经由过程下面的集中方法来实现编译速度的晋升和动态更新。
在快速编译上,采取组件级其余增量编译。在抽离组件之前可以应用代码级其余增量编译对象如 freeline(但 databinding 支撑较差)、fastdex 等
动态更新方面,临时不支撑新增组件等大年夜的功能改进。可以临时采取办法级其余热修复或者功能级其余 Tinker 等对象,Tinker 的接入成本较高。
2.1 代码解耦
四、总结
本文是笔者在设计“获得 app”的组件化中总搅一皓设法主意,在设计之初参考了今朝已有的组件化和插件化筹划,站在巨人的肩膀上又加了一点本身的设法主意,主如果组件化生命周期以及完全的代码隔离方面。特别是最后的代码隔离,不仅要针砭范上的束缚(针对接口编程),更要有机制包管开辟者造末路错,我认为只有做到这一点才能认为是一个彻底的组件化筹划。
【编辑推荐】
- 2017年实用于Android & iOS的最佳开源竽暌功用法度榜样
- AgentWeb是基于Android WebView一个功能完美小型浏览器库
- 一篇文┞仿彻底搞懂Android事宜分发机制
- Android进修路上会碰到的各类瓶颈总结
- Android高等混淆和代码保护技巧
推荐阅读
在数据中间范畴,这意味着企业须要对硬件成本进行严格审核,而这促使很多收集企业袈溱采购办事器硬件时选择不太传统的办法;即他们设计大年夜部分硬件,再交由定制制造商临盆办事器。这则意>>>详细阅读
本文标题:Android彻底组件化方案实践
地址:http://www.17bianji.com/lsqh/36376.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示