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。

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

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

小夜