Android 组件化实战一: Gradle基础语法
Android 组件化实战二: 项目部署
Android组件化实战三: 模块之间的交互
Android组件化实战四: APT的介绍与使用
Android组件化实战五: APT的高级用法JavaPoet
Android组件化实战六:路由架构设计
前言
组件化项目的意义主要体现在这几个方面,首先就是面试的时候,如果简历上写了三五年的工作经历,但是被问到组件化的相关原理答不上来,确实说不过去。在开发需求层面,即不相互依赖、又可以相互交互、任意组合、高度解耦;在团队开发层面,可以分模块打包、测试,统一版本管理,大大提高效率。
- 编译速度:我们可以按需测试单一模块极大提升了开发速度
- 超级解耦:极度降低了模块之间的耦合,便于后期维护与更新
- 功能重用:某一模块的功能在另外的组件化项目中使用只需要单独依赖这一模块即可
- 便于团队开发:组件化架构师团队开发必然会选择的一种开发方式,它能有效的使团队更好的协作
Phone Module和Android Library区别、切换
新建common公共库、order订单库、personal个人信息库
这里为了便于演示,新建Phone Module 的order和Android Library的personal,在组件化部署中如何进行切换
有了上一篇文章的分析,我们知道可以将各个子模块build.gradle文件中的公共属性抽取出来到单独的gradle文件config.gradle文件,在项目根目录下的build.gradle头部加入自定义config.gradle,apply from: “config.gradle”,相当于layout布局中加入include语法
// 添加多个自定义属性,可以通过ext代码块
ext{
/**
* 定义一个项目全局变量isRelease,用于动态切换:组件化模式 / 集成化模式
* false: 组件化模式(子模块可以独立运行),
* true :集成化模式(打包整个项目apk,子模块不可独立运行)
*/
isRelease = false
// 建立Map存储,对象名、key都可以自定义,groovy糖果语法,非常灵活
androidId = [
compileSdkVersion: 29,
buildToolsVersion: "29.0.3",
minSdkVersion : 21,
targetSdkVersion : 29,
versionCode : 1,
versionName :