------------------------------------ 随手笔记如有错误欢迎指正 ------------------------------------
一.什么是组件化
- 说白了就是把各个功能模块拆分出来开发再合一起组成一个apk 每个组件单独可运行
二.创建项目
1.创建空项以及各个moudle
2.在主工程的gradle.properties文件下添加是否作为library的区分
# isModule是否作为组件 false做为库 true作为组件独立运行
isModule = flase
3.在每个moudle 的bulid.gradle添加判断属性
if(isModule.toBoolean()){
applyplugin:'com.android.application'
}else {
applyplugin:'com.android.library'
}
4. 作为类库的moduleLib的build.gradle中 添加一些共用的引用
这里moduleLib作为每个模块都可以访问的库,用api依赖,则其他依赖这个moduleLib的模块则不需要再次依赖相同的东西。
api 'com.alibaba:arouter-compiler:1.1.4' // 阿里的路由配置
// butterknife
api 'com.jakewharton:butterknife:8.8.1'
api 'com.jakewharton:butterknife-compiler:8.8.1'
}
5. 配置各个moudle 里的.gradle
dependencies {
...
implementation project(':modulelib')//依赖类库
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4' // 阿里的路由配置
}
6.配置每个模块的的入口
-
首先要把壳工程的manifest.xml 的activity标签删除
- 除了要设置的主程序入口各个moudle都要设置成酱婶儿的
- 如果删除了单独模块要怎么找到主入口? 要怎么运行调试?
我们在moudle的main目录下创建一个文件夹 里面存放manifest.xml 为调试时候使用
- 加好之后要怎么告诉我们的开发工具怎么找打它呢 (当然是配置路径啦)
在当前moudle的.gradle 里配置
android{
...
sourceSets{
main{
if(isModule.toBoolean()){
manifest.srcFile'/src/main/moudle/AndroidManifest.xml' //这是我们创建的路径
}else{
manifest.srcFile'/src/main/AndroidManifest.xml' // 这是作为组件library用时的路径
java{
exclude'debug/**'
}
}
}
}
}
三.每个模块之间的activity如何通讯
1. 配置
细心的人会看到上面依赖了一个阿里路由,我们可以依赖阿里的路由来进行每个模块间的通讯,如下:
阿里路由ARouter链接
// 阿里路由
api'com.alibaba:arouter-api:1.3.1'
annotationProcessor'com.alibaba:arouter-compiler:1.1.4'
在modulelib引用
api'com.alibaba:arouter-api:1.3.1'
在各个module下面annotationProcessor'com.alibaba:arouter-compiler:1.1.4'
然后在各个模块的build.gradle下添加
defaultConfig {
...
javaCompileOptions { ///阿里的路由
annotationProcessorOptions {
arguments = [moduleName :project.getName() ]
}
}
}
2. 基本使用
-
首先在壳app的.gradle中配置如下
-
在壳app的Application中初始化ARouter
-
配置完毕就可以愉快的跳转了
注意:跳转的路径必须 /xx/xx保证两个层级