文章参考
1.新建不包含activity的项目app
2.根据业务组件新建依赖包,空壳app组件以及公共组件依赖包

3.项目下的gradle.properties文件下配置开关
# 每次更改“isModule”的值后,需要点击 "Sync Project" 按钮
# isModule是“ false集成开发模式”和“true组件开发模式”的切换开关
#isModule=true
isModule=false
4.gradle中配置动态切换集成开发和组件开发的模式
//业务组件
if (isModule.toBoolean()) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}
// app 永远是
apply plugin: 'com.android.application'
// 公共组件永远是
apply plugin: 'com.android.library'
5.gradle中配置 集成模式和组件模式访问的mainfest,组件开发时候的“登陆页面,引导页”等
sourceSets {
main {
if (isModule.toBoolean()) {
manifest.srcFile 'src/main/module/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/AndroidManifest.xml'
// //集成开发模式下排除debug文件夹中的所有Java文件,包含的登陆页,引导页等
// java {
// exclude 'debug/**'
// }
}
}
}
6.添加相互依赖
如app依赖
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(':common')
implementation deps.multidex
if (!isModule.toBoolean()) {
implementation project(':module_mian')
implementation project(':module_demo1')
implementation project(':module_demo2')
implementation project(':module_demo3')
}
}
业务组件依赖公共组件
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(':common')
annotationProcessor deps.aroutercompiler
}
7.混淆,只在app中混淆,方便管理其它业务组件的混淆
8.自定义config.gradle ,方便管理其它第三方以来。
def deps = [:]
deps.compileSdkVersion = 26
deps.minSdkVersion = 15
deps.targetSdkVersion = 26
deps.appcompat ='com.android.support:appcompat-v7:26.1.0'
deps.testImplementation = 'junit:junit:4.12'
deps.androidTestImplementationrunner ='com.android.support.test:runner:1.0.2'
deps.androidTestImplementationespresso = 'com.android.support.test.espresso:espresso-core:3.0.2'
deps.arouterapi ='com.alibaba:arouter-api:1.4.0'
deps.aroutercompiler='com.alibaba:arouter-compiler:1.2.1'
deps.multidex = 'com.android.support:multidex:1.0.2'
ext.deps = deps
// 在gradle 中通过api的形式添加需要引入的以来,具体引用形式以android srudio版本为准
9.配置路由,如破64k的限制,jks签名配置
路由配置参考
突破64k限制,jks签名配置参考
10.未完,待续
11 组件化(二)消息推送
网友评论