文章目录
组件化
1.模块化
每个module都是一个library不能独立运行
2.组件化
每个module都是一个组件(application)可以独立运行->模块化测试;
3.模块化与组件化的区别
模块化不能独立运行组件化可以独立运行
4.Calces配置组件化
calces是Android构建工具包,这个工具的主旨是使用脚本自动处理机械化的重 复劳动,让开发者专注更有价值的工作。 目前提供自动组件化控制与屏幕适配 插件。
自动化构建module组合不同应用层序
5.Calces如何使用
官网地址:https://github.com/Tangpj/calces-gradle-plugin
项目build.gradle
/**
* 配置组件化
*/
plugins {
id "calces.appconfig" version "3.3.0-alpha01"
}
appConfig {
debugEnable true
apps {
app {
mainActivity "com.example.level3_second.MainActivity"
modules ':user'
}
}
modules {
command {
name ':command'
applicationId "com.example.command"
mainActivity ".Modules1Activity"
isRunAlone false
}
user {
name ':user'
applicationId "com.example.user"
mainActivity ".MainActivity"
isRunAlone true
}
}
}
子模块(user)配置
//apply plugin: 'com.android.library'
apply plugin: 'calces.modules'
管理依赖及版本号
1.创建config.gradle
ext {
android = [
compileSdkVersion:28,
buildToolsVersion:"29.0.2",
minSdkVersion:16,
targetSdkVersion:28,
versionCode:1,
versionName:"1.0",
applicationId:"com.example.level3_second"
]
version = [
]
libCode =[
]
}
2.引入配置文件
//项目的gradle文件中添加如下代码
/**
* 引入配置文件
*/
apply from:"config.gradle"
3.修改各模块内容并指定清单文件
//组件化
apply plugin: 'calces.modules'
def androidConfig = rootProject.ext.android
android {
compileSdkVersion androidConfig.compileSdkVersion
buildToolsVersion androidConfig.buildToolsVersion
defaultConfig {
minSdkVersion androidConfig.minSdkVersion
targetSdkVersion androidConfig.targetSdkVersion
versionCode androidConfig.versionCode
versionName androidConfig.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
/**
* 指定debug模式的清单文件
*/
sourceSets{
main{
if(isRunUserModule.toBoolean()){
manifest.srcFile 'src/main/AndroidManifest.xml'
}else {
manifest.srcFile'src/main/debug/AndroidManifest.xml'
}
}
}
}
4.配置变量
isRunUserModule=false
源码
组件化 https://github.com/amy-nn/calcesTest