0
点赞
收藏
分享

微信扫一扫

Android-模块化通信-接口api化include方案

肉肉七七 2022-04-01 阅读 72

Android-模块化通信-接口api化include方案

提示:这里可以查看系列文章

  • Android-模块化-项目实践和探索分享
  • Android-模块化通信-简单实用的android spi机制

前言

Android-模块化通信,输出一套简单好维护的 api化 方案


include 方案

从 微信 Android 模块化架构重构实践(上)暴露api 方案 获得灵感, 从每个模块中收集api 文件,采用gradle配置能快速实现

apply from: rootProject.file('./buildConfig/baseAndroid.gradle')

ext.groupId = "cn.mashang.stub_modules"
ext.artifactId = project.getName()
def include_with_export_api = true

android {
    resourcePrefix "api_"
    defaultConfig {
        versionCode 1
        versionName "1.0.0"
    }
    buildFeatures {
        aidl = false
        buildConfig = false
        compose = false
        prefab = false
        renderScript = false
        resValues = false
        shaders = false
    }
    //接口暴露的形式——.api化.
    def export_api_src_dir = 'src/export_api'

    if (include_with_export_api){
        sourceSets {
            main {
                def projects = rootProject.getAllprojects()
                //println projects
                for (Project p in projects) {
                    if (p == rootProject) {
                        continue
                    }
                    //println ":" + p.getName()
                    if (p.file(export_api_src_dir).exists()) {
                        java.srcDir(p.file(export_api_src_dir))
                        println "include_with_export_api: " + p.file(export_api_src_dir)
                    }
                }
            }
        }
    }

    dependencies {
        //不要依赖实现
        compileOnly 'com.android.support:appcompat-v7:24.2.0'
    }
}

if (!include_with_export_api){
    dependencies {

    }
}

//apply from: rootProject.file('./buildConfig/maven-publish.gradle')

在这里插入图片描述

需要单独打包模块,可在暴露api模块中配置以下代码

//接口暴露的形式——.api化. 单独应用可以打开注释
//def export_api_src_dir = 'src/export_api'
//java.srcDir(project.file(export_api_src_dir))

总结

以上就是接口api化include简单方案

举报

相关推荐

0 条评论