android组件化实战常见的问题

1.先介绍一下,项目目录


2.config.gradle配置文件


01


02


03

然后在project的build.gradle中配置config.gradle


对应baselib的build.gradle文件中


对于app壳子gradle


同理,其他模块需要依赖那个baselibs模块

2.模块独立运行

(1)在gradle.properties中配置如下


(2)app壳子中 根据这个变量按需加载模块


(3)module(library)中


当module作为一个独立的app运行的时候,需要设置applicationId

如上图中

if (isModule.toBoolean()) {

applicationId"client.com.module_1"

}

(4)当module作为一个独立的app运行的时候,需要启动页面,所以需要创建一个带启动页的AndroidManifest.xml文件


1


此外发现,resourcePrefix"module1_"

这个是为了防止团队开发过程中,资源文件命名冲突,所以做了一个前缀,作为约束

3. ARouter配置

config.gradle配置如下


1

baselibs 和各个module的build.gradle文件的配置如下

annotationProcessorrootProject.ext.otherDeps["arouter-compiler"]

并且添加


arouter初始化


4.butterknife使用的坑(R2)

正确配置步骤如下:

config.gradle如下:


注意butterknife不能使用最新的版本,否则需要处理androidX支持库的兼容性问题(坑比较多)

在baselibs build.gradle中添加如下:

applyplugin:'com.jakewharton.butterknife'

然后在各个module的build.gradle中添加如下:

annotationProcessorrootProject.ext.otherDeps["Butterknife-compiler"]

注意,在library的module中使用R2



下面是我的一个组件化开发实战项目:https://github.com/FOREVER001/multiModule

你可能感兴趣的:(android组件化实战常见的问题)