欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-06-21 20:10:39
组件化一、组件化是可以单独运行的也可以依赖到moduel.1.比如公司旗下有很多项目,如果业务有重叠部分,使用组件化方便复用,同时减少公司人员成本,也有方便于新项目的研发2.组件化业务模块分离,更加的解耦二、如何看是module还是libary?就是在build.gradle中,看apply是啥三、如何单独运行同时也可依赖到主项目中?1.建moduel,选择第一个。建完之后,加入apply plugin: 'com.android.library'先将它依赖到主项目上,后面会用到2.在...

组件化

一、组件化是可以单独运行的也可以依赖到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'
        }
    }
}

}

本文地址:https://blog.csdn.net/m0_51282960/article/details/112860866

相关标签: 架构 android