dsh-plugin-android-apk:直接构建安卓项目为 APK

在 DeepSeek Harness (DSH) 的生态中,开发者经常需要让智能体处理具体的构建任务。本地环境配置繁琐,不同项目依赖版本不一,容易导致“在我机器上能跑”的问题。这个插件解决了“在任意 DSH 会话中,直接将安卓项目文件夹构建为 APK”的问题。它由 memories-coder 维护,遵循 MIT 协议。

核心功能

插件主要提供以下能力:

  1. 工程识别:自动识别 Gradle 安卓工程,支持 settings.gradle、settings.gradle.kts 和 build.gradle,可选支持 Gradle Wrapper。
  2. 工具链下载:自动准备构建所需的工具链。优先使用系统环境变量(JAVA_HOME、ANDROID_HOME 等),否则自动下载 Temurin JDK(默认 17)、Android cmdline-tools、platform-tools、build-tools 和 platform 到会话工作目录下的 .android-build 文件夹中,不污染用户目录。
  3. 构建与输出:运行 assemble<Variant>(默认 debug,支持 release)构建产物,并将 APK 复制到指定输出文件夹。
  4. 非 ASCII 路径处理:当工程路径包含非 ASCII 字符(如中文)时,插件会自动将工程和 SDK staging 到 ASCII 临时目录进行构建,构建完成后将 APK 复制回原输出文件夹,无需手动处理。
  5. 缓存机制:所有下载的工具链、Gradle 发行版以及依赖缓存(GRADLE_USER_HOME)均存储在下载文件夹中,支持复用,减少重复下载。

安装

安装此插件需要 DSH 环境已安装 pnpm 并在 PATH 中。

方法一:使用 DSH 自然语言指令
最简单的方式是直接对 DSH 下达指令:

帮我安装这个DSH插件:https://github.com/memories-coder/DSH-plugin-android-apk.git

方法二:手动安装
在 DSH 宿主机器上执行以下命令(请将 <插件路径> 替换为实际路径):

dsh plugin --profile web add "<插件路径>/DSH-plugin-android-apk-main"

说明:dsh plugin 实际是在 profile 目录里执行 pnpm add <spec>,然后把声明了 dsh.bundle.patch 的包加入 dsh.profile.bundles。

注意:安装后必须重启 DSH 才能生效。

使用方法

安装完成后,可以通过自然语言指令或显式调用工具函数来使用。

自然语言指令:
直接对 DSH 说:

把 `xxx` 文件夹构建成 APK

显式调用工具:

build_android_apk(project="myapp", variant="debug", clean=false)

参数说明:

参数 说明 默认值
project 安卓工程文件夹路径(相对路径基于会话工作目录) 必填
variant Gradle 变体(debug / release) debug
clean 是否先 clean 全量重建 false
downloadDir 工具链下载目录 <workspace>/.android-build
apkOutputDir APK 复制目录 <workspace>/apk
gradleVersion 无可用 Wrapper 时下载的 Gradle 版本 8.9
compileSdk 覆盖自动检测的 compileSdk 自动检测,未知时 34

配置与注意事项

插件支持通过 cordis.patch.yml 里的 config 进行全局配置。例如:

config:
  defaultVariant: debug
  jdkMajor: 17
  gradleVersion: "8.9"

注意事项:
1. 依赖网络:Gradle 依赖(AGP、AndroidX)从 dl.google.com 拉取,网络受限时可能超时。插件会自动尝试镜像回退,但建议配置代理以保证速度。
2. JDK 版本:默认使用 JDK 17。如果工程需要 JDK 8 或 11,请修改 config 中的 jdkMajor 或提前配置好 JAVA_HOME。
3. pnpm 要求:dsh plugin 命令依赖于 pnpm。
4. 非 Windows 支持:插件同样支持非 Windows 宿主(通过 gradlew/gradle 脚本 + tar 解压)。
5. 构建失败排查:如果遇到构建失败,请检查 pnpm 是否可用,并确认安装后已重启 DSH。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