贡献
面向开发者
本页适合想从源码构建、提交 PR、改进文档的开发者。普通用户请看 下载页。
快速开始
# 克隆
git clone https://github.com/hanklzl/MusicFreeAndroid.git
cd MusicFreeAndroid
# 构建 Debug APK
./gradlew :app:assembleDebug
# 单元测试
./gradlew test
环境要求
- JDK 21
- Android SDK Platform 36
- Gradle Wrapper 9.4.1(自动下载,无需手装)
- minSdk 29 / targetSdk 36
项目架构概览
依赖方向单向:
:app → :feature:* → :data, :player, :plugin → :core
| 模块 | 一句话职责 |
|---|---|
:core |
主题、导航路由、基础模型、通用工具 |
:data |
Room、DataStore、Repository |
:player |
Media3 / ExoPlayer、MediaSessionService、PlayerController |
:plugin |
QuickJS 引擎、JS 桥接、插件管理 |
:feature:* |
首页、播放器、搜索、设置等具体功能 |
:app |
NavHost、跨模块编排、应用入口 |
详细文档
- 仓库开发约束、Dev Harness、模块详细职责:AGENTS.md
- 发布流程与 secrets:RELEASE.md
- 设计 spec:docs/superpowers/specs/
- 历史决策与踩坑:docs/dev-harness/
如何提 PR
- Fork 仓库并新建特性分支
- 修改本地,跑
./gradlew test通过 - 提 PR 到
main分支 - 遵循 conventional commits(中文 commit message 即可)
- 涉及 UI / 插件 / 播放器 / 测试相关改动时,先阅读对应
docs/dev-harness/<area>/rules.md
反馈 BUG
新建 Issue 时请附:
- 设备型号、Android 版本、应用版本
- 复现步骤
- 日志(「设置 → 关于 → 导出日志」)