news 2026/7/6 4:09:05

HarmonyOS 小游戏《对战五子棋》开发第3篇-项目配置文件全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 小游戏《对战五子棋》开发第3篇-项目配置文件全解析

从build-profile到oh-package,读懂鸿蒙项目的每一行配置

配置文件全景图

五子棋/ ├── build-profile.json5 ← 项目级构建配置 ├── oh-package.json5 ← 项目级依赖管理 ├── hvigorfile.ts ← 构建脚本 ├── hvigor/hvigor-config.json5 ← Hvigor配置 ├── AppScope/app.json5 ← 应用清单 ├── entry/ │ ├── build-profile.json5 ← 模块级构建配置 │ ├── oh-package.json5 ← 模块级依赖管理 │ └── src/main/module.json5 ← 模块清单

build-profile.json5(项目级)

{ "app": { "signingConfigs": [], // 签名配置 "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", // 兼容SDK版本 "runtimeOS": "HarmonyOS", // 运行时OS "targetSdkVersion": "6.1.1(24)" // 目标SDK版本 } ], "buildModeSet": [ { "name": "debug" }, // 调试模式 { "name": "release" } // 发布模式 ] }, "modules": [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": ["default"] } ] } ] }

关键字段解读:

  • compatibleSdkVersion:应用最低支持的SDK版本,低于此版本的设备无法安装
  • targetSdkVersion:应用目标SDK版本,决定可用的API范围
  • products:可以定义多个产品(如免费版/付费版),每个产品可以有不同的签名和配置
  • buildModeSet:构建模式,debug用于开发调试,release用于发布

oh-package.json5(项目级)

{ "modelVersion": "6.1.1", "description": "Gomoku game for HarmonyOS", "dependencies": {}, "devDependencies": { "@ohos/hypium": "1.0.21" } }
  • modelVersion:包管理模型版本
  • dependencies:运行时依赖
  • devDependencies:开发时依赖(如测试框架)
  • @ohos/hypium:华为官方单元测试框架

entry/build-profile.json5(模块级)

{ "apiType": "stageMode", "buildOption": {}, "targets": [ { "name": "default", "runtimeOS": "HarmonyOS" } ] }

apiType有两个选项:

  • stageMode:Stage模型(推荐,本项目使用)
  • faMode:FA模型(旧版,不推荐)

entry/oh-package.json5(模块级)

{ "name": "entry", "version": "1.0.0", "description": "Gomoku entry module", "main": "", "author": "", "license": "Apache-2.0", "dependencies": {} }

hvigorfile.ts

// 项目级构建脚本exportdefault{system:require('@ohos/hvigor-ohos-plugin').hapTasks}

Hvigor是鸿蒙的构建工具,使用TypeScript编写构建脚本,比Gradle的Groovy更易调试。

配置文件之间的关系

app.json5 (应用身份) ↓ 定义了应用级别信息 module.json5 (模块能力) ↓ 定义了模块的Ability和页面 main_pages.json (页面路由) ↓ 注册了所有页面路径 build-profile.json5 (构建规则) ↓ 定义了如何编译 oh-package.json5 (依赖管理) ↓ 定义了项目依赖

实际开发中的常见配置场景

1. 修改应用名称

编辑AppScope/resources/base/element/string.json

{"name":"app_name","value":"五子棋"}

2. 添加新页面

main_pages.json中注册:

{ "src": ["pages/Index", "pages/NewPage"] }

3. 修改启动背景色

编辑entry/src/main/resources/base/element/color.json

{"name":"start_window_background","value":"#F5F5DC"}

4. 适配深色模式

创建dark/element/color.json覆盖特定颜色:

{"name":"start_window_background","value":"#333333"}

总结

鸿蒙项目的配置虽然文件多,但每个文件职责单一:

  • app.json5管应用身份
  • module.json5管模块能力
  • build-profile.json5管构建规则
  • oh-package.json5管依赖
  • 资源json管显示内容

理解这些配置文件的职责边界,是高效开发鸿蒙应用的基础。

附:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 4:07:17

101与金根回顾敏捷个人:(17)技术研究之道

作为技术人员,经常遇到没有接触过的技术,有时是点滴的小技能,有时可能是大的一个研究课题。在《个人管理 - 从小工到专家》中有一个复用级别的图,其中每一级别都是需要研究的,复用粒度越大的需要投入研究的…

作者头像 李华
网站建设 2026/7/6 4:05:35

Nginx进行配置文件拆分(以windows解压版为例)

Nginx压缩包解压后,只有一个默认的nginx.conf配置文件,可以通过下面的配置方法简易拆分成多个配置,提高可读性和可维护性。 原理简介 了解过 Nginx 的应该知道,配置文件的http块里面是由一个个server块组成的。 每个 server 块都含…

作者头像 李华
网站建设 2026/7/6 4:05:26

网上的若干算法都太复杂了,现提出包氏算法如下:

先for循环把arr1中的元素入栈,并在每次遍历时,检索arr2中可以pop的元素。如果循环结束,而stack中还有元素,就说明arr2序列不是pop序列。static bool JudgeSequenceIsPossible(int[] arr1, int[] arr2){Stack stack new Stack();f…

作者头像 李华
网站建设 2026/7/6 4:03:20

LangChain FewShotPromptTemplate少样本应用实战

里有个容易踩的坑:创建 FewShotPromptTemplate 的时候,examples 和 example_selector 这两个参数是互斥的,必须填其中一个,不然代码直接报错。绝大多数情况下,我们直接用 examples 参数把准备好的示例数据传进去就行。…

作者头像 李华
网站建设 2026/7/6 4:03:04

硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显

步骤 1:安装启动下载好安装包,一路 “下一步”,几分钟就装好了。打开 IDE 的瞬间,我直接被清爽的界面戳中了:左边是全平台开发板列表,Arduino、ESP32、STM32、树莓派 Pico… 主流板子基本全覆盖。中间是图形…

作者头像 李华