android 组件化重构项目

1.为什么要组件化

(1)耦合严重:单一工程的业务之间耦合度太高,牵一发而动全身
(2)编译时间慢: 对工程的任何更改都必须编译整个工程
(3)测试麻烦:功能测试和系统测试每次都要进行
(4)开发效率不高:共同开发时容易产生冲突
(5)不够灵活:不能灵活的对业务模块进行配置和组装;

2.组件化介绍

组件化就是一个完整的app拆分成多个子模块每个子模块可以独立的编译或者运行,可以任意组合成另一个新的app或者模块,每个模块之间几部想不依赖有可以相互交互 。
组件化的基本组成:
(1)app壳工程:就是一个空的工程,负责打包apk没有具体的业务功能
(2)业务组件:每个业务模块单独出来可以形成一个独立的工程
(3)common组件:为每个业务模块提供公共的组件 如 工具类 网络类的封装
(4)三方组件:把一系列的三方类的功能集合在一起形成的组件 如 微信支付+支付宝支付 +其他三方支付= 支付组件

3.组件化实施流程

由于是之前自己独立开发的一个比较小的工程,所有逻辑也是自己写的所以实施组件化起来还是比较方便的,因为是重构以前的工程而不是重写 所以需要一步步的进行 从开始学习开始 到最后的组件化完成 差不多一周时间 。
(1)拆解工程 提取commonLibrary模块
我们在提取过程中要做的事情

1.为了保证每个业务组件的版本的统一个模块是否模块化的开启

添加统一的引用的gradle config.gradle 在这里吧原来使用的引用和版本都添加进来

/**
 *  全局统一配置文件
 */
ext {
    //true 每个业务Module可以单独开发
    //false 每个业务Module以lib的方式运行
    //修改之后需要Sync方可生效
    isModule = false
    //版本号
    versions = [
            applicationId           : "com.example.componentapplication",        //应用ID
            versionCode             : 1,                    //版本号
            versionName             : "1.0.0",              //版本名称

            compileSdkVersion       : 28,
            buildToolsVersion       : "28.0.3",
            minSdkVersion           : 17,
            targetSdkVersion        : 23,

            androidSupportSdkVersion: "28.0.0",
            constraintLayoutVersion : "1.1.1",
            runnerVersion           : "1.0.1",
            espressoVersion         : "3.0.1",
            junitVersion            : "4.12",
            annotationsVersion      : "24.0.0",
            javaSDKVersion          : 1.8,//javaSDK版本

            multidexVersion         : "1.0.2",
            butterknifeVersion      : "9.0.0",

            arouterApiVersion       : "1.4.0",
            arouterCompilerVersion  : "1.2.1",
            arouterannotationVersion: "1.0.4",
            gsonVersion             :"2.4",
            //rxjava 家族和网络请求
            r
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值