只运行 Gradle 不会生成缺失的
jniLibs;首次构建请先完成原生构建.环境要求
当前应用只构建
arm64-v8a,对应 Rust target 为 aarch64-linux-android.
准备仓库
1
获取源码
2
配置 Android SDK
安装 API 37、NDK 30.0.14904198 和 CMake 3.22.1,然后在仓库根目录创建 NDK 会根据
local.properties:gradle.properties 中的 android.ndkVersion 自动定位.3
准备 Go 与 Rust
.github/patch/ 中的补丁应用到 go env GOROOT.CI 会在构建原生组件前自动执行这一步.在 Git Bash 或 WSL 中执行:4
同步 mihomo
选择一个内核通道.默认使用 Alpha:也可以使用 Meta:
构建原生组件
完整构建
完整构建会生成所有原生库,并下载 Geo 数据:按组件构建
本机调试可只构建当前 ABI:
jniLibs/arm64-v8a/ 应包含:
Geo 数据位于
build/generated/assets/geo/:
构建 APK
Debug
Debug 适合本地安装和调试:Release
Release 会启用压缩和资源收缩:Geo 数据变体
两种变体使用相同的应用代码和内核;差异只在 Geo 资源是否打包进 APK.
APK 默认输出到:
YumeBox-external.apk 或 YumeBox-builtin.apk.实际文件名以输出目录为准.
Release 签名
本地验证可以不配置正式签名;发布 APK 需要仓库根目录中的release.keystore 和 signing.properties:
不要提交
release.keystore 或 signing.properties.CI 构建
CI 使用
arm64-v8a,并通过 build.number、build.hash 和 build.branch 写入构建版本信息.
验证安装
app/build/outputs/apk/ 中的实际产物.
常见问题
更多构建错误请查看常见问题.
