# Repository Guidelines # 回复语言 所有回复必须使用中文 ## 项目结构与模块划分 核心 ArkTS 代码位于 `entry/src/main/ets`,其中 `view/` 负责 UI 组件(如 `LocalMusic.ets`),`viewmodel/` 管理数据模型(如 `VideoItem`),`common/` 存放工具类与常量(`RemoteDriveManager`、`RcpSocketUtil` 等),`controller/` 承接 Ability 调度。鸿蒙资源位于 `entry/src/main/resources`。本地播放器内核与 FFmpeg 构建脚本存放在 `ijkplayer/`,复用的二进制库放在 `lib/`。流程文档、架构图与配置说明集中在 `doc/`。三方 OpenHarmony 依赖通过 `oh_modules/` 与 `ohpm` 管理。 ## 构建、测试与开发命令 - `ohpm install`:根据 `oh-package.json5` 安装 ArkTS 依赖,新增/升级模块后必跑。 - `hvigor --mode module assemble entry`:编译 `entry` 模块并生成默认 HAP,必要时追加 `--product-name default`。 - `hvigor --mode module clean`:清理构建缓存,确保可重复构建。 - DevEco Studio 的 “Run > Run Entry” 等价于 assemble 并自动部署到真机/模拟器。 ## 代码风格与命名规范 ArkTS/ETS 采用两个空格缩进、PascalCase 文件名(如 `UploadMusicPage.ets`)、camelCase 成员命名。UI 逻辑保持声明式,业务流程尽量下沉到 `common/` 或 `viewmodel/`。除非调试底层连接,优先使用 `Logger` 封装而非裸 `console`。原生模块遵循仓库 `.clang-format`(LLVM 风格,两空格)与 `.clang-tidy` 配置,禁止混用 Tab/空格。提交前通过 DevEco Studio 运行 ESLint/ArkTS 检查。 ## 测试指南 Hypium 自动化尚未完备,现阶段以真机冒烟为主:播放本地音频、执行 WebDAV 上传(`UploadMusicPage`)、验证后台任务。新增复杂逻辑时,在 `entry/src/main/test/` 下补充 Hypium 用例,命名为 `Spec.ets`。CI 覆盖前,请在 PR 描述中列出手工测试步骤和结果。 ## 提交与 PR 规范 历史提交常见中文简述配合 Conventional Commits 前缀(如 `feat(remote-drive): ...`、`fix: ...`)。主题维持祈使句、72 字符内,涉及特定模块请加 scope。提交 PR 时需: 1. 说明用户可见改动及涉及模块。 2. 关联 Issue/需求编号。 3. UI 或网络行为变更附上截图/日志(如 WebDAV 日志)。 4. 列出执行的手工或自动化测试。 避免在一次 PR 中混入无关重构,必要时拆分。 ## 安全与配置提示 切勿提交真实 WebDAV 凭据或 VIP 秘钥,统一通过 `PreferencesUtil` 注入或在 `doc/` 示例中使用假数据。大体积媒体应放在 `entry/src/main/resources/rawfile` 或 `.gitignore` 指定的外部包。修改 `ijkplayer/` 相关内容时,本地执行 `prebuild.sh` 生成产物,勿直接提交二进制。