浅谈Android组件化
admin
2023-02-10 02:00:26
0次

一个关于组件化的念头

项目经历了岁月的洗礼,经过公司业务上的变化,开发人员的来来往往,代码越来越臃肿和复杂难懂,这时候就必须进行拆分,否则就是一场灾难。就像我们公司的老项目一样,耦合度极高,已经停掉的业务,现在还在项目里面留存着,完全不敢删。新功能上线,因为要回归测试,测试时间有时候比开发时间还长。

组件化这个词,我们应该在各个地方,通过各种渠道,看到过无数次,而且一般会给配上下面这张图,小机器人,绿油油的色彩,非常的鲜艳夺目有调性。


浅谈Android组件化

组件化和插件化同属于模块化编程,只是两种不同的展现模式。两者的区别,只有一个:插件化支持动态增加和修改线上的模块,组件化只能对现有模块进行增加和删除。

项目线上功能动态很频繁的电商类APP,适合使用插件化。变动需求不强烈的工具类APP,适合采用组件化。我们公司对灵活性要求不高,因此采用组件化方案。

组件化的几个要点

组件化的要点不算少,下面准备就我认为主要的部分,用提问和解答的方式,梳理大概的思路。

01.如何将一个庞大的工程拆分成有机的整体?

我认为应该分三个部分,主项目,基础公共库和业务组件。先抽出基础公共库,供其他组件调用,剩余部分按照业务逻辑去分组件,利于后期业务的迭代开发,主项目负责装载组件。

02.组件可以单独运行吗?如何做到?

分离开的每个组件,都应支持独立运行,这样我们才能单独在某个模块开发和测试。可以通过 apply plugin: 'com.android.application' 和 apply plugin: 'com.android.library' 去实现两个身份的转换。

这里不要被图给误解到,组件化中的胳膊腿离开了身体,其实还是能独立存活的个体。

03.如何做到组件与组件之间的独立?

组件与组件之间相互独立,才是降低耦合,主要表现在资源隔离和代码隔离。代码隔离可通过gradle3.0 之后 runtimeOnly 依赖语法实现编译期隔离 。资源隔离,目前官方没有现成的隔离方案,暂时可以先使用 resourcePrefix 属性,人为维护。

04.组件之间互相独立,数据如何传递?

考虑路由方案,目前已经有很成熟的路由库 ARouter。

除以上问题,还有组件的集成调试,组件生命周期等问题,我认为前期可以先不考虑,留待后期优化。

组件化前 VS 组件化后

组件化改造的过程是非常痛苦的,但是完成后的开发体验真的超超超超幸福!因为业务模块逻辑分离,代码耦合度降低,所以会带来以下好处:

  • 编译时间短

  • 开发周期降低

  • 减少测试回归

  • 快速定位问题

  • 业务模块迁移很方便

下面是我司项目组件化过程中的解耦的业务模块:



<

浅谈Android组件化

Android 绿色小机器人坐成两排,十分乖巧可爱。

如何快速开始组件化

第一步,少年,你需要自行去搜索获取关于组件化的知识,在脑海中有它有个清楚的认识。

第二步,针对你的目标项目,梳理整体的业务逻辑和代码架构,做出可行的组件化方案。这一步非常重要,必须提前探好底,让更多的问题暴露在执行前。不然,想象下,你一个模块感觉都要挪过来80%了,发现业务逻辑上分离不开,或者技术上实现有障碍,这就很浪费时间和精力了,还影响心情。

第三步,方案递交给技术 leader ,同意之后,申请排期开发。

第四步,沐浴焚香,拜好代码大神,就开始吧。

友情提示,最好单独拉一个新分支,因为这非常可能持久战,不要因此影响了项目的正常迭代。

我的组建化步骤

  • 抽出基础工具类 BaseLib,网络封装库 NetWorkLib。

  • 抽出基础资源库 BasicRes,管理公共资源,例如 BaseActivity/BaseApplication 等基类们,对话框,res资源。

  • 分离业务逻辑,独立为 Module。

  • 选定 Arouter 作为路由方案,连接各组件 Module。


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...