什么是Android组件化,为什么要组件化?

千锋教育-做有情怀、有良心、有品质的职业教育机构

千锋学习站|随时随地免费学

扫一扫进入千锋手机站

400-811-9990全国咨询热线

组件化是指解耦复杂系统时,将多个功能模板拆分、重组的过程。在Android工程表现上就是把app按照其业务的不同,划分为不同的Module。组件化架构的目的就是让每个业务模块变得相对独立,各个组件在组件模式下可以独立开发调试,集成模式下又可以集成到“app壳工程”中,从而得到一个具有完整功能的APP。

二、为什么要Android组件化

1、提高工程编译速度

进行组件化拆分后,每个业务或者功能都是一个单独的工程,这个单独的工程可以独立编译运行,拆分后的工程通常都比较小,代码量也比较少,我再也不用像以前编译一下得等待好几分钟了。

2、利于多人团队协作开发

业务组件之间不能相互引用,每个组件都把对应的业务功能收敛在一个工程里,彼此互不打扰。在多人团队里,每个人只负责自己的业务模块,他对业务功能的增删改查,都只限定在自己的这个业务模块里,不会影响其他人的业务,他代码质量的好坏也只会影响到自己的业务模块;对测试来说,也十分方便,大部分情况下,我们只需要着重测试修改过的业务组件即可,而不用老是进行全部回归测试。

3、组件化是功能重用的基石

业务组件类似一个个积木一样,我们可以用积木搭建出不同的房子,同理我们也可以创建多个不同的APP。我们只需要维护好每个组件,需要用到该组件的功能时,一建引用集成就可以了。

4、提高组件复用性

可能有些人会觉得,提高复用性很简单,直接把需要复用的代码做成AndroidModule,打包AAR并上传代码仓库,那么这部分功能就能被方便地引入和使用。但是我们觉得仅仅这样是不够的,上传仓库的AAR库是否方便被复用,需要组件化的规则来约束,这样才能提高复用的便捷性。

5、降低组件间的耦合

我们需要通过组件化的规则把代码拆分成不同的模块,模块要做到高内聚、低耦合。模块间也不能直接调用,这需要组件化通信框架的支持。降低了组件间的耦合性可以带来两点直接的好处:

三、Android组件化基础

1、组件之间的跳转

组件化中两个功能模块时不直接依赖的,其依赖规则是通过Basemodule间接依赖,当组件之间的Activity进行界面跳转时,由于没有相互依赖的关系,往往会无法引用另一个module中的Activity。

2、隐式跳转

隐式跳转是通过Android原生Intent匹配机制来实现相应跳转,就是使用Action来跳转到对应的Activity,这样使用隐式跳转的方式就可以跨module实现Activity之间的跳转了,注意一点,如果移出Activity所在的module而不移出相应的跳转,如果继续跳转会出现异常,使用隐式Intent跳转需要验证是否会接收该Intent,需要对该Intent对象调用resolveActivity()方法来判断至少有一个应用能够处理该Intent,通过隐式跳转的方式还可以设置exported为false来确保只有自己的App才能够启动对应的组件。

3、ARouter跳转

4、动态创建

延伸阅读1:组件化结构

上一篇

下一篇

一、为什么分布式数据库这么喜欢用kvstore虽然不论是单机数据库(MySQL、PostgreSQL等等),还是题主说到的分布式数据库(CockroachDB、TiDB)...详情>>

一、想开发一款直播交友APP需要的功能1、直播功能:用户可以选择视频一对一直播和语音一对一直播两种方式,观众需要支付直播费用,直播费用由...详情>>

