Android系列之组件化Calces
什么是组件化
就是将一个App分成多个模块,每个模块都是一个组件(Module),开发过程中我们可以让这些组件相互依赖,或者单独调试部分组件等,但是最终发布的时候就是将这些组件合并成统一的Apk。
为什么要组件化
随着产品的迭代,业务越来越复杂,随之带来的是项目结构复杂度极度增加,此时就会有如下几个问题:
1、业务变化太快,单一的工程业务模块耦合度太高,牵一发动全身
2、对工程作任何修改都需要编译整个工程
3、功能测试和系统测试每次都需要进行
4、团队协作开发存在很多冲突,不得不花费时间和精力进行沟通,影响效率
5、不能灵活的对业务模块进行配置和组装.
使用Calces第三方工具组件化项目
什么是Calces
Android构建工具包,这个工具的主旨是使用脚本自动处理机械化的重复劳动,让开发者专注更有价值的工作。 目前提供自动组件化控制与屏幕适配插件。
组件化构建Gradle插件 插件包的名字叫: component,其中提供了两个组件化辅助插件,分别叫calces.appconfig和calces.modules。 主要的功能是: 提供Gradle配置App依赖的组件、配置组件是否能单独运行、实现多个依赖不同模块的App同时构建等。
官方链接: https://github.com/Tangpj/calces-gradle-plugin
使用方式
1,在 项目 的build.gradle中引入
plugins {
id "calces.appconfig" version "3.3.0-alpha01"
}
2,配置
appConfig {
//调试开关,控制所有app能不能独立运行
debugEnable true
apps {
//注意事项:
//只设定需要加载的moudle即可,如果设置了启动activity也会和
//他的清单文件中mainactivity重复.
app {
modules ':news',':shop'
}
}
//所有组件
modules {
//注意事项:
//如果设定了applicationId 则要删除相关
//如果只有modules 则name :'news' 属性不能少
//module中的applicationId ,否则就算重复赋值了.
news {
name ':news'
applicationId "com.fenghongzhang.news"
mainActivity ".MainActivity"
isRunAlone true
}
shop {
name ':name'
applicationId "com.fenghongzhang.shop"
mainActivity ".MainActivity"
isRunAlone true
}
}
}
3, 在modules(子模块)引入模块自动化构建插件 (包括app)
apply plugin: 'calces.modules'
4, 注意事项:
当app也设定为calces.modules时.
debugEnable false 没有问题.
调试的模式debugEnable true.
会因为没有启动app报错.
那么需要把app的组件改成.
apply plugin: 'com.android.application'
5,提醒:
如果配置没有问题,代码还报错.清空一下项目.
本文地址:https://blog.csdn.net/shuai_ge_feng/article/details/108565739
推荐阅读
-
Android应用程序四大组件之使用AIDL如何实现跨进程调用Service
-
xmlplus组件设计系列之网格(DataGrid)(10)
-
xmlplus组件设计系列之图标(ICON)(1)
-
Android笔记之:App模块化及工程扩展的应用
-
android组件化架构(速览android组件和使用技巧)
-
Android控件系列之Shape使用方法
-
Android系列之Intent传递对象的几种实例方法
-
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
-
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
-
Android组件化探索与实践