Android平台开发方式

大约 2 分钟

Android平台开发方式

aar本地开发模式

Kuikly的aar本地开发模式, 支持让宿主工程以源码的形式集成Kuikly业务工程,这种模式需要开发者按照以下步骤完成配置

  1. 在宿主工程的settings.gradle文件中,添加以下代码,集成本地Kuikly业务工程
fun readLocalProperty(key: String): String {
    val file = file("${rootDir.absolutePath}/local.properties")
    if(file.exists()){
        val inputStream = file.inputStream()
        val properties = java.util.Properties()
        properties.load(inputStream)
        return properties.getProperty(key) ?: ""
    } else {
        return ""
    }
}
val kuiklyBizDir = readLocalProperty("kuikly.biz.dir")
if (kuiklyBizDir.isNotEmpty()) {
    fun includeKuikly(moduleName: String) {
        include(":$moduleName")
        project(":$moduleName").projectDir = file("$kuiklyBizDir/$moduleName")
    }
    gradle.beforeProject {
        // 为了区分Kuikly业务工程和宿主工程的依赖,这里添加一个标识
        extra["kuiklyEmbed"] = true
    }
    // 从Kuikly业务工程中引入模块
    includeKuikly("shared")
}
  1. 在集成了Kuikly业务产物的Module中,修改以下代码
val kuiklyEmbed = rootProject.extra.has("kuiklyEmbed")
dependencies {
    ...
    if (!kuiklyEmbed) {
        // 远程依赖接入Kuikly产物
    } else {
        // 本地依赖接入Kuikly产物
        implementation(project(":shared"))
    }
}
  1. sync工程,此时可能报错,按需把Kuikly业务工程根目录build.gradle.kts的部分配置拷贝到宿主工程的build.gradle.kts中, 再使用kuiklyEmbed标识按需屏蔽Kuikly业务工程的配置,例如:
    val kuiklyEmbed = rootProject.extra.has("kuiklyEmbed")
    if (!kuiklyEmbed) {
        cocoapods {
            ...
        }
    }
  1. 将步骤1、2、3的配置分别push到宿主仓库和kuikly业务仓库,供其他人使用

注意

以上步骤1, 2, 3, 4只需要一个人完成配置后, 然后提交到远程仓库即可


  1. 当Kuikly业务开发者想要使用aar本地开发模式时,在宿主工程的local.properties文件中, 添加本地Kuikly业务工程路径即可开启aar本地开发模式
kuikly.biz.dir=xxxx // xxxx替换成本地Kuikly业务工程的路径
  1. sync工程, 然后就可以在Project窗口看到引入的Kuikly业务工程的模块,你可以在宿主工程中修改该模块的代码,开发需求