组件化、模块化就是理清关系、解耦、组合的过程。
资源合并
先来回顾下,模块化架构的图。
组件化中,Network、Image等功能模块 与 BaseLib是一样的,都是Library Module,所以,都将会被编译成aar文件。
先学一个命令
./gradlew module_name:dependencies
这是gradle命令,可以查看module的依赖树。
你会发现preRelease、release、debug等各种Build variant。
给发范例
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//黄油刀
annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterknifeVersion"
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$rootProject.arouterCompilerVersion"
//Lombok
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
compile project(path: ':projectcore')
}
你会看到以release为例。
你会看到
releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release
+--- com.jakewharton:butterknife-compiler:8.4.0
| | +--- com.android.support:support-fragment:27.1.1
| | | +--- com.android.support:support-compat:27.1.1