组件化开发如何可以依赖主项目或者独立运行?

组件化

一、组件化是可以单独运行的也可以依赖到moduel.
1.比如公司旗下有很多项目,如果业务有重叠部分,使用组件化方便复用,同时减少公司人员成本,也有方便于新项目的研发
2.组件化业务模块分离,更加的解耦
二、如何看是module还是libary?
就是在build.gradle中,看apply是啥
三、如何单独运行同时也可依赖到主项目中?
1.建moduel,选择第一个。建完之后,加入

apply plugin: 'com.android.library'

先将它依赖到主项目上,后面会用到
2.在gradle.properties中加标识 ,通过改变它,来决定用libary还是module

isUsermodule=true(相当于开关)

false就是可以单独运行
3.在module的build.gradle中,获取标识,来进行判断

if(isUsermodule.toBoolean()){
    apply plugin: 'com.android.library'
}else{
    apply plugin: 'com.android.application'
}

同时删除applicationId “包名”,因为同一个应用,不可存在两个包名
如果是kotlin语言,kotlinandroid要在这个的下面,不然报错
4.在主项目中也要判断
因为第三个的第一步中作为libary引入了,可以看到主项目中会出现引入依赖

if(isUsermodule.toBoolean()){
    implementation project(path: ':usercontent')
}

5.还有一个问题就是Usermodule里面是有入口的,而作为libary是不能有入口的。
1.在Project模式下的Main中建两个文件夹1.debug 2.release
debug为测试所以是有入口的清单文件,release文件如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.usercontent">

    <application>
        <activity android:name=".LoginActivity">
        </activity>
    </application>

</manifest>

6.配置两个清单文件:

android{
    sourceSets{
    main{
        if(isUsermodule.toBoolean()){
            manifest.srcFile'src/main/release/AndroidManifest.xml'
        }else {
            //单独测试的
            manifest.srcFile'src/main/debug/AndroidManifest.xml'
        }
    }
}

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值