简体中文 | English
一个面向 模组版 Slay the Spire 的 Android 启动器项目,在移动端运行大部分桌面版模组
核心特性 • 快速开始 • 构建说明 • 文档入口 • 仓库结构 • 致谢
> [!IMPORTANT] > 本仓库 **不包含** Slay the Spire 的桌面版 jar。构建前请先准备你自己的 Steam 游戏文件。 ## 核心特性 | 方向 | 说明 | |-------|--------------------------------------| | 模组兼容性 | 目标是支持绝大多数模组加载,力求模组行为与桌面端一致。 | | 兼容策略 | 启动器内置多种兼容策略。 | | 运行时 | 运行 JavaSE 而不是 ART,避免因为实现不一致导致的兼容性问题。 | | 移动端交互 | 针对触屏补充了控制适配与界面适配。 | > [!Note] > 虽然尖塔采用了 LibGDX 编写,但是部分模组仍采用一些桌面特性进行编写,本项目旨在使用适配安卓的 JavaSE > 与配套 Native 库来加载这些模组,从而最大限度还原模组的表现。 ## 快速开始 ### 1. 准备构建依赖 设置环境变量 `STEAM_PATH`,或者在 `gradle.properties` 中设置 `steam.path`,其值应指向包含 Slay the Spire 的 Steam 根目录或 `steamapps` 目录。 必需文件: - `${STEAM_PATH}/common/SlayTheSpire/desktop-1.0.jar` - `runtime-pack/jre8-pojav.zip` 依赖下载来源: - Runtime Pack: [ModinMobileSTS/SlayTheAmethystModdedDependence](https://github.com/ModinMobileSTS/SlayTheAmethystModdedDependence/releases/tag/pojav-jre8) - 原生库市场: [ModinMobileSTS/SlayTheAmethystResource](https://github.com/ModinMobileSTS/SlayTheAmethystResource) > [!NOTE] > `ModTheSpire.jar`、`BaseMod.jar`、`StSLib.jar` 等核心模组 jar 由应用资源打包提供,不会在构建时从外部模组源动态解析。 ### 2. 构建调试版 APK ```powershell .\gradlew.bat :app:assembleDebug ``` ### 3. 构建签名发布版 APK > [!IMPORTANT] > 建议使用[发布自动化指南](./docs/release-automation/README.md)中的方法进行`Release`版本的构建,以避免签名不同的问题 使用标准 Android 签名环境变量: ```powershell $env:RELEASE_STORE_FILE="C:\path\to\release-signing.jks" $env:RELEASE_STORE_PASSWORD="..." $env:RELEASE_KEY_ALIAS="..." $env:RELEASE_KEY_PASSWORD="..." .\gradlew.bat :app:assembleRelease ``` APK 输出目录: - `app/build/outputs/apk/debug/` - `app/build/outputs/apk/release/` ## 构建说明 | 模块 | 职责 | |----------------------|-----------------------------------------| | `:app` | Android 启动器 UI、打包逻辑、运行时资源组装,以及 adb 调试任务 | | `:boot-bridge` | 打包进运行时资源的 Java 启动桥接 jar | | `:patches:gdx-patch` | 构建期包含的桌面兼容补丁 jar | 构建目标: - `minSdk 26` - `targetSdk 33` - `compileSdk 36` - Java / Kotlin 字节码目标:`1.8` ## 文档入口 仓库已经内置了日常联机调试与 CI 发布所需的关键流程。 设备调试命令: ```powershell .\gradlew.bat :app:stsStart .\gradlew.bat :app:stsStop .\gradlew.bat :app:stsPullLogs ``` 可选参数: - `-PlaunchMode=mts_basemod` 或 `-PlaunchMode=vanilla` - `-PdeviceSerial=