news 2026/7/6 4:12:20

HarmonyOS 小游戏《对战五子棋》开发第2篇-AppScope与entry模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 小游戏《对战五子棋》开发第2篇-AppScope与entry模块

鸿蒙应用的两级结构

HarmonyOS应用采用应用级 + 模块级的两层结构:

应用 (App) ├── AppScope/ ← 应用级配置(全局唯一) │ ├── app.json5 ← 应用清单 │ └── resources/ ← 应用级资源 └── entry/ ← 模块(可以有多个) ├── build-profile.json5 ├── oh-package.json5 └── src/main/ ├── module.json5 ← 模块清单 └── ets/ ← 源代码

AppScope:应用级配置

app.json5 — 应用身份证

{ "app": { "bundleName": "com.example.gomoku", // 应用唯一标识 "vendor": "example", // 开发者名称 "versionCode": 1000000, // 版本号(整数) "versionName": "1.0.0", // 版本名(展示用) "icon": "$media:app_icon", // 应用图标 "label": "$string:app_name" // 应用名称 } }

关键字段解读:

字段说明注意事项
bundleName应用包名全局唯一,上架后不可更改
versionCode版本号必须为正整数,每次更新必须递增
versionName版本名用户可见的版本字符串
icon/label图标和名称使用$资源类型:资源名引用资源

应用级资源

AppScope/resources/ ├── base/element/string.json # 默认字符串 └── dark/element/color.json # 深色模式颜色

base目录存放默认资源,dark目录存放深色模式下的覆盖资源。这种资源限定机制让应用能自动适配不同模式。

entry模块:主功能模块

module.json5 — 模块配置核心

{ "module": { "name": "entry", // 模块名称 "type": "entry", // 模块类型:entry(主模块)/feature(特性模块) "mainElement": "EntryAbility", // 入口Ability "deviceTypes": ["phone", "tablet", "2in1"], // 支持的设备类型 "deliveryWithInstall": true, // 是否随应用安装 "installationFree": false, // 是否支持免安装 "pages": "$profile:main_pages", // 页面路由配置 "abilities": [...] // Ability列表 } }

Ability配置

"abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:app_icon", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:app_icon", "startWindowBackground": "$color:start_window_background", "exported": true, "skills": [ { "entities": ["entity.system.home"], "actions": ["action.system.home"] } ] } ]

skills配置是应用被系统识别的关键——entity.system.home+action.system.home表示这是一个可以通过桌面图标启动的入口Ability。

页面路由配置

// resources/base/profile/main_pages.json { "src": [ "pages/Index", "pages/TwoPlayerPage", "pages/AIBattlePage" ] }

所有页面必须在main_pages.json中注册,否则router.pushUrl()会找不到目标页面。

资源引用机制

鸿蒙使用$资源类型:资源名的语法引用资源:

语法示例说明
$string:xxx$string:app_name引用字符串
$color:xxx$color:start_window_background引用颜色
$media:xxx$media:app_icon引用媒体资源
$profile:xxx$profile:main_pages引用profile配置

字符串资源示例

// AppScope/resources/base/element/string.json{"string":[{"name":"app_name","value":"五子棋"}]}// entry/src/main/resources/base/element/string.json{"string":[{"name":"module_desc","value":"Gomoku module"},{"name":"EntryAbility_desc","value":"Gomoku entry ability"},{"name":"EntryAbility_label","value":"五子棋"}]}

颜色资源与深色模式

// entry/src/main/resources/base/element/color.json{"color":[{"name":"start_window_background","value":"#F5F5DC"},{"name":"board_color","value":"#D4A868"},{"name":"line_color","value":"#3B2F2F"}]}// entry/src/main/resources/dark/element/color.json{"color":[{"name":"start_window_background","value":"#333333"}]}

深色模式下,start_window_background自动从#F5F5DC(米色)变为#333333(深灰),系统会自动选择对应目录的资源。

模块类型:entry vs feature

特性entry模块feature模块
数量仅1个可多个
作用应用入口动态特性(按需下载)
deliveryWithInstall必须为true可为false
mainElement必须配置不需要

本项目只使用了单个entry模块,对于小型应用这已经足够。大型应用可以拆分feature模块实现按需加载。

总结

理解鸿蒙应用的两级结构是开发的基础:

  • AppScope管应用级别的配置和资源
  • entry模块管具体功能和页面
  • 资源限定机制让应用自动适配不同设备/模式
  • module.json5是模块的核心配置文件

附:

截图图片

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

百未草阿胶黄芪党参铁片压片糖果分享

很多人喜爱阿胶、黄芪、党参这类草本食材,但繁琐的煎煮步骤难以坚持,这款压片糖果将多种原料融合成片,把草本搭配融入日常碎片化时光。 由山东庆葆堂打造,以阿胶、黄芪、党参为核心草本基底,复配富马酸亚铁、焦磷酸铁两…

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

为什么我们需要SDD(规格驱动开发)

输入“使用 FastAPI 在 Python 中创建一个登录接口。”改一下提示词:“使用JWT”。想了想,再输入:“数据存储到MySQL”。如此来回折腾数次之后,满心欢喜的交付给测试。这就是Vibe Coding,你和大模型进行对话&#xff0…

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

3步解锁中医AI:如何让“仲景“大语言模型成为你的智能中医助手

3步解锁中医AI:如何让"仲景"大语言模型成为你的智能中医助手 【免费下载链接】CMLM-ZhongJing 首个中医大语言模型——“仲景”。受古代中医学巨匠张仲景深邃智慧启迪,专为传统中医领域打造的预训练大语言模型。 The first-ever Traditional C…

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

.NET如何实现向量语义分析

二、LLamaEmbedder 为什么不准?(核心原因) 它是 LLM 大语言模型,不是向量模型,不是专门为语义向量训练的,向量质量远不如 Sentence-BERT、BGE、m3e 这类专业模型。 中文支持极差LlamaEmbedder 原生…

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

道路安全锥交通锥检测数据集7091张VOC+YOLO格式

道路安全锥交通锥检测数据集7091张VOCYOLO格式 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):7091 标注数量(xml文件个数):70…

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

SolonCode CLI 的心智记忆功能:让 AI 编程助手越用越懂你

一、SolonCode CLI 是什么?如果你还没听说过 SolonCode,先花一分钟了解一下。SolonCode 是 Solon 生态 的命令行 AI 编程助手,基于 Solon AI 框架构建,底层采用了 Harness 智能体架构。它不是一个 IDE 插件,而是一个独…

作者头像 李华