涉及的基础知识
组件化项目的意义
1、面试技巧
很多大厂都用上了组件化,企业开发模式,面试时有组件化的经历,能打动面试官。
2、开发需求
不相互依赖,可以相互交互,任意组合,高度解耦。
3、团队效率
分模块开发、打包、测试,统一版本管理。

组件化:自由拆卸、自由组装、重复利用。
此时,app不再是老大,子模块都是小弟,组件化后所有的module都平级。
组件化gradle
app包体的build.gradle需要修改下:
这样就可以自动的在组件化模式下不依赖其他组件,集成化模式下依赖其他组件。
//公共基础库
implementation project(":common")
if (isRelease){
implementation project(":order")
implementation project(":personal")
}
子模块的build.gradle需要修改:
子模块需要在application和library之间切换。
if (!isRelease){
apply plugin: 'com.android.application'
}else{
apply plugin: 'com.android.library'
}
defaultConfig {
if (!isRelease){
applicationId appId.personal
}
}
组件化开发命名规范
子模块各个部分的命名最好都加上组件名称前缀,例如:
MainActivity,order模块里叫做Order_MainActivity。
src和res资源也加上前缀。
代码动态隔离
子模块里有的代码不想被打包到最后的集成化下的程序里,则需要进行代码的动态隔离。
//配置资源路径,方便测试环境,打包时不集成到正式环境
sourceSets{
main{
if (!isRelease){
//子模块下模式
manifest.srcFile('src/main/debug/AndroidManifest.xml')
}else{
//集成模式
manifest.srcFile('src/main/AndroidManifest.xml')
java{
//集成模式下,debug目录下的文件不需要合并到主程序里
exclude '**/debug/**'
}
}
}
}
如此设置后,在集成化打包后,debug目录里的文件在apk里就找不到了。
网友评论