做任务 送科比网站,wordpress源程序,佟年做网站给KK,dede医院网站模板学习目标 建立鸿蒙应用“宏观-微观”完整认知#xff1a;明确应用、应用程序包、HAP/HSP、组件、页面的层级关系#xff0c;理解 Stage 模型编译期与运行期概念的对应逻辑#xff1b;清晰区分 Stage 模型与 FA 模型的核心差异#xff0c;理解 Stage 模型在资源利用、配置管…学习目标建立鸿蒙应用“宏观-微观”完整认知明确应用、应用程序包、HAP/HSP、组件、页面的层级关系理解 Stage 模型编译期与运行期概念的对应逻辑清晰区分 Stage 模型与 FA 模型的核心差异理解 Stage 模型在资源利用、配置管理、跨端适配等实际开发场景中的核心优势掌握 Stage 模型进程/线程管理机制理解 UIAbility 与 ExtensionAbility 的线程隔离特性以及多线程开发的核心思路熟练掌握 UIAbility 在 module.json5 中的核心配置项及规则精准定位 Stage 工程核心文件并理清依赖链路能独立完成应用名称/图标修改、UIAbility 配置调整、页面加载路径切换等实操结合工程编译机制验证效果并排查基础配置与编译错误。上一节我们掌握了应用配置签名真机调试本节开始从“应用整体架构”切入聚焦 Stage 模型核心交互组件 UIAbility 核心能力展开结合工程编译机制帮助构建鸿蒙应用开发基础认知体系为后续应用生命周期、Context 上下文、进程通信等进阶内容学习打下基础。一、回顾鸿蒙系统架构鸿蒙系统采用分层架构共四层开发者核心工作集中在顶层两层应用层面向用户的应用载体包含两种形态原生应用基于 ArkTS 开发性能最优能深度调用分布式能力是鸿蒙生态核心元服务免安装、轻量便捷适合高频次、低留存场景如扫码支付框架层开发聚焦在框架层提供 ArkUI 组件、状态管理、路由/导航跳转等核心能力后续组件开发、布局设计均依赖此层系统服务层封装分布式能力、设备管理等基础服务开发者通过 API 调用即可无需关注底层实现内核层负责进程调度、内存管理等底层操作开发者无需深入接触。图 1鸿蒙系统架构图- 展示四层架构层级关系标注开发者核心关注的应用层与框架层。HarmonyOS 5.0 开始彻底完成 Linux 内核和安卓开放源代码项目AOSP的全面替换采用纯鸿蒙内核HarmonyOS Kernel实现全栈自研。本阶段所有内容均基于鸿蒙 5.0~6.0 版本进行应用开发讲解。二、程序框架服务Ability Kit一核心定义Ability Kit程序框架服务是鸿蒙系统为应用提供的核心运行时基础框架抽象提炼应用开发所需核心能力提供标准化组件体系和运行机制。核心价值是让开发者基于统一模型开发应用同时保障应用在多设备、多场景下的兼容性与性能。二核心能力与使用场景能力范围具体内容典型使用场景生命周期与进程管理应用/组件进程创建销毁、生命周期调度多 Module 应用开发HAP/HSP 分工实现功能组件交互能力组件间/应用间跳转、跨设备流转办公应用内启动视频会议组件、购物应用跳转支付应用、视频跨设备流转基础支撑能力上下文环境、系统事件监听、启动框架、意图框架等应用快捷方式配置、程序访问控制、密码自动填充三核心特征标准化开发范式抽象应用开发通用能力提供统一的组件体系、生命周期规则降低跨设备/跨版本适配成本高效资源调度统一管理应用进程/线程优化组件启动、内存占用等性能指标系统能力封装内置意图框架、启动框架、流转能力等无需开发者手动对接底层系统 API多场景支撑通过 ExtensionAbility 覆盖备份、输入法、卡片等无 UI/轻 UI 场景平衡功能扩展与系统管控。四核心关联ArkUIUIAbility 组件中可使用 ArkUI 的组件、事件、动效、状态管理等能力实现界面开发ArkTS提供语言运行时能力支撑 Ability Kit 的代码执行Hvigor鸿蒙官方构建工具为 Ability Kit 相关组件与配置提供编译构建能力实现代码与配置的工程化落地。三、鸿蒙应用模型一核心定义与构成要素应用模型是 Ability Kit 对应用开发能力的抽象封装定义应用的组件体系、运行机制、配置规范等核心规则核心构成要素如下构成要素核心作用应用组件应用运行入口通过生命周期回调感知状态变化进程/线程模型定义进程/线程的创建、销毁及通信方式任务管理模型定义任务创建、销毁及与组件的关联仅系统应用应用配置文件存储应用/组件配置、权限等信息供编译/运行阶段使用二演进历程FA 模型 → Stage 模型模型类型适配版本核心状态官方开发优势FA 模型API 7~8已停止更新-Stage 模型API 9主推且长期演进1. 组件职责清晰开发效率更高2. 资源占用更低启动速度更快3. 跨端适配更便捷4. 系统能力集成更简单5. 编译分层设计支持模块按需编译提升开发效率三FA 模型与 Stage 模型核心差异对比维度FA 模型Stage 模型组件体系Page/Service/DataAbility匿名对象UIAbilityExtensionAbility类继承引擎机制每个组件独享 ArkTS 引擎实例所有组件共享一个 ArkTS 引擎实例进程模型主进程渲染进程主进程可配置独立进程ExtensionAbility支持进程自定义线程模型引擎实例在非主线程创建不支持进程内对象共享引擎实例在主线程创建支持进程内对象共享配置文件单一 config.json混编全局/模块配置app.json5应用级 module.json5模块级编译机制整体工程编译修改局部需重新编译全部分层编译支持模块/全局编译按需编译修改部分效率更高四Stage 模型核心架构与组成1. Stage 模型核心架构图图 2Stage 模型编译期-运行期架构图- 左侧为运行期概念应用实例化流程右侧为编译期概念开发打包流程展示“模块→组件→页面”的打包与实例化对应关系。2. 核心组成单元AbilityStage可选实现若不实现系统默认创建Entry/Feature 类型 HAP 的运行时载体一个 HAP 对应一个 AbilityStage 实例负责 HAP 的初始化、组件创建分发、模块级生命周期管理UIAbility带 UI 的核心交互组件通过 WindowStage 管理窗口实现用户交互ExtensionAbility面向特定场景的扩展组件如 EntryBackupAbility、InputMethodExtensionAbility是 UIAbility 的扩展用于无界面的后台能力如备份、输入法WindowStage与 UIAbility 实例绑定的窗口管理器负责窗口创建、销毁为 ArkUI 提供绘制区域Context派生类ApplicationContext/AbilityStageContext/UIAbilityContext为不同层级提供运行期资源调用、权限管理等能力三级生命周期Application应用级→ AbilityStage模块级→ UIAbility/ExtensionAbility组件级由 Ability Kit 统一调度实现资源精细化管理。3. 核心层级关系说明层级关联Application应用全局→ AbilityStageHAP 模块→ UIAbility/ExtensionAbility组件依次依赖创建持有关系UIAbility→WindowStage→Window→ArkUI Page且各层级均持有对应 Context对应关系Application ↔ BundleAbilityStage ↔ HAP1:1 绑定。# 编译期开发/打包 应用程序包Bundle → 模块HAP/HSP → 组件UIAbility/ExtensionAbility → 页面Page # 运行期安装/启动 Application应用全局实例 → AbilityStageHAP 模块实例 → 组件实例 → 页面渲染五Stage 模型开发与运行全流程1. 开发阶段开发者基于 Stage 模型完成应用功能开发与配置核心工作包括应用组件开发通过 UIAbility 组件开发带界面的用户交互模块如应用主界面通过 ExtensionAbility 等组件开发各类扩展功能模块模块解耦设计为减少不同功能模块间的依赖和耦合可将 UIAbility 和各类 ExtensionAbility 的实现分别放在不同的 HAP 包中同时将两者共同依赖的通用功能放在 HSP 包中配置文件编写在 app.json5 中配置应用名称、版本号、应用图标等全局信息在 module.json5 中配置对应 HAP 包下的组件清单、组件权限、进程归属等模块级信息配置信息会在应用编译、安装时被系统解析便于系统和其他模块识别、交互。2. 运行阶段当应用安装到设备运行时系统通过一套应用进程和线程的管理机制确保功能的有序运行进程是应用运行的基础单元负责资源分配和隔离线程是进程内的执行单元负责具体代码逻辑的执行Ability Kit 统一管控进程/线程的创建、销毁和调度保障应用稳定运行。3. 进程模型基础规则UIAbility 组件默认运行在应用主进程中 ExtensionAbility 组件进程行为可配置可通过module.json5中的process字段进行配置配置方式在 ExtensionAbility 组件的配置节点中添加process字段值以:开头表示配置为独立进程运行未配置则默认与 UIAbility 同进程运行通信规则ExtensionAbility 与 UIAbility 同进程时为线程隔离状态数据和资源不直接互通独立进程时需通过跨进程通信机制实现数据交互核心价值进程可配置性兼顾了应用性能和稳定性——轻量扩展组件与主进程共享资源减少进程开销核心/高隔离性扩展组件独立进程运行避免单一组件异常影响整个应用。4. 组件通信机制鸿蒙提供多套通信机制适配不同组件类型、不同进程归属的通信场景核心分类如下进程内通信适用于同一进程内的 UIAbility 与 ExtensionAbility、UIAbility 与页面间优先使用EventHub轻量高效、无需复杂配置跨进程通信适用于跨应用、独立进程的 HAP 之间、独立进程 ExtensionAbility 与 UIAbility 之间使用IPC基础通信机制ExtensionAbility 专属通信不同类型的 ExtensionAbility 提供专属通信接口适配自身业务场景核心接口如下ServiceExtensionAbility通过connectServiceExtensionAbility()建立连接实现主从组件的双向通信DataShareExtensionAbility通过createDataShareHelper()创建助手实例实现数据的增删改查共享。纯 ArkTS 单进程应用优先使用 EventHub 实现组件/线程间通信涉及独立进程或跨应用交互时根据组件类型选择对应专属通信接口或基础 IPC 机制。5. 线程模型基础支撑Stage 模型提供 worker、taskpool 等机制支撑应用多线程开发场景开发建议应用若有复杂的耗时逻辑如大数据处理、网络请求、复杂计算建议通过创建 worker 线程的方式处理避免阻塞主线程UI 线程保障应用界面流畅性线程隔离无论 ExtensionAbility 与 UIAbility 同进程还是独立进程其内部均为线程隔离设计耗时逻辑均需放在子线程执行不可直接在组件主线程处理。六Stage 模型开发流程核心任务关键内容应用组件开发开发 UIAbility/ExtensionAbility按功能拆分到不同 HAP通用能力抽离到 HSP进程/线程模型适配基于业务需求配置 ExtensionAbility 进程归属耗时逻辑通过 worker 处理遵循线程隔离规则配置文件编写配置 app.json5全局/module.json5模块的应用/组件/进程信息保证路径与语法合规通信机制实现按进程归属和组件类型选择 EventHub、专属接口或 IPC 实现通信效果验证基于模块编译验证局部修改效果全局编译生成完整应用包四、鸿蒙应用组成结构一应用程序包Bundle定义鸿蒙应用分发、安装的最小单位后缀.app由全局编译整合所有 HAP/HSP 模块编译产物生成构成Entry HAP必选应用启动入口、Feature HAP可选扩展功能、HSP可选代码/资源共享多包机制1 个 Bundle 可包含多个 HAPEntry HAP 最多 1 个Feature HAP 不限HAP 之间通过 HSP 共享代码/资源各模块可独立编译最终整合至 Bundle。二模块HAP/HSP模块类型核心作用关键特征运行期关联实例典型使用场景编译特性Entry HAP应用主模块提供启动入口必选包含主 UIAbility可单独安装运行对应 1 个 AbilityStage 实例应用主界面、核心交互功能可独立编译为 HAP 包支持单独运行验证Feature HAP扩展功能模块可选依赖 Entry HAP 运行支持按需加载对应 1 个 AbilityStage 实例备份、输入法等扩展功能可独立编译需结合 Entry HAP 运行HSP代码/资源共享包可选无独立运行组件仅用于模块间复用无对应的 AbilityStage 实例通用工具类、常量定义、公共资源编译为共享包被其他 HAP 依赖调用关于包的类型以及使用创建方法我们会在项目阶段学习掌握。三核心组件Stage 模型两类组件组件类型核心作用交互方式开发方式进程默认配置细分类型/示例文件UIAbility应用入口窗口管理实现用户交互桌面启动、可视化交互面向对象开发类继承应用主进程EntryAbility.ets应用主界面ExtensionAbility备份/输入法等无 UI/轻 UI 场景系统/事件触发面向对象开发派生类实现应用主进程EntryBackupAbility.ets备份、DataShareExtensionAbility.ets数据共享五、工程结构延用上一节创建的项目FirstApplication基于鸿蒙 5.0 API 12 DevEco Studio 6.0工程核心结构如下其中build目录为编译后自动生成build-profile.json5和hvigorfile.ts为鸿蒙 Hvigor 构建工具的核心编译配置文件实现工程与模块的分层编译管理FirstApplication ├── AppScope/ # 应用全局配置目录 │ ├── resources/ # 应用全局资源目录 │ │ ├── base/ # 全局基础资源目录 │ │ │ ├── element/ # 全局字符串、颜色等配置 │ │ │ │ └── string.json │ │ │ ├── media/ # 全局媒体资源层叠图标配置、兜底图标 │ │ │ │ ├── app_icon.png // 自定义的应用图标 │ │ │ │ ├── background.png │ │ │ │ ├── foreground.png │ │ │ │ └── layered_image.json │ │ │ └── profile/ # 全局配置文件如页面路由、备份配置等 │ └── app.json5 # 全局配置文件包名、版本、图标、名称等供全局编译解析 ├── entry/ # Entry HAP主模块核心开发目录 │ ├── build/ # 模块编译产物目录编译后自动生成存放entry模块HAP包 │ ├── src/ │ │ ├── main/ # entry模块核心源码目录 │ │ │ ├── ets/ # ArkTS代码目录 │ │ │ │ ├── entryability/ # UIAbility核心组件目录 │ │ │ │ │ └── EntryAbility.ets │ │ │ │ ├── entrybackupability/ # 备份扩展组件目录 │ │ │ │ │ └── EntryBackupAbility.ets │ │ │ │ └── pages/ # 页面目录 │ │ │ │ ├── Index.ets │ │ │ │ └── Home.ets │ │ │ ├── resources/ # 模块级静态资源目录编译时自动打包优化 │ │ │ │ ├── base/ # 基础资源目录默认主题 │ │ │ │ │ ├── element/ # 模块级元素配置 │ │ │ │ │ ├── media/ # 模块级媒体资源 │ │ │ │ │ │ ├── background.png │ │ │ │ │ │ ├── foreground.png │ │ │ │ │ │ ├── startIcon.png // 默认的窗口图标 │ │ │ │ │ │ └── layered_image.json │ │ │ │ ├── dark/ # 深色模式资源目录 │ │ │ │ └── rawfile/ # 原生文件目录无需编译的静态文件 │ │ │ └── module.json5 # Entry HAP模块配置文件组件、权限、进程等供模块编译解析 │ ├── mock/ # 模拟数据目录测试用 │ ├── ohosTest/ # OpenHarmony测试目录 │ ├── test/ # 本地测试目录 │ ├── .gitignore # Git忽略文件配置 │ ├── build-profile.json5 # 模块编译配置文件指定SDK版本、签名关联等编译规则 │ └── hvigorfile.ts # 模块编译脚本Hvigor构建工具模块级执行入口 ├── build/ # 工程全局编译产物目录编译后自动生成存放全局整合的HAP/APP包 ├── build-profile.json5 # 工程全局编译配置文件统一管理所有模块编译规则、编译模式 ├── hvigorfile.ts # 工程全局编译脚本Hvigor构建工具全局执行入口触发所有模块编译 ├── oh-package.json5 # ohpm依赖配置文件编译前自动解析下载依赖 └── oh-package-lock.json5 # ohpm依赖版本锁定文件说明鸿蒙工程基于Hvigor鸿蒙官方自研构建工具实现编译采用按需编译原则仅修改过的模块/文件会重新编译未修改部分复用原有编译产物提升开发效率build目录删除后可通过重新编译生成不影响工程源码。六、UIAbility 核心实操一核心定位应用入口用户点击应用图标后系统首先创建并启动 UIAbility 实例窗口管理载体每个 UIAbility 实例启动后会创建一个 WindowStage窗口管理器负责窗口的创建、销毁并通过 WindowStage 加载 ArkUI 页面实例模式支持单实例、多实例、指定实例等配置通过 module.json5 的launchType字段满足不同业务场景需求编译关联UIAbility 的类名、文件路径需与 module.json5 中name、srcEntry配置完全一致否则会导致模块编译失败无法生成 HAP 包权限核心作为应用核心交互组件UIAbility 是应用权限申请和校验的核心载体后台启动其他组件需依赖专属系统权限。二核心配置1. 模块级配置module.json5/* by yours.tools - online tools website : yours.tools/zh/px2rem.html */ { module: { name: entry, // 模块名称 type: entry, // 模块类型entry/feature/har/hsp description: $string:module_desc, // 模块描述 mainElement: EntryAbility, // 默认启动组件 deviceTypes: [ // 支持的设备类型 phone ], deliveryWithInstall: true, // 是否随应用安装交付 installationFree: false, // 是否免安装 pages: $profile:main_pages, // 页面路由配置 abilities: [ // UIAbility组件配置 { name: EntryAbility, // 组件名称与代码类名一致编译校验关键 srcEntry: ./src/main/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, // 是否允许跨应用调用 launchType: singleton, // 默认的启动模式可以不写 skills: [ // 桌面图标必配缺少则桌面无应用图标 { entities: [ entity.system.home // 桌面入口标识 ], actions: [ ohos.want.action.home // 桌面启动动作 ] } ] } ], extensionAbilities: [ // 扩展组件配置 { name: EntryBackupAbility, // 备份扩展组件名称 srcEntry: ./src/main/ets/entrybackupability/EntryBackupAbility.ets, type: backup, // 扩展类型backup/dataShare/inputMethod等 exported: false, // 仅内部使用 metadata: [ // 扩展元数据 { name: ohos.extension.backup, // 元数据名称 resource: $profile:backup_config // 元数据配置文件 } ] } ] } }2. 配置关键规则mainElementEntry HAP 必须配置为 UIAbilityFeature HAP 无默认启动组件name组件名称必须与代码中导出的类名一致不可随意修改编译时会严格校验srcEntry路径需以./开头严格匹配文件的目录/文件名区分大小写路径错误会直接导致编译失败exported跨应用调用的组件需设为 true仅内部使用的组件设为 false 即可skills仅 UIAbility 需配置桌面图标展示ExtensionAbility 无需配置缺失或配置不全则桌面无图标点击图标进入应用详情页typeExtensionAbility 必选字段需与扩展类型匹配如 backup、dataShare、inputMethod 等processExtensionAbility 可选配置字段用于设置进程归属值以:开头表示独立进程未配置则默认与主进程同进程JSON 语法禁止末尾多余逗号配置项、文件/目录名称均区分大小写语法错误会导致编译解析失败。3. 全局配置app.json5/* by yours.tools - online tools website : yours.tools/zh/px2rem.html */ { app: { bundleName: com.sanxiu.firstapp, vendor: example, versionCode: 1000000, versionName: 1.0.0, icon: $media:layered_image, // 全局应用图标 label: $string:app_name // 全局应用名称 } }4. 层叠图标配置layered_image.json路径全局AppScope/resources/base/media/layered_image.json模块级entry/src/main/resources/base/media/layered_image.json{ layered-image: { background: $media:background, foreground: $media:foreground } }核心规则资源覆盖编译期 AppScope 和模块内重名资源AppScope 资源优先级更高模块级 icon 生效前提UIAbility 的skills字段必须包含entity.system.home和ohos.want.action.home多 Ability 时取mainElement对应配置图标尺寸规范鸿蒙层叠图标推荐基础尺寸foreground/background 均为1024×1024png 格式透明背景编译时系统会自动适配不同设备的图标尺寸无需手动制作多尺寸版本。5. 页面路由配置main_pages.json通过New - Page - Empty Page创建的页面会自动导入main_pages.json其他方法创建的页面需要手动管理路由配置。{ src: [ pages/Index, pages/Home // 新增Home页面路径 ] }三页面加载核心逻辑EntryAbility.etsimport UIAbility from ohos.app.ability.UIAbility; import window from ohos.window; import hilog from ohos.hilog; import { AbilityConstant, Want } from kit.AbilityKit; import { BusinessError } from ohos.base; const DOMAIN: number 0x0000; const TAG: string EntryAbility; export default class EntryAbility extends UIAbility { // 组件创建时触发可初始化资源 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { hilog.info(DOMAIN, TAG, EntryAbility onCreate called); } // 组件销毁时触发可释放资源 onDestroy() { hilog.info(DOMAIN, TAG, EntryAbility onDestroy called); } // 窗口创建后触发仅此处可加载页面 onWindowStageCreate(windowStage: window.WindowStage): void { hilog.info(DOMAIN, TAG, --- onWindowStageCreate 触发加载页面---); // 加载页面 windowStage.loadContent(pages/Index, (err) { if (err.code) { hilog.error(DOMAIN, TAG, 页面加载失败code${err.code}, message${err.message}); return; } hilog.info(DOMAIN, TAG, Index页面加载成功); }); } onWindowStageDestroy(): void { // Main window is destroyed, release UI related resources hilog.info(DOMAIN, TAG, %{public}s, 主窗口即将销毁释放UI相关资源); } onForeground(): void { // Ability has brought to foreground hilog.info(DOMAIN, TAG, %{public}s, 应用切换至前台恢复业务逻辑); } onBackground(): void { // Ability has back to background hilog.info(DOMAIN, TAG, %{public}s, 应用切换至后台暂停业务逻辑不可启动其他组件); } }页面加载规则仅能通过WindowStage.loadContent()加载页面该方法仅可在onWindowStageCreate生命周期中调用路径需严格遵循“无.ets后缀、区分大小写、基于pages根目录的相对路径”且需与main_pages.json中注册的路径完全一致否则编译通过但运行时页面加载失败页面文件命名、路径错误会导致编译时资源打包失败或运行时页面空白。四自定义首页开发步骤 1创建 Home 页面pages/Home.etsEntry Component struct Home { build() { Column({ space: 20 }) { Text(我的Stage应用首页) .fontSize(30) .fontWeight(FontWeight.Bold); } .width(100%) .height(100%) .justifyContent(FlexAlign.Center); } }步骤 2注册 Home 页面到路由配置main_pages.json打开路径entry/src/main/resources/base/profile/main_pages.json在src数组中新增 Home 页面路径确保与实际文件路径一致{ src: [ pages/Index, pages/Home // 必须注册否则运行时页面加载失败 ] }步骤 3修改页面加载路径EntryAbility.ets将windowStage.loadContent(pages/Index, ...)修改为// 加载页面 windowStage.loadContent(pages/Home).then((){ hilog.info(DOMAIN, TAG, Home页面加载成功); }).catch((err: BusinessError){ hilog.error(DOMAIN, TAG, 页面加载失败code${err.code}, message${err.message}); })效果验证应用内验证正常展示我的Stage应用首页无空白、无报错日志端验证Logcat 中筛选TAG:EntryAbility可看到“Home页面加载成功”相关日志。五配置应用名称和图标1. 层叠图标方案-模块级配置默认工程中全局应用图标、模块级图标、layered-image 及前后背景图的命名均一致。若需让模块级应用图标生效需删除AppScope/resources/base/media/目录下的 layered-image 相关文件含layered_image.json、background.png、foreground.png避免全局重名资源覆盖不推荐。推荐方案确保资源不重名使用自定义图标名称同时保证module.json5中配置了skills字段桌面图标正常显示前提确认 entry 模块layered_image.json配置路径entry/src/main/resources/base/media/layered_image.json确保 module.json5 中 UIAbility 配置icon: $media:layered_image。2. 层叠图标方案-全局级配置直接将应用图标图片命名为foreground或自定义 layered_image.json 中foreground的资源引用为foreground: $media:app_icon配置 AppScope 下layered_image.json路径AppScope/resources/base/media/layered_image.json在AppScope/app.json5中配置全局图标icon: $media:layered_image。3. 应用名称配置应用名称的配置优先级模块级别 全局级别。若需让全局资源配置的应用名称生效需在 module.json5 中注释/删除 UIAbility 的 label 配置label: $string:EntryAbility_label。名称修改后需检查string.json中对应字符是否存在字符缺失会导致编译时资源解析错误配置完成后执行模块编译验证桌面应用名称是否更新全局名称路径AppScope/resources/base/element/string.json{ string: [ { name: app_name, value: 第一个应用 } ] }运行验证将应用运行至真机/模拟器桌面端应用名称显示为第一个应用图标为全局配置的层叠样式。七、清理、构建HAP/APP包鸿蒙工程基于Hvigor构建工具实现模块级编译和全局级构建顶部菜单栏Build为核心操作入口覆盖「清理-编译-构建-发布」全流程以下为精准实操和工具说明1. 清理操作操作顶部菜单栏Build Clean Project功能删除全工程所有编译相关文件缓存、临时产物、已生成的包文件等仅保留源码、配置和资源文件作用解决编译异常、缓存冲突、配置修改不生效等问题清理完成控制台显示BUILD SUCCESSFUL2. 模块编译适用于修改entry模块后快速验证局部效果仅生成单模块HAP包操作选中entry文件点击顶部菜单栏Build Make Module entry结果控制台显示BUILD SUCCESSFUL即为成功HAP包存放于entry/build/outputs/hap/作用快速验证entry模块代码/配置修改效果3. 构建完整应用包用于安装/分发/上架适用于真机/模拟器部署、应用发布上架整合全模块生成完整.app包操作顶部菜单栏Build Build Hap(s)/APP(s) Build App(s)结果控制台显示BUILD SUCCESSFUL即为成功.app包存放于build/outputs/app/主模块entry打包产出.hap包作用生成可部署/发布的完整Bundle应用包4. Build菜单核心工具选项全解选项名称核心作用典型使用场景Make Module entry编译entry模块生成单模块HAP包验证entry模块局部修改效果Build Hap(s)/APP(s)Build Hap(s)编译单/多模块生成HAP包Build App(s)整合全模块生成.app包局部调试用Hap(s)部署/发布用App(s)Generate Build Profile entry生成entry模块专属编译配置文件自定义entry模块编译规则Clean Project删除全工程所有编译文件彻底清理缓存编译异常、缓存冲突、配置修改不生效Rebuild Project先执行Clean Project再全工程重新编译清理后仍编译失败、工程长期未编译Generate Key and CSR生成.p12密钥CSR文件用于申请官方发布签名应用正式发布上架Upload Product将正式版.app包上传至华为应用市场后台应用提交上架提审Build Analyzer分析构建耗时、资源占用定位构建失败原因构建速度慢、排查构建失败问题八、代码仓库工程名称FirstApplication仓库地址https://gitee.com/HarmonyOS-UI-Basics/harmony-os-ui-basics.git九、下节预告下一节将深入学习 UIAbility 生命周期全解析核心内容包括UIAbility 全生命周期核心方法的触发时机、核心作用及执行次数约束WindowStage 事件体系与生命周期的联动逻辑掌握窗口状态获焦/失焦、前台/后台的合法监听方式onDestroy方法的特殊触发规则API 13一键清理、调试模式、手动调用API等不同场景页面仅能在onWindowStageCreate加载的底层原因及生命周期相关开发避坑要点实操验证启动/前后台切换/关闭等场景下的生命周期执行顺序掌握关键数据的安全保存策略。