从零开始实现组件化

2019-07-15  本文已影响0人  Elek

------------------------------------ 随手笔记如有错误欢迎指正 ------------------------------------

一.什么是组件化

二.创建项目

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.配置每个模块的的入口

我们在moudle的main目录下创建一个文件夹 里面存放manifest.xml 为调试时候使用

image.png

在当前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. 基本使用

跳转成功页

注意:跳转的路径必须 /xx/xx保证两个层级

上一篇 下一篇

猜你喜欢

热点阅读