一、物联网云平台的数据库1、关系型数据库(RDBMS)例如MySQL、PostgreSQL、Oracle等。关系型数据库以表格的形式存储数据,并使用SQL(Structur...详情>>

一、ACTION_CANCEL在这些时候会触发1、父view拦截事件首先要了解ViewGroup什么情况下会拦截事件,请看下面一段代码:@Overridepublicbooleand...详情>>

1、分布式表单iPhone目前主要的机型屏幕尺寸在4.7-5.8英寸,android的尺寸更多一些,但是总体上来说,移动端的载体手机屏幕不大,能承载的信息...详情>>

为什么说OceanBase4.0开启了国产数据库新的里程碑

为什么列存储数据库读取速度会比传统的行数据库快

Chromium是什么

为什么分布式数据库这么喜欢用kvstore

为什么参数化SQL查询可以防止SQL注入

endnote显示却无法初始化数据库怎么办

Endnote不能连接到在线数据库,怎么解决

网站间隙性502怎么解决

图数据库是什么

为什么MySQL中很少见到使用视图功能

2023-12-06

2023-12-09

2023-08-07

千锋教育运营主体:北京千锋互联科技有限公司,属具备计算机技术培训资质的教育培训机构。

THE END
1.组件什么是组件? 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以is特性扩展。 使用组件 http://v1-cn.vuejs.org/guide/components.html
2.什么是组件组件承载Web应用开发编辑器的核心功能,提供构成Web应用的基本要素。拖拽所需组件到画布上的应用页面中,再配置组件展示样式、数据源和交互动作,便可在应用中使用该组件的功能。 组件列表 目前,Web可视化编辑器的组件列表中包含以下组件,支持开发者通过组合各类组件进行快速开发。 类型描述 基础组件 包含基础、控制、图表和https://help.aliyun.com/document_detail/125566.html
3.什么是组件?功能概述Lenovo台灣市場什么是组件? 在计算机和技术领域,"组件 "是指对系统功能至关重要的基本构件。硬件组件包括中央处理器(cpu)、随机存取存储器(ram)、存储器等。软件组件包括操作系统和应用程序。组装计算机时,需要使用各种组件来确保计算机高效运行。 每台电脑都需要相同的组件吗? 不是每台电脑都需要相同的组件。这取决于电脑的用途https://www.lenovo.com/tw/zh/glossary/what-is-component/
4.什么是组件前端学习教程前端前端开发什么是组件 组件是一个抽象的概念,是对数据和方法的简单封装。用面向对象思想来说,将一些符合某种规范的类组合在一起就构成了组件,通过组件可以为用户提供某些特定的功能。简而言之,组件就是对象。 一个组件代表一个系统中实现的物理部分,是系统中一种物理的、可代替的部件,它封装了一系列可用的接口。组件类似于https://book.itheima.net/course/1258676978588860418/1277481460244160514/1277485785326559233
5.什么是组件,以及前端各种框架组件的使用方法前端组件什么是组件,请细看 ?组件就像是搭积木一样的东西,可以用来构建软件或者系统。每个组件都有自己独立的功能和任务,就像一个小小的部件。你可以把这些小部件组合在一起,形成一个完整的应用程序或者系统。 想象一下,你在玩积木,每个积木块都有不同的形状和功能,比如有的是方块、有的是圆柱体。你可以把这些积木块https://blog.csdn.net/dyk11111/article/details/131486892
6.组件是什么意思组件的解释是什么组件(Component)是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。VCL和CLX组件是C++ Builder系统的核心。https://m.hao86.com/ciyu_view_9e2fd143ac9e2fd1/
7.什么是组件,名词解释定义是?名词解释 组件 答案: 由若干个零件和合件组成的组合件 你可能感兴趣的试题 名词解释 合件 答案: 亦称结合件,一般指有两个或两个以上零件永久性连接(焊接和铆接等)组成不可拆卸的整体 名词解释 主要尺寸 答案: 它们是决定该零件在产品装配单元中位置的尺寸,是参与某一装配尺寸链和影响装配精度的尺寸,因此都要标https://m.ppkao.com/mip/tiku/shiti/2407435.html
8.什么是组件化·组件化理解文档·看云什么是组件化 组件化这些概念很早之前就在后端盛行了,只不过随着前端界面和功能的渐渐强大,因此这些概念也就顺其自然的引进到了前端中来,特别是MV*的框架出世。 前端的组件化在界面层通常体现为“标签化”,就是把一大块的业务界面拆分成若干个小单元在进行组装,而这些被拆成小单元如何组装的呢,就是通过在html自https://www.kancloud.cn/zep-tsang/components/341917
9.如何使用视频组件?一、什么是视频组件? 视频组件是一个展示视频的模块,单击此视频可以直接在网站上播放,支持弹出窗口的形式播放,也支持嵌入在页面中播放。视频组件一般应用在非产品详情页面或非文章详情页面,比如在首页、关于我们等页面上添加视频的情况,这个视频不是直接上传到领动网站上,因为我们本身并不具备视频上传和传播的资质,需要https://www.leadong.com/id25373.html
10.什么是“组件”,组件是否就是外加到操作系统中的系统程序?组件一般都是系统自带都有的, 如:WINXP或WIN2000它本身,就带有非常强大的组件功能。添加组件可以使https://iask.sina.com.cn/b/1H0CNghq5oUt.html
11.安全组件是什么,安全组件(安全组件是什么,安全组件是什么)安全组件是用于保护系统和数据安全的软硬件模块,如防火墙、加密算法等。 安全组件是什么? 安全组件是指在软件开发过程中,用于保护系统和数据安全的一组功能模块,它们通常包括身份验证、授权、加密、日志记录等功能,以确保软件在运行过程中的安全性,安全组件可以帮助开发者在设计和实现软件时遵循最佳实践,从而降低潜在的安https://www.kdun.com/ask/494291.html
12.什么是单组件?什么是单引气!在运行中会有些时候会遇到单空调组件运行,也会遇到单引气运行,此文就来看看两者有什么不同? 一、单引气 1、引气系统 引气系统的空气可由发动机、APU 或地面气源车/气源供气。发动机起动前,APU 或地面车向引气管道供气。发动机起动后一般由发动机向引气系统供气。引气系统可以为空调、增压、机翼和发动机热防冰、发动https://www.360doc.cn/article/73017239_970379143.html
13.前端领域的组件化究竟是在谈什么组件化渗透在开发的方方面面,本文主要从“为什么”、“是什么”、“怎样做”三方面来系统讲述前端组件化的相关知识。通过阅读本文,读者可以对组件化形成一个更加深入的认识和理解。在实现前端组件化的过程,大家可以更加关注组件化的目的,需求及其特点,了解前提才能结合项目来思考如何更好的拆分和实现组件化。 https://www.51cto.com/article/711159.html
14.什么是半片组件?半片组件又是什么?想必大家心中的疑惑是非常的多,脑袋里面肯定是不断循环这两个问题,不断问,反复问,那么迪晟小编就带你们从技术,工艺,特点,这三个方面来跟大家说一下。 技术 使用激光切割法沿着垂直于电池主栅线的方向将标准规格电池片切成相同的两个半片电池片后进行焊接串联。由于太阳能晶硅电池电压与面积无https://www.desunpv.com/news/1215.html
15.vue组件是什么Vue.js在vue中,组件是可复用的vue实例,它拥有独一无二的组件名称,它可以扩展html元素,以组件名称的方式作为自定义的html标签。组件可大大提高了代码的复用率。 本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。 组件是什么? 组件是Vue中的一个重要概念,是一个可以重复使用的Vue实例,它拥有独一无二的组件名称https://www.php.cn/vuejs/483393.html
16.什么是PCB组件及常用电气组件介绍什么是PCB线路板组件?PCB组件就是指焊接在PCB线路板上的电子元器件,例如集成电路IC、晶振、二极管、三极管、电阻、电容、变压器、数码管、连接器、电感等,它们是实现PCBA电路板硬件连接和程序功能实现的基础。PCB组件中使用的最决定性的元件是电阻器,电容器,二极管和晶体管。让我们了解一下电阻器,电容器,二极管和晶体https://www.lzdlpcb.com/cjwt/270.html