Skip to content

Latest commit

 

History

History
132 lines (91 loc) · 4.43 KB

File metadata and controls

132 lines (91 loc) · 4.43 KB

ControllerSDK 构建指南

本文档面向需要修改 ControllerSDK 源码或自行编译 AAR 的开发者。

环境要求

  • Android Studio 最新稳定版
  • JDK 17+
  • Android SDK API 33+
  • Gradle 8.x

导入项目

在 Android Studio 中选择 "Open",打开项目根目录的 build.gradle 文件所在目录,等待 Gradle Sync 完成。

模块说明

模块 类型 说明
ControllerSDK Android Library 手柄控制 SDK,依赖外部 rcsdk-v1.9.1.aar

编译 ControllerSDK

前置条件:下载云卓手柄 SDK

ControllerSDK 依赖云卓厂家的 rcsdk.aar(≥v1.8.1)。该文件不随本项目发布,需要开发者手动下载并放置。请按以下步骤操作:

下载步骤:

  1. 访问云卓 RCSDK 示例项目:https://gitee.com/skydroid/rcsdk-demo
  2. 克隆或下载该示例项目代码
  3. 在示例项目目录中找到 libs/rcsdk-v1.9.1.aar 文件
  4. 将该文件复制到ControllerSDK/libs

编译

./gradlew :ControllerSDK:buildSdkAar

产物:ControllerSDK/build/outputs/sdk/ControllerSDK-1.0.0.aar

在你的新项目中调用ControllerSDK的封装库时需要将以下文件放到/app/libs目录下,并在 build.gradle 中引入相关依赖:

  • ControllerSDK-1.0.0.aar(主体)
  • rcsdk-v1.9.1.aar(云卓手柄 SDK,不随本项目发布)

build.gradle 中:

dependencies {
    // fileTree 会自动引入 libs/ 下的 ControllerSDK-1.0.0.aar 和 rcsdk-v1.9.1.aar
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

    // ControllerSDK 的外部依赖(AAR 不含以下依赖,需显式声明)
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1'
}

依赖说明:ControllerSDK AAR 本身不包含 rcsdk-v1.9.1.aar,两者必须同时放入 libs/ 目录。kotlin-stdliblifecyclecoroutines 为 ControllerSDK 的运行时外部依赖,需由集成方显式声明。

作为本地 Module 依赖

ControllerSDK 模块作为本地 Module 引入你的项目。

在其他项目的 settings.gradle 中:

include ':ControllerSDK'
project(':ControllerSDK').projectDir = new File('/path/to/M20_AndroidSDK/ControllerSDK')

在根项目的 build.gradle(或 allprojects 块)中配置 flatDir,使 Gradle 能解析 ControllerSDK/libs/ 下的 rcsdk-v1.9.1.aar

allprojects {
    repositories {
        google()
        mavenCentral()
        // 必须配置 flatDir,否则无法解析 rcsdk-v1.9.1.aar
        flatDir { dirs "${rootDir}/ControllerSDK/libs" }
    }
}

在 App 模块的 build.gradle 中:

dependencies {
    implementation project(':ControllerSDK')

    // ControllerSDK 的外部依赖(需显式声明)
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1'
}

注意:以 Module 方式依赖时,rcsdk-v1.9.1.aar 的解析通过 flatDir 仓库完成(由 ControllerSDK/build.gradle 中的 implementation(name: 'rcsdk-v1.9.1', ext: 'aar') 引用)。因此必须在根项目的 repositories 中配置对应的 flatDir 路径,否则编译时会报 Could not find :rcsdk-v1.9.1:

各模块依赖关系速查:

模块 类型 直接依赖 外部依赖
ControllerSDK Android Library rcsdk-v1.9.1.aar(本地) kotlin-stdliblifecycle-livedata-ktxlifecycle-runtime-ktxkotlinx-coroutines-corekotlinx-coroutines-android

版本管理

修改 ControllerSDK/build.gradle 中的版本号:

def sdkVersion = '1.0.0'

发布时统一替换版本号并打 Tag。

常见问题

Q: 编译时报 Could not find :rcsdk-v1.9.1:?

A: 请确认已从云卓官方示例项目获取 rcsdk-v1.9.1.aar,并放置于 ControllerSDK/libs/ 目录。

Q: 如何清理编译缓存?

./gradlew clean