HarmonyOS应用开发实战:萌宠日记 - json5-配置文件详解
前言module.json5是 HarmonyOSStage 模型中模块级的核心配置文件它定义了模块的名称、类型、Ability、扩展能力、设备类型等关键信息。在萌宠日记应用中我们通过 module.json5 配置了EntryAbility 入口、页面路由表、备份扩展能力等核心模块信息。本文将从萌宠日记的 module.json5 文件出发逐字段解析每个配置项的含义、作用范围以及最佳实践。一、module.json5 的作用与定位1.1 配置文件层级HarmonyOS 应用的配置文件分为三个层级层级文件作用范围配置内容应用级AppScope/app.json5整个应用包名、版本、全局图标模块级entry/src/main/module.json5单个模块Ability、页面、扩展能力页面级main_pages.json页面路由页面路径注册表三个层级的关系如下app.json5 ← 应用级全局配置 └── module.json5 ← 模块级模块配置 ├── abilities[] ← Ability 配置 ├── extensionAbilities[] ← 扩展能力 └── pages引用 ← $profile:main_pages └── main_pages.json ← 页面路由表1.2 萌宠日记的完整配置{ module: { name: entry, type: entry, description: $string:module_desc, mainElement: EntryAbility, deviceTypes: [ phone ], deliveryWithInstall: true, installationFree: false, pages: $profile:main_pages, abilities: [ { name: EntryAbility, srcEntry: ./ets/entryability/EntryAbility.ets, description: $string:EntryAbility_desc, icon: $media:layered_image, label: $string:EntryAbility_label, startWindowIcon: $media:startIcon, startWindowBackground: $color:start_window_background, exported: true, skills: [ { entities: [ entity.system.home ], actions: [ ohos.want.action.home ] } ] } ], extensionAbilities: [ { name: EntryBackupAbility, srcEntry: ./ets/entrybackupability/EntryBackupAbility.ets, type: backup, exported: false, metadata: [ { name: ohos.extension.backup, resource: $profile:backup_config } ] } ] } }提示module.json5 使用JSON5 格式支持注释和尾逗号比标准 JSON 更灵活。在 DevEco Studio 中编辑时会有语法提示和校验支持。二、模块基础属性2.1 name 与 type{ name: entry, type: entry }name和type是模块最基本的两个属性属性值说明nameentry模块名称在同一应用中唯一typeentry模块类型模块类型type的三种取值类型说明应用场景entry应用主模块可独立安装运行一个应用至少一个feature功能模块依赖 entry 模块按需加载shared共享模块提供共享代码和资源2.2 descriptiondescription: $string:module_descdescription引用资源文件中的字符串{ string: [ { name: module_desc, value: 萌宠日记应用 } ] }使用资源引用的优势支持多语言自动切换编译时进行资源校验便于统一管理所有文案2.3 mainElementmainElement: EntryAbilitymainElement指定模块的入口 Ability名称它必须与abilities数组中某个 Ability 的name一致。当系统启动该模块时会首先创建mainElement指定的 Ability。三、设备类型配置3.1 deviceTypesdeviceTypes: [ phone ]deviceTypes指定模块支持的设备类型。HarmonyOS 支持多种设备类型设备类型标识说明手机phone默认设备类型平板tablet大屏设备智能穿戴wearable手表等智慧屏tv电视设备车机car车载设备2in1 设备twoInOne平板/笔记本二合一3.2 多设备适配萌宠日记当前仅支持phone设备但后续可以扩展// 多设备支持的配置示例 deviceTypes: [ phone, tablet, twoInOne ]多设备适配需要搭配资源限定符和响应式布局共同实现资源限定符为不同屏幕尺寸提供不同布局资源响应式布局使用layoutWeight等弹性布局实现自适应四、安装配置4.1 deliveryWithInstalldeliveryWithInstall: truedeliveryWithInstall控制模块是否随应用安装一起下发值行为适用场景true随应用安装时下发主模块、核心功能模块false按需下载功能模块、插件模块萌宠日记使用true因为 entry 模块是应用的主模块必须随安装一起下发。4.2 installationFreeinstallationFree: falseinstallationFree控制模块是否支持免安装运行值行为说明true支持免安装用户无需安装即可运行有大小限制通常 ≤10MBfalse需安装后运行标准安装模式无大小限制五、页面路由配置5.1 pages 属性pages: $profile:main_pagespages通过$profile:引用 profile 资源文件指向main_pages.json{ src: [ pages/Index, pages/SplashPage, pages/HomePage, pages/WriteDiaryPage, pages/PetProfilePage, pages/GrowthTimelinePage, pages/HealthRecordPage, pages/AlbumPage, pages/StatisticsPage, pages/ReminderPage, pages/CommunityPage, pages/ProfilePage ] }5.2 页面注册规则页面注册的注意事项所有页面必须注册每个可在路由中访问的页面都需在src数组中列出路径规则路径相对于src/main/ets/目录不含.ets后缀首屏页面第一个通过loadContent加载的页面SplashPage必须在列表中路由跳转router.pushUrl({ url: pages/Index })中的路径必须与注册路径一致六、Ability 配置详解6.1 基础属性{ name: EntryAbility, srcEntry: ./ets/entryability/EntryAbility.ets, description: $string:EntryAbility_desc, icon: $media:layered_image, label: $string:EntryAbility_label }Ability 基础属性说明属性值说明nameEntryAbilityAbility 名称在同一模块中唯一srcEntry./ets/entryability/EntryAbility.ets源代码路径description$string:EntryAbility_desc描述引用字符串资源icon$media:layered_image图标引用媒体资源label$string:EntryAbility_label显示名称引用字符串资源6.2 启动窗口配置startWindowIcon: $media:startIcon, startWindowBackground: $color:start_window_background启动窗口属性属性说明最佳实践startWindowIcon启动窗口图标使用与应用图标一致的图标startWindowBackground启动窗口背景色设置为闪屏页背景色实现无缝过渡6.3 exported 与 skillsexported: true, skills: [ { entities: [entity.system.home], actions: [ohos.want.action.home] } ]exported控制 Ability 是否可被其他应用调用值含义萌宠日记场景true可被外部应用通过 Want 启动从桌面图标启动false仅内部使用内部辅助 Abilityskills定义了 Ability 能够响应的Want 匹配规则entities实体类型entity.system.home表示桌面应用actions动作类型ohos.want.action.home表示主页面动作七、ExtensionAbility 扩展能力7.1 备份扩展能力{ name: EntryBackupAbility, srcEntry: ./ets/entrybackupability/EntryBackupAbility.ets, type: backup, exported: false, metadata: [ { name: ohos.extension.backup, resource: $profile:backup_config } ] }7.2 ExtensionAbility 类型大全类型用途萌宠日记是否使用backup数据备份恢复✅ 已配置service后台服务可扩展form服务卡片可扩展widget桌面小组件可扩展accessibility无障碍服务可扩展7.3 metadata 配置metadata: [ { name: ohos.extension.backup, resource: $profile:backup_config } ]metadata用于向 Ability 传递额外的配置信息以键值对形式存在属性说明示例name元数据名称ohos.extension.backupvalue字符串值直接指定resource资源引用$profile:backup_config八、常见配置错误与排查8.1 配置校验规则错误类型现象原因name重复编译报错同一模块中 Ability 名称重复路径错误页面白屏srcEntry路径与实际文件不匹配页面未注册路由跳转失败页面未在main_pages.json中注册资源引用错误编译警告$string:xxx对应的资源不存在8.2 调试方法# 查看模块配置是否正确加载 hdc shell aa dump -a -p com.mengchongriji.app九、配置最佳实践9.1 配置项清单有序列表 — 配置后的检查清单确认bundleName与应用签名一致确认所有页面路径拼写正确确认 Ability 的srcEntry路径指向实际文件确认deviceTypes包含目标设备类型确认skills配置正确应用可从桌面启动9.2 配置优化建议使用资源引用description、icon、label等属性优先使用$string:、$media:引用保持配置简洁只配置必要的字段避免冗余版本同步versionCode和versionName随版本更新同步递增注释规范JSON5 格式支持注释可添加配置说明十、从 FA 到 Stage 的配置迁移10.1 配置差异对比配置项FA 模型Stage 模型配置文件config.jsonmodule.json5app.json5格式JSONJSON5支持注释Ability 定义使用PageAbility使用UIAbility页面注册pages数组$profile:main_pages引用扩展能力无extensionAbilities数组10.2 迁移建议将config.json拆分为app.json5和module.json5将PageAbility替换为UIAbility将pages数组迁移到main_pages.json中新增extensionAbilities配置扩展能力总结本文从萌宠日记的module.json5文件出发深入解析了 HarmonyOSStage 模型下模块配置的每一个字段模块基础属性name、type、description、mainElement设备类型配置deviceTypes 及多设备适配安装配置deliveryWithInstall、installationFree页面路由pages 引用 main_pages.jsonAbility 配置入口、启动窗口、skills扩展能力ExtensionAbility 的备份能力集成配置最佳实践校验规则、调试方法、迁移指南理解 module.json5 的配置细节是正确构建 HarmonyOS 应用的基础。下一篇我们将深入app.json5 与应用签名配置解析应用级配置的各项细节。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源module.json5 配置文件https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file应用配置文件概述https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/application-configuration-file-overview-stageUIAbility 配置https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/uiability-usageExtensionAbility 概述https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/extensionability-overview应用程序包结构https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/application-package-structure-stageHAP 包配置https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hap-package设备类型适配https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/device-adaptation应用签名配置https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/application-signing

相关新闻

智能搜索增强工作流设计与优化实战

智能搜索增强工作流设计与优化实战

1. 项目概述:搜索大师工作流设计理念"搜索大师"是我在Dify平台上开发的一个智能搜索增强工作流,它解决了传统搜索引擎返回结果过于泛化、缺乏针对性处理的问题。这个工作流的核心价值在于:当用户输入一个搜索查询时,系统…

2026/10/12 19:35:45 阅读更多 →
React Native音频播放开发:从基础控制到高级循环与淡入淡出

React Native音频播放开发:从基础控制到高级循环与淡入淡出

最近在开发音频播放应用时,发现很多开发者对背景音乐、冥想音乐等特定类型音频的处理存在困惑。这类音乐不仅需要流畅播放,还要考虑循环模式、音量渐变、资源优化等专业需求。本文将完整拆解从基础播放到高级功能的实现方案,提供可复用的代码…

2026/10/8 19:16:06 阅读更多 →
Mapbox Studio完整指南:5分钟创建专业级自定义地图的终极方案

Mapbox Studio完整指南:5分钟创建专业级自定义地图的终极方案

Mapbox Studio完整指南:5分钟创建专业级自定义地图的终极方案 【免费下载链接】mapbox-studio-classic 项目地址: https://gitcode.com/gh_mirrors/ma/mapbox-studio-classic 想要制作个性化地图却不知从何入手?Mapbox Studio Classic为你提供了…

2026/10/12 19:35:40 阅读更多 →

最新新闻

游戏研发暑期实习笔试复盘:C++、图形学与算法建模全解析

游戏研发暑期实习笔试复盘:C++、图形学与算法建模全解析

2020年4月11日晚上19:00到21:30,我参加了某游戏大厂的游戏研发暑期实习笔试。2.5小时,没有休息,客观题加四道编程题,考到后面脑子确实有点发木。这不是我第一次接触游戏岗的笔试,但那场题覆盖面很典型,横跨…

2026/10/14 7:23:38 阅读更多 →
dnSpy 实战指南:C# 反编译、IL 编辑与调试技巧

dnSpy 实战指南:C# 反编译、IL 编辑与调试技巧

简介:dnSpy是C#开发与逆向工程中常用的开源反编译工具,面向需要阅读、调试或改造.NET程序集的开发者、安全分析人员与逆向研究者。它不仅能将DLL/EXE反编译为接近原始的C#代码,还内置调试器和代码编辑能力,可在反编译结果中设置断…

2026/10/14 7:23:38 阅读更多 →
PS5串流全攻略:AnyPS5让游戏无处不在

PS5串流全攻略:AnyPS5让游戏无处不在

“AnyPS5”这个标题我第一次看到的时候,第一反应是——又有人在折腾PS5模拟器。深入了解之后发现事情比这有意思得多:它不是让PC去模拟PS5,而是让PS5本身“无处不在”,把客厅里那台只能连电视玩游戏的主机,变成一台可以…

2026/10/14 7:23:38 阅读更多 →
微信小程序洗衣O2O系统架构与实现详解

微信小程序洗衣O2O系统架构与实现详解

1. 项目概述这个洗衣小程序源码系统是我去年为一个本地连锁洗衣品牌开发的O2O解决方案,核心目标是打通线上营销、预约与线下服务的全流程。系统上线后帮助客户将订单量提升了47%,客户留存率提高了32%。现在我把这套经过实战检验的解决方案的架构思路和关…

2026/10/14 7:23:38 阅读更多 →
x-cmd yfm skill:Markdown 各场景的 YAML Front Matter 使用映射与 GitHub Issue/PR 实践指南

x-cmd yfm skill:Markdown 各场景的 YAML Front Matter 使用映射与 GitHub Issue/PR 实践指南

CLI开发工具AI Agent人工智能包管理器 【免费下载链接】x-cmd Posix Shell 工具库 项目地址: https://gitcode.com/x-cmd/x-cmd 点击查看 免费下载 导读 本文围绕 x-cmd 仓库中 yfm skill 的实战指南展开,核心讲解"在哪种 Markdown 场景下写哪些 …

2026/10/14 7:23:38 阅读更多 →
基于SVM最大间隔的MATLAB多分类项目实战:从模型训练到GUI设计

基于SVM最大间隔的MATLAB多分类项目实战:从模型训练到GUI设计

近来在项目里频繁要做多特征分类,数据维度一高、类别一多,很多常规脚本就撑不住了,尤其在别人代码基础上改来改去,界面和逻辑都揉在一起,跑通一次要花大半天。后来我把整个流程重写成一套基于SVM最大间隔思想的多分类项…

2026/10/14 7:22:38 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →