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简单方案