为什么要组件化?
简单一句话:解耦,方便测试,跑起来快,分工合作。
studio版本3.5.1,gradle 5.4.1
开始搭建
1.新建项目
image.png
2.先建Android Library,目的是为了和Phone&Table Module做对比。现在大部分项目都是模块化,将模块化转成组件化是很简单的。
image.png
3.再新建Phone&Table Module,注意app与order是可运行Module
image.png
4.Library与Module的区别,也就是模块化与组件化的区别。
image.png
image.png
有2点不一样,其它都一样,也就是说Library转成Module,将apply plugin: 'com.android.library' 改成 apply plugin: 'com.android.application',在加上applicationId "win.tang.library"。模块化转组件化完成。
真的有这么简单?? say yes。
5.gradle配置,在项目根目录下新建config.gradle。
image.png
各种抽取常规操作,加了isRelease开关,开发阶段设为false,上线打包,设为true.
6.将config.gradle依赖项目,参与编译。
image.png
7.修改LIbrary,将其改成Module,加了如下配置。
image.png
同步一下
image.png
library可运行。
组件化的简单框架已经完成。
以下操作看业务需求与个人爱好
image.png增加debug文件夹,主要是用来写和主工程无关的代码,比如测试数据啥的,打包apk不会将debug文件夹下文件打包进去。
image.png
源码参考GitHub:https://github.com/TWBfly/componentization
网友评论