鸿蒙面试题2025——高频知识点关键词

一 概述

1
2025 鸿蒙高频知识点关键词

二 高频知识点

2.1 基础与架构

1-分布式架构

1
2
3
4
5
6
7
8
9
10
11
12
13
一、概念
鸿蒙的分布式架构是其核心优势之一,旨在打通多设备之间的系统边界,实现跨设备协同。

二、简要描述:
鸿蒙通过自研的 分布式软总线、分布式数据管理和分布式任务调度 等技术,
实现多个设备间资源共享、任务迁移和能力调用,用户体验如同操作同一设备。

三、核心特性:
1.一次开发,多端部署
2.跨设备调用能力(如手机控制电视播放、平板接续手机通话)
3.超级终端:多个设备组合成一个统一的虚拟终端,协同工作无缝切换。

这种架构使鸿蒙具备了原生的跨设备协同能力,是其区别于其他操作系统的关键。

2-鸿蒙内核(Harmony Kernel)与微内核架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
一、概念
鸿蒙内核(Harmony Kernel) 是基于 微内核架构 的操作系统内核,
具备高安全性、模块化和轻量化的特点,主要应用于 IoT、手机、车机等多种终端设备。

二、微内核架构简介:
-核心功能小而精简:仅保留最基础的任务调度、进程间通信(IPC)、内存管理等;
-驱动、文件系统、网络等放在用户态运行,增强系统稳定性和安全性;
-系统组件解耦、模块化,便于裁剪与移植;
-提升系统安全性:内核漏洞影响面小,易于权限隔离和安全验证。

三、鸿蒙内核优势:
-支持 实时操作系统(RTOS)特性;
-面向多终端的适配能力;
-实现分布式软总线与多设备协同基础。

总结:Harmony Kernel 通过微内核架构实现了轻量、安全、可裁剪的多终端系统核心,适用于多种智能设备场景。

3-OpenHarmony 与 HarmonyOS 区别

1
2
3
4
5
6
7
8
9
10
11
12
13
OpenHarmony 和 HarmonyOS 虽然都源于华为主导的鸿蒙操作系统,但它们在定位和应用范围上有所区别:

一、OpenHarmony(开源鸿蒙)
-由开放原子开源基金会托管,是鸿蒙系统的开源版本;
-面向全行业开放,适用于多种设备(如 IoT 设备、智能家电、工业终端等);
-企业可基于其源码进行裁剪、定制、开发自己的操作系统;
-社区共建,版本开放。

二、HarmonyOS(华为鸿蒙)
-华为基于 OpenHarmony 深度定制的商业发行版;
-集成更多私有能力与生态服务(如 HMS、分布式能力、应用商店等);
-主要应用于华为设备(如手机、平板、手表、智慧屏等);
-含有华为自研组件和商业支持。

4-多端协同(手机、手表、平板、车机)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
一、概念
多端协同 是鸿蒙操作系统(HarmonyOS)的一大核心能力,
指的是不同设备(如手机、手表、平板、车机等)之间可以无缝协作,共享能力与资源,带来跨设备、无感知的统一体验。

二、多端协同的关键特性:
-一次开发,多端运行:基于鸿蒙分布式架构,应用可自动适配不同设备;
-能力互助:如手机可调用车机屏幕、手表可调取手机摄像头;
-分布式任务流转:用户任务可在不同设备之间无缝流转(如视频在手机上看一半转到平板继续);
-统一账号、统一数据:支持帐号登录后自动同步信息与状态;
-无缝 UI 适配:同一个 UI 页面可根据设备特性自动布局调整。

三、应用场景示例:
-手机来电 → 手表振动提醒接听;
-平板写文档 → 手机继续编辑;
-手机导航 → 车机屏自动接续导航;
-手表测心率 → 手机 App 同步显示健康数据。

5-组件化 / 模块化开发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
组件化 / 模块化开发 是鸿蒙应用开发中的核心设计理念,旨在提升应用的可维护性、可复用性与可扩展性。

一、组件化开发:
-将应用功能拆分为多个 独立的功能组件(Module);
-每个组件拥有独立的逻辑、UI、资源等,可单独开发、测试和调试;
-常用于实现业务隔离,如登录模块、用户模块、支付模块等。

二、模块化特性:
-解耦性强:各模块相互独立,降低依赖耦合;
-提高复用性:通用组件可在多个项目中复用;
-支持动态加载:部分模块可按需加载、节省资源;
-便于团队协作开发:不同模块可由不同团队并行开发。

三、在鸿蒙中的体现:
-每个模块为一个独立的 Module(如 entry、feature1、feature2);
-支持按需编译、独立测试;
-可设置为 Library 模块(供其他模块调用)或 Entry 模块(独立运行)。

总结:组件化 / 模块化开发让应用更易扩展、复用、测试与维护,是大型鸿蒙项目的最佳实践方式之一。

2.2 、开发语言与框架

1-ArkTS(鸿蒙自研语言)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ArkTS 是鸿蒙操作系统(HarmonyOS)自研的编程语言,
基于 TypeScript 进行扩展与优化,专为鸿蒙系统的应用开发设计。

一、主要特点:
-静态类型:具有严格的类型系统,支持类型推导和类型检查,减少运行时错误;
-声明式 UI:支持声明式编程风格,用于构建响应式 UI 界面;
-面向对象:支持类和对象的定义,增强代码组织性和复用性;
-跨设备支持:可同时支持手机、手表、电视、车机等多种设备的应用开发;
-异步编程:内建异步处理支持,简化异步编程,优化应用性能。

二、ArkTS 框架特点:
-ArkUI:基于 ArkTS 构建的 UI 框架,使用声明式语法实现跨终端 UI 开发;
-分布式能力:支持鸿蒙系统的分布式架构,便于实现跨设备协同工作;
高性能:通过 ArkCompiler 编译器优化性能,提升应用运行效率。

总结:
ArkTS 是专为鸿蒙系统设计的编程语言,结合了类型安全、响应式编程等特性,提升开发效率,并支持跨设备协同能力。

2-Ark Compiler 编译链

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Ark Compiler 是鸿蒙操作系统(HarmonyOS)自研的高性能编译器,
用于将 ArkTS 代码编译为高效的机器代码,支持跨平台应用开发。
它通过深度优化提升了应用的执行效率和系统性能。

一、Ark Compiler 编译链特点:
-多语言支持:支持 ArkTS、C/C++ 等多种编程语言的编译,能适应不同开发需求;
-分布式编译:通过分布式编译技术加速编译过程,提高编译效率;
-优化执行效率:在编译过程中进行多重优化,生成高效的机器代码,提升应用性能;
-跨平台编译:支持不同硬件架构(如 ARM、x86)的编译,确保应用在不同设备上的流畅运行。

二、编译链流程:
-源码解析:解析 ArkTS 源代码并生成抽象语法树(AST);
-中间代码生成:生成中间代码,为后续优化做准备;
-优化阶段:对中间代码进行各类优化(如内存管理、循环优化等);
-生成目标代码:根据目标平台生成相应的机器代码;
-链接与打包:将多个模块链接成最终的可执行文件或应用包。

总结:
Ark Compiler 通过先进的编译技术,不仅提升了代码执行效率,
还支持跨平台、分布式开发,确保鸿蒙应用在多终端设备上都能流畅运行。

3-FA(Feature Ability)/ PA(Particle Ability)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
FA(Feature Ability) 和 PA(Particle Ability) 
是鸿蒙操作系统(HarmonyOS)中用于模块化应用开发的两种能力类型,用于组织和管理应用的功能模块。

一、Feature Ability(FA)
定义:Feature Ability是一种独立的功能单元,代表应用中的一个具体功能或界面,通常对应应用的一个页面或功能模块。

特点:
-每个 FA 可以包含独立的 UI 界面和业务逻辑;
-支持生命周期管理,能够在不同设备间进行协作和调度;
-用于处理较复杂的功能和较大的应用模块。

示例:例如一个天气应用中的“天气详情”页面、一个音乐应用中的“播放界面”等,都是通过 FA 实现的。

二、Particle Ability(PA)
定义:Particle Ability 是一种轻量级的功能单元,
通常用于实现应用的微小功能或简单的组件,具有更高的灵活性和可复用性。

特点:
-适用于简化的功能或小模块,通常不包含复杂的界面;
-具有较低的资源消耗,适合在多个场景中复用;
-更加注重功能的分布式能力和跨设备协同。

示例:如一个简单的按钮功能、一个通知模块,或是一个小部件等,通常会使用 PA 来实现。

总结:
-FA 更适合用来实现较大功能模块和页面,具有完整的生命周期管理;
-PA 适合实现小型功能或组件,更加灵活和轻量;

这两者配合使用,能够实现鸿蒙系统中的高效、模块化开发。

3-Stage模型 与 FA模型 对比

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Stage模型 和 FA模型 是鸿蒙操作系统(HarmonyOS)中用于构建和管理应用的两种不同模型,
它们在应用结构和生命周期管理上有一定的差异。

一、Stage模型:
定义:
Stage模型主要用于传统的应用开发模式,通常对应应用的整体生命周期。
一个应用被视为一个独立的实体,包含一个主Stage,负责管理应用的启动、前后台切换等。

特点:
-一个应用通常只有一个 Stage;
-适合处理应用的整体生命周期管理,如启动、暂停、恢复等;
-Stage 模型关注的是整个应用的运行状态和UI界面的展示。

应用场景:适用于不需要细粒度控制、相对单一功能的应用,如传统的手机App。

二、FA(Feature Ability)模型:
定义:
FA模型是鸿蒙系统中的模块化开发模型,用于将应用拆分为多个独立的功能单元(Feature Ability),
每个FA可以独立管理生命周期、资源和UI。

特点:
-一个应用可以包含多个 FA,每个 FA 代表一个独立的功能模块或界面;
-FA 模型支持更高粒度的管理,适用于复杂功能和多模块应用;
-FA 可以独立启动、暂停和恢复,能够根据需要进行动态加载。

应用场景:适用于具有多个独立模块或功能的复杂应用,如分布式应用、模块化的大型应用等。

三、Stage模型与FA模型对比:
特性 Stage模型 FA模型
主要功能 管理整个应用的生命周期 管理独立功能模块的生命周期
应用结构 单一Stage(一个应用一个) 多个FA(一个应用多个模块)
粒度 较粗粒度 较细粒度
应用场景 适用于简单、单一功能的应用 适用于复杂、模块化的应用
生命周期管理 管理整个应用的状态 管理每个功能模块的状态

四、总结:
-Stage模型 适合较简单、整体的应用结构,管理的是应用级别的生命周期;
-FA模型 更适合复杂、模块化的应用,可以针对每个功能模块独立进行管理和调度,提供更高的灵活性。

4-UI Declarative 开发范式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
UI Declarative 开发范式 是一种声明式编程模式,用于构建用户界面(UI)。
在这种范式中,开发者通过声明界面元素的状态和行为,而不是详细指定界面如何更新或渲染。

一、主要特点:
1.声明式语法:开发者只需要描述“界面应当是什么样子”,而不需要明确每一步如何更新界面。框架会自动根据状态变化来更新界面。
2.响应式:UI 会自动响应数据或状态的变化,开发者只需要关注数据的变化,UI 会根据数据变化自动重新渲染。
3.简化开发过程:开发者不需要手动处理 UI 更新逻辑,减少了繁琐的布局和状态管理代码。
4.易于维护:因为 UI 与数据状态是绑定的,UI 和数据的变化通常是同步的,减少了 bug 和代码冗余。

二、示例:
在 React 或 Flutter 等框架中,开发者通过声明式的方式定义 UI,例如:
Text("Hello, World!") // Flutter 声明式界面
这里只声明了一个文本内容,框架会自动渲染和更新界面。

三、对比传统命令式开发:
-命令式开发:开发者需要手动控制界面的每个变化(如设置位置、大小、颜色等)。
-声明式开发:开发者只声明界面应当呈现的状态,框架自动决定如何渲染和更新 UI。

总结:
UI Declarative 开发范式通过简化开发者的工作,
减少了手动更新 UI 的复杂性,使得界面开发更加直观、灵活和易于维护。

5-ArkUI / JS UI / XML UI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ArkUI、JS UI 和 XML UI 是鸿蒙操作系统中用于构建用户界面的三种不同方式,分别适用于不同的开发需求和平台。

一、ArkUI:
定义:ArkUI 是鸿蒙系统的UI框架,基于 ArkTS(鸿蒙自研语言)构建,采用声明式编程模式,用于开发跨平台的 UI。

特点:
-支持声明式 UI 开发,简化界面设计;
-高效、流畅,适配多种设备(如手机、手表、电视等);
-提供强大的组件库和布局系统,支持动态调整布局和主题。

二、JS UI:
定义:JS UI 是基于 JavaScript 语言实现的 UI 开发方式,通常与 Vue.js、React 等前端框架结合使用。

特点:
-通过 JavaScript 来操作和渲染界面;
-与传统的 Web 开发类似,适用于需要快速开发和多平台支持的应用;
-适用于一些轻量级的界面和跨平台开发场景。

三、XML UI:
定义:XML UI 是通过 XML 文件定义界面的结构和布局,通常用于传统的 Android 开发。

特点:
-使用 XML 标记语言定义 UI 组件和布局;
-配合 Java 代码实现界面逻辑,具有较强的结构化和可读性;
-适用于传统的 Android 应用开发,也能在鸿蒙中通过适配进行使用。

总结:
-ArkUI 是鸿蒙自研的高效 UI 框架,适合跨平台开发,支持声明式开发;
-JS UI 使用 JavaScript 来定义界面,适合快速开发和 Web 风格的应用;
-XML UI 采用 XML 格式来定义界面布局,传统且结构化,常用于 Android 开发。

2.3 、UI开发与布局

1-页面路由与导航(PageRouter)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
页面路由与导航(PageRouter) 是鸿蒙操作系统中用于管理页面跳转、导航和传递数据的机制。
它负责控制应用中的页面切换流程,确保用户在不同页面之间流畅过渡。

一、PageRouter:
定义:PageRouter 是鸿蒙中用于页面路由和导航的核心组件,管理页面的跳转、生命周期、参数传递等。

特点:
-页面跳转:通过 PageRouter 可以在不同的页面之间进行跳转(如从一个界面到另一个界面)。
-参数传递:支持在页面跳转时传递数据,方便页面之间的数据共享。
-页面栈管理:管理页面栈,支持页面的压栈与出栈操作,控制页面的显示和隐藏。
-生命周期管理:管理页面的生命周期,如创建、销毁、显示、暂停等。

二、常见操作:
2.1 页面跳转:
使用 PageRouter 提供的 API 进行页面跳转:PageRouter.push("newPage");

2.2 传递参数:

在跳转时可以传递数据:PageRouter.push("newPage", params: {"key": "value"});

2.3 返回上一页:

页面之间可以通过调用返回方法来退回到上一页面:PageRouter.pop();

总结:
PageRouter 作为鸿蒙的页面导航和路由管理工具,简化了页面间的跳转与数据传递,提升了多页面应用的开发效率。

2-自定义组件(@Component)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
自定义组件(@Component) 是鸿蒙操作系统中用于创建和使用自定义 UI 组件的机制。
通过自定义组件,开发者可以封装和复用界面元素和逻辑,从而提高开发效率和代码的可维护性。

一、 @Component:
定义:@Component 是一种装饰器(Decorator),用于标记和定义一个自定义组件。
在鸿蒙开发中,通过 @Component 可以将一个类声明为一个组件,并指定它的生命周期、视图和行为。

特点:
-封装 UI 组件:开发者可以将界面和逻辑封装在一个组件中,实现 UI 元素的复用。
-声明式定义:自定义组件采用声明式编程模式,开发者只需要定义组件的视图结构和逻辑,而不需要关心底层的渲染和管理。
-组件化开发:适合复杂界面的开发,能够将一个大的界面拆分成多个独立的小组件,提高代码的可读性和维护性。

三、示例代码:

@Component
class MyCustomComponent extends StatelessComponent {
@override
build(BuildContext context) {
return Text('Hello, Custom Component!');
}
}
在这个例子中,通过 @Component 将 MyCustomComponent 定义为一个自定义组件,
build 方法中定义了该组件的 UI 内容。

总结:
@Component 是鸿蒙开发中用来创建自定义组件的重要工具,
通过它可以封装、复用 UI 和业务逻辑,提升代码的模块化和可维护性。

3-状态管理(@State, @Prop, @Link, @Provide, @Consume)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
在鸿蒙 ArkTS 声明式开发中,状态管理 是组件间通信和界面响应更新的核心机制。
系统提供了多个装饰器(如 @State、@Prop、@Link、@Provide、@Consume)用于标记和管理状态,
帮助开发者实现高效的响应式 UI 开发。

一、状态管理关键装饰器简述:
1.1 @State
作用:定义组件内部的本地状态,状态变化会自动触发组件刷新。
使用场景:组件内需要变化的数据。
示例:@State count: number = 0;

1.2 @Prop
作用:接收父组件传递的只读数据,组件内部不能修改。
使用场景:子组件接收来自父组件的参数。
示例:@Prop message: string;

1.3 @Link
作用:建立父子组件之间的双向绑定,子组件可以修改状态并同步到父组件。
使用场景:需要子组件修改并同步父组件状态。
示例:@Link count: number;

1.4 @Provide
作用:用于在祖先组件中提供共享数据。
使用场景:用于多层组件之间共享数据。
示例:@Provide('theme') themeColor: string = 'blue';

1.5 @Consume
作用:用于在子孙组件中获取祖先组件通过 @Provide 提供的数据。
使用场景:获取跨层级共享状态。
示例:@Consume('theme') themeColor: string;

二、表格

装饰器 用途 是否可修改 应用范围
@State 本组件私有状态 当前组件
@Prop 父传子只读属性 父 → 子组件
@Link 父子共享双向状态 父 ↔ 子组件
@Provide 向下提供共享状态 祖先组件
@Consume 获取上层提供的状态 后代组件

3-通知与事件(@Watch, onXXX 等生命周期)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
一、概念
在鸿蒙 ArkTS 声明式开发中,通知与事件机制 是组件响应数据变化和用户交互的关键方式,
主要通过 @Watch 监听状态变化,以及 onXXX 系列生命周期函数来处理组件的生命周期事件。

二、 @Watch(状态监听器)
作用:监听某个 @State、@Prop 或 @Link 状态的变化,自动触发指定回调方法。
使用场景:当某个数据变化时,需要执行副作用逻辑(如重新请求、更新视图等)。
示例:

@State count: number = 0;
@Watch('count')
onCountChanged(newValue: number, oldValue: number) {
console.log(`count 从 ${oldValue} 变为 ${newValue}`);
}

三、onXXX 生命周期函数
鸿蒙组件生命周期以 on 开头,组件在不同阶段自动调用对应方法。

生命周期函数 触发时机
onInit() 组件初始化时调用,仅执行一次
onBuild() 每次组件构建 UI 时调用
onAppear() 页面或组件显示到界面时调用
onPageShow() 页面回到前台显示时触发(Stage 模型)
onPageHide() 页面进入后台或跳转时触发
onDisAppear() 页面或组件退出界面时调用
onDestroy() 组件销毁前调用,用于清理资源等

总结
使用 @Watch 可监听属性变化,处理副作用;
结合生命周期函数(如 onInit、onAppear、onDestroy),开发者可精准控制组件的创建、展示、隐藏和销毁行为;
搭配状态管理使用,可实现灵活的响应式界面逻辑与数据流管理。

4-动画与过渡(动画曲线、transition、AnimationController)

一、概念

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
在鸿蒙 ArkTS 声明式开发中,动画与过渡 是提升用户体验的重要方式,
主要通过动画曲线、transition 属性和 AnimationController 控制动画过程,
实现元素的动态展示、移动、缩放等视觉效果。

二、动画关键点简述:
2.1 动画曲线(Curve)
-定义:动画变化的速率控制函数;
-常用曲线:Curve.Linear(匀速)、Curve.Ease(缓入缓出)、Curve.EaseIn、Curve.EaseOut 等;
-作用:决定动画的节奏感,让动画更自然流畅。

2.2 transition 属性
-定义:为组件指定状态变化时的过渡动画;
-使用方式:.transition({ type: TransitionType.Scale, duration: 300, curve: Curve.Ease })
-常见类型:
-TransitionType.Fade(淡入淡出)
-TransitionType.Scale(缩放)
-TransitionType.Translate(位移)
-TransitionType.Opacity(透明度)

2.3 AnimationController 控制器
定-义:用于精确控制动画的播放、暂停、停止、进度等;
-使用场景:实现复杂动画逻辑(如连贯动画、交错动画);
-常用方法:
-play(): 播放动画
-pause(): 暂停动画
-stop(): 停止动画
-reverse(): 反向播放
-progress: 设置动画进度(0~1)

二、表格

技术点 作用
动画曲线 Curve 控制动画播放的速度变化
transition 属性 声明式定义组件状态变化的动画方式
AnimationController 用于精细控制动画的流程和交互行为

5-响应式布局(Flex、Grid、Row/Column)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
一、概念
在鸿蒙 ArkTS 中,响应式布局 是指根据不同设备尺寸和屏幕方向,自动调整界面布局,使其适应各种屏幕环境。
常用的布局方式包括 Flex、Grid、Row/Column,这些布局方式可以实现灵活的视图排布。

二、响应式布局关键点:
2.1 Flex 布局
定义:Flex 布局是一种基于容器的弹性布局方式,通过分配可用空间来控制元素的排列。

常用属性:
-justifyContent: 水平对齐(如 Center, SpaceBetween)
-alignItems: 垂直对齐(如 Center, Stretch)
-flexDirection: 主轴方向(Row 或 Column)

示例:
Flex()
.direction(FlexDirection.Row) // 水平方向
.justifyContent(JustifyContent.Center) // 水平居中
.alignItems(AlignItems.Center) // 垂直居中

2.2. Grid 布局
定义:Grid 布局通过网格的方式排列子元素,适合用于复杂的二维布局。
常用属性:
-rows: 定义行数
-columns: 定义列数
-gap: 行列间的间隔

示例:

Grid()
.rows('auto', '100px', 'auto')
.columns('1fr', '2fr', '1fr')
.gap(10)

2.3. Row/Column 布局
定义:Row 和 Column 分别是用于水平方向和垂直方向的布局容器。
Row 布局:用于将子元素按行水平排列。
Column 布局:用于将子元素按列垂直排列。

示例:
Row() {
Text("项 1")
Text("项 2")
Text("项 3")
}

Column() {
Text("项 A")
Text("项 B")
Text("项 C")
}

二、总结

布局方式 适用场景 常用属性
Flex 适用于灵活的容器布局,支持主轴和交叉轴对齐 justifyContentalignItems
Grid 适合复杂的二维网格布局 rowscolumnsgap
Row/Column 简单的水平方向或垂直方向布局 -

2.4 、应用开发关键点

1-权限管理(@Permissions)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
在鸿蒙 ArkTS 中,权限管理 主要通过 @Permissions 注解来控制应用访问设备的权限,
确保应用能在合适的时机请求和授权权限。

一、@Permissions 注解
作用:
通过 @Permissions 注解指定需要访问的权限,系统会根据权限类型自动请求授权,开发者可以根据需要进行相应处理。
使用场景:请求应用使用设备的功能,如摄像头、麦克风、定位、存储等。

示例:
@Permissions('camera', 'location')
onPermissionsGranted() {
console.log('权限授予成功');
}
@Permissions('camera')
onPermissionsDenied() {
console.log('权限被拒绝');
}

二、权限类型
常见的权限包括:
-camera(摄像头)
-location(定位)
-storage(存储)
-microphone(麦克风)

总结
-使用 @Permissions 注解简化权限请求过程。
-开发者可以通过权限状态回调函数
(如 onPermissionsGranted 和 onPermissionsDenied)处理权限授予和拒绝的逻辑。

这种权限管理方式帮助开发者更方便地处理用户隐私和设备安全。

2-数据存储(Preferences、RelationalStore、KV Store)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
在鸿蒙 ArkTS 中,数据存储 提供了多种方式来持久化应用数据,
主要包括 Preferences、RelationalStore 和 KV Store。
每种存储方式适用于不同类型的数据存储需求。

一、数据存储方式:
1.1 Preferences
作用:用于存储简单的键值对数据,适合存储用户偏好设置、应用配置等轻量级数据。
特点:数据以键值对的形式存储,操作简单,支持读取和写入。

示例:
import { Preferences } from '@ohos.data.dataStorage';
const preferences = new Preferences();
preferences.put('username', 'user1');
const username = preferences.get('username', 'defaultUser');
console.log(username); // 输出 'user1'

1.2. RelationalStore
作用:用于存储关系型数据,支持更复杂的查询和数据操作,类似于数据库中的表结构。
特点:支持SQL风格的查询,适合需要处理多表关联、复杂查询的数据。

示例:
import { RelationalStore } from '@ohos.data.dataStorage';
const store = new RelationalStore('user_db');
store.put({ id: 1, name: 'Alice' });
store.query('SELECT * FROM users WHERE id = 1');

1.3. KV Store
作用:类似于 NoSQL 数据库,适用于存储结构简单、没有复杂关联的数据。
特点:基于键值对,支持高效的数据读取和写入,适合大规模数据存储。
示例:

import { KVStore } from '@ohos.data.dataStorage';
const kvStore = new KVStore('my_kv_store');
kvStore.put('key1', 'value1');
const value = kvStore.get('key1');
console.log(value); // 输出 'value1'

二、总结:
存储方式 适用场景 特点
Preferences 存储用户偏好、配置数据等轻量级数据 键值对存储,操作简单,适合小数据
RelationalStore 存储结构化、关系型数据,适合复杂查询 支持SQL查询,适合复杂数据存储
KV Store 存储简单的非结构化数据 键值对存储,适合大规模数据存储

通过这些存储方式, 鸿蒙为开发者提供了多种灵活、高效的数据存储方案,满足不同类型的数据需求。

3-网络通信(http, WebSocket)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
在鸿蒙 ArkTS 中,网络通信 主要通过 HTTP 和 WebSocket 两种方式来进行数据传输和实时通信。

一、网络通信方式:
1.1 HTTP
作用:通过 HTTP 协议进行客户端与服务器之间的通信,适用于常规的请求-响应模型,如获取数据、提交表单等。
特点:支持 GET、POST 等请求方式,适合处理无状态、简单的请求。

示例:
import { Http } from '@ohos.net.http';
const url = 'https://api.example.com/data';
const response = await Http.get(url);
console.log(response);

1.2. WebSocket
作用:WebSocket 提供了全双工、持久化的通信方式,适用于实时数据传输,如即时消息、推送通知等。
特点:在连接建立后,客户端和服务器之间可以双向实时传输数据,适合需要高频率、低延迟的应用场景。

示例:
import { WebSocket } from '@ohos.net.websocket';
const ws = new WebSocket('ws://example.com/socket');
ws.onopen = () => {
ws.send('Hello, Server!');
};
ws.onmessage = (event) => {
console.log('Received: ' + event.data);
};

二、总结:
通信方式 适用场景 特点
HTTP 常规请求-响应通信,获取数据等 简单、无状态,适合静态请求
WebSocket 实时通信,如即时消息、推送通知等 双向通信,持久连接,低延迟

通过 HTTP 和 WebSocket,
鸿蒙提供了灵活的网络通信方式,开发者可以根据需求选择合适的通信协议,满足不同的应用场景。

3-文件系统与资源管理(resourceManager)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
在鸿蒙 ArkTS 中,文件系统与资源管理 主要用于管理应用的文件存储、资源访问等操作。
通过 resourceManager,开发者可以方便地读取、写入和管理应用的资源与文件。

一、文件系统与资源管理:
1.1 文件系统(File System)
作用:用于管理设备的文件存储,提供对本地文件的读写操作,如创建文件、删除文件、修改文件内容等。
常见操作:
-创建、删除文件或目录
-读取文件内容
-写入文件内容

示例:

import { FileSystem } from '@ohos.data.fileSystem';
const file = new FileSystem();
file.writeText('path/to/file.txt', 'Hello, HarmonyOS!');
const content = file.readText('path/to/file.txt');
console.log(content); // 输出 'Hello, HarmonyOS!'

1.2. 资源管理(resourceManager)
作用:用于管理应用的静态资源,如图片、音频文件、应用配置等。
resourceManager 提供了对资源的加载、读取、释放等功能。

常见操作:
-加载应用资源
-获取资源路径
-管理应用内静态文件资源

示例:

import { resourceManager } from '@ohos.app.resourceManager';
const resourcePath = resourceManager.getResourcePath('image.png');
console.log(resourcePath); // 输出资源路径

二、 总结:
功能 适用场景 关键操作
文件系统 管理本地文件存储,如读写文件、目录操作等 创建、删除文件,读写文件内容
资源管理 管理应用的静态资源,如图片、音频等资源 加载资源、获取资源路径,管理应用资源

通过文件系统和 resourceManager,鸿蒙提供了灵活的文件和资源管理方案,
方便开发者进行应用的本地文件操作和静态资源管理。

3-多媒体(音频、视频、相机、媒体库)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
在鸿蒙 ArkTS 中,多媒体功能包括音频、视频、相机、以及媒体库管理等,
开发者可以通过相关API轻松实现音视频播放、录制、图像拍摄及管理本地媒体资源。

一、多媒体功能:
1.1 音频(Audio)
作用:用于音频的录制与播放,支持多种音频格式。
常见操作:
-播放音频文件
-录制音频
-调节音量等设置
示例:
import { AudioPlayer } from '@ohos.media.audioPlayer';
const audioPlayer = new AudioPlayer();
audioPlayer.play('path/to/audio.mp3');

1.2. 视频(Video)
作用:用于视频的播放、录制及处理,支持多种视频格式。
常见操作:
-播放视频文件
-调节视频播放进度、音量等
示例:

import { VideoPlayer } from '@ohos.media.videoPlayer';
const videoPlayer = new VideoPlayer();
videoPlayer.play('path/to/video.mp4');

1.3. 相机(Camera)
作用:用于拍照与摄像,支持拍照、录制视频等功能。
常见操作:
-拍摄照片
-录制视频
示例:

import { Camera } from '@ohos.media.camera';
const camera = new Camera();
camera.takePhoto().then(photo => {
console.log('照片拍摄成功:', photo);
});

1.4. 媒体库(Media Library)
作用:用于管理和访问设备上的音视频文件,提供对本地媒体文件的查询与操作。
常见操作:
-获取本地音视频文件列表
-查询音视频文件的元数据

示例:

import { MediaLibrary } from '@ohos.media.mediaLibrary';
const mediaLibrary = new MediaLibrary();
const videoList = mediaLibrary.queryVideos();
console.log(videoList);

二、总结:
功能 适用场景 常见操作
音频 播放与录制音频 播放音频、录制音频、调节音量
视频 播放与录制视频 播放视频、调节播放进度与音量
相机 拍照与录制视频 拍照、摄像
媒体库 管理设备上的音视频文件 获取本地媒体文件、查询文件元数据

通过这些多媒体功能,鸿蒙为开发者提供了全面的音视频处理和管理工具,帮助实现丰富的多媒体应用场景。

4-蓝牙 / NFC / WiFi 管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
在鸿蒙 ArkTS 中,蓝牙、NFC 和 WiFi 管理 使开发者能够方便地实现设备之间的无线通信和数据交换,
支持常见的无线技术如蓝牙、近场通信(NFC)以及WiFi连接。

一、无线通信管理:
1.1 蓝牙(Bluetooth)
作用:用于管理蓝牙设备的连接与数据传输,包括搜索、配对和连接。
常见操作:
-搜索附近的蓝牙设备
-连接和断开蓝牙设备
-发送和接收数据
示例:
import { Bluetooth } from '@ohos.bluetooth';
const bluetooth = new Bluetooth();
bluetooth.scan().then(devices => {
console.log('扫描到的蓝牙设备:', devices);
});

1.2. NFC(Near Field Communication)
作用:用于近场通信技术,支持设备之间的快速无线交换数据。
常见操作:
-扫描和读取NFC标签
-发送NFC数据
示例:
import { Nfc } from '@ohos.nfc';
const nfc = new Nfc();
nfc.scanTag().then(tag => {
console.log('扫描到的NFC标签:', tag);
});

1.3. WiFi(WiFi)
作用:用于管理设备的WiFi连接,包括连接、断开、扫描网络等。
常见操作:
-扫描可用WiFi网络
-连接和断开WiFi网络
-获取WiFi网络的状态

示例:
import { Wifi } from '@ohos.wifi';
const wifi = new Wifi();
wifi.scan().then(networks => {
console.log('可用WiFi网络:', networks);
});

二、总结:
功能 适用场景 常见操作
蓝牙 蓝牙设备连接与数据传输 搜索设备、连接设备、数据传输
NFC 近场通信设备的数据交换 扫描和读取NFC标签、发送NFC数据
WiFi 管理WiFi网络连接 扫描网络、连接/断开WiFi、获取网络状态

通过这些无线通信管理功能,鸿蒙提供了全面的蓝牙、NFC和WiFi管理接口,
开发者可以方便地实现设备之间的无线通信与数据交互。

5-位置与地图服务(定位服务、地图接入)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
在鸿蒙 ArkTS 中,位置与地图服务 提供了定位和地图功能,
开发者可以通过定位服务获取设备的地理位置,同时接入地图服务实现地图显示和导航功能。

一、位置与地图服务:
1.1 定位服务(Location Service)
作用:提供设备的地理位置,包括经度、纬度、海拔等信息,支持GPS、Wi-Fi、基站等定位方式。
常见操作:
-获取设备当前位置信息
-设置定位精度和更新频率

示例:
import { Location } from '@ohos.location';
const location = new Location();
location.getCurrentPosition().then(position => {
console.log('当前位置:', position);
});

1.2. 地图接入(Map Integration)
作用:通过接入地图服务,开发者可以将地图嵌入到应用中,实现地图显示、标记、路线规划等功能。
常见操作:
-显示地图
-在地图上添加标记
-实现路线导航

示例:
import { Map } from '@ohos.map';
const map = new Map();
map.show().then(() => {
map.addMarker({latitude: 39.9, longitude: 116.4}); // 在指定位置添加标记
});

二、总结:
功能 适用场景 常见操作
定位服务 获取设备的实时地理位置 获取经纬度、设置定位精度
地图接入 在应用中显示地图、实现导航功能 显示地图、添加标记、路线规划


通过这些位置与地图服务,鸿蒙提供了强大的地理位置定位与地图功能,开发者可以在应用中实现精准的定位与地图交互。

2.5、跨端与分布式能力

1-分布式数据管理(DDM)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
在鸿蒙系统中,分布式数据管理(DDM,Distributed Data Management) 
是支持多设备间数据共享与协同的关键能力,确保不同设备之间的数据可以无感知、实时同步。

一、核心特点:
-分布式共享:支持多个设备间共享同一份数据副本。
-数据同步:数据变更后可自动同步到其他可信设备。
-数据一致性:保障数据在多设备上的一致性与安全性。
-多设备协同:实现如手机控制电视、手表同步提醒等场景的数据互通。

二、常见应用场景:
-在手机和手表之间同步健康数据;
-在平板上继续编辑手机未完成的文档;
-家庭设备共享日程、备忘、媒体库等数据;

三、开发使用方式(ArkTS 简例):
import distributedKVStore from '@ohos.data.distributedKVStore';
let kvManager = distributedKVStore.createKVManager({
bundleName: 'com.example.demo',
context: getContext(this)
});

let kvStore = kvManager.getKVStore('demoStore');
kvStore.put('userName', 'Alice');
kvStore.get('userName').then(value => {
console.log('获取到用户名:', value);
});

总结:
能力 描述
分布式 KV 存储 键值对方式存储分布式数据
实时同步 自动同步数据到可信设备
高可用与一致性 多端数据一致、高可靠
多设备无缝协同 支持一云多端的流转与无感交互体验

DDM 是鸿蒙多设备协同体验的核心基石之一。

2-分布式任务调度(DTS)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
在鸿蒙系统中,分布式任务调度(DTS,Distributed Task Scheduling) 
是实现多设备协同运行、任务跨设备流转的关键能力,支持将某设备上的任务调度至其他可信设备上执行。

一、核心特点:
-任务下发:可以将任务从一个设备转移到另一个设备执行;
-分布式调度能力:系统根据设备性能、状态等因素,智能选择合适设备运行任务;
-设备感知无关性:用户无需关心任务在哪个设备上执行,实现无感体验;
-安全可信机制:基于设备认证与通信安全机制,保障调度过程安全可控;

二、典型应用场景:
-在手机上编辑文档,自动切换到平板继续;
-在手表上接收通知,唤醒手机启动对应应用;
-视频播放从手机无缝切换到电视继续播放;

三、开发使用方式(ArkTS 简例):

import distributedSchedule from '@ohos.distributedschedule';
distributedSchedule.startRemoteAbility({
deviceId: 'device123',
bundleName: 'com.example.remoteapp',
abilityName: 'RemoteAbility'
});

四、总结:
能力 描述
远程任务调用 启动/调用远程设备上的 Ability
分布式调度策略 系统根据场景与性能自动调度任务
多设备任务协同 跨设备处理同一业务逻辑,提升协作效率

DTS 是鸿蒙“一次开发,多端部署”理念的重要实现基础,助力构建无缝、多设备协同的智慧生态体验。

3-分布式软总线(SoftBus)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
在鸿蒙系统中,分布式软总线(SoftBus) 是实现设备间高效、低延迟通信的核心技术,
构建统一的通信基础设施,支持多设备之间的自动发现、连接和数据传输。

一、核心特点:
-设备自动发现:可发现同一网络下或附近的可信设备;
-高速传输:支持大带宽、低延迟、高并发的传输能力;
-多种连接方式统一封装:整合 Wi-Fi、蓝牙、NFC 等连接协议;
-跨设备通信无感知:上层应用开发无需关心通信底层细节;
-安全可信机制:保障通信数据的安全与隐私;

二、典型应用场景:
-手机与电视之间一键投屏;
-手表与手机之间同步通知或健康数据;
-多设备间数据文件互传;
-多终端联合播放或游戏协同;

三、开发使用方式简例(ArkTS 思路):

import distributedDeviceManager from '@ohos.distributedDeviceManager';
let deviceManager = distributedDeviceManager.createDeviceManager('com.example.app');
deviceManager.on('deviceFound', (device) => {
console.log('发现设备:', device.deviceName);
});
deviceManager.startDeviceDiscovery();

总结:
能力 描述
统一通信底座 统一封装各种物理连接能力(Wi-Fi、BLE、NFC)
自动发现与认证连接 无需手动配置,系统自动管理设备发现与认证流程
高性能数据通道 支持实时音视频、文件传输等高带宽需求
安全可信传输 提供可信认证、加密通道保障通信数据安全

SoftBus 是鸿蒙实现多设备协同通信的“神经网络”,也是分布式能力的通信基石

4-多端设备协同(如鸿蒙超级终端)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
多端设备协同 是鸿蒙操作系统(HarmonyOS)的一大核心亮点,
通过“超级终端”理念,实现手机、平板、手表、电视、车机等多个设备间的无缝连接与智能协作。

一、核心理念:
-一次开发,多端部署:一套代码可在不同终端运行,自适应交互与布局。
-能力互助,资源共享:设备之间可共享摄像头、麦克风、屏幕、算力等硬件资源。
-无缝体验流转:应用或任务可在多设备间无感切换,比如视频播放从手机流转至电视。
-分布式系统能力支撑:基于分布式软总线、DTS、DDM 等核心技术构建。

二、典型协同场景:
场景 描述
多设备通话协同 手机来电,手表/平板同步接听
文档流转协同 在平板上编辑文档,回家后自动在电脑上继续编辑
视频播放协同 手机看剧 → 一键流转至智慧屏继续播放
会议协同 手机会议中 → 一拉即合与电脑组建超级终端共享摄像头与麦克风

三、技术支撑模块:
-分布式软总线(SoftBus):设备互联通信能力
-分布式任务调度(DTS):任务跨设备运行调度
-分布式数据管理(DDM):跨设备数据同步与共享
-FA/Stage 模型能力调用:设备能力抽象与复用

总结:
鸿蒙多端协同不是“简单连接”,而是实现“设备融合”,让多个终端组成一个超级终端生态,构建以人为中心的无缝智慧体验。

2.6、系统服务与安全

1-账号与认证服务(Account Kit)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
鸿蒙的 账号与认证服务(Account Kit) 提供统一的账号管理与身份认证能力,
支持用户在多设备、多应用中实现一次登录、统一身份认证、权限控制等功能。

一、核心功能:
-账号统一管理:支持注册、登录、登出、注销等完整账号生命周期管理;
-多端同步:账号登录状态可在多个设备间同步;
-认证服务支持:支持密码、短信、第三方、OAuth 等多种登录方式;
-权限控制与鉴权:为应用和服务提供用户权限校验和访问控制;
-设备级身份标识:可获取唯一设备标识用于信任认证或分布式协同;

二、典型应用场景:
场景 描述
一次登录,多设备同步 手机登录账号后,手表/电视自动同步账号信息
第三方应用授权登录 App 使用 Harmony 账号授权登录,无需单独注册
跨设备服务鉴权 进行分布式操作前,先进行身份认证,确保用户数据安全

三、开发使用示意(ArkTS):

import account from '@ohos.account.osAccount';
let osAccount = await account.getOsAccountLocalIdFromProcess();
console.log("当前设备登录账号 ID:", osAccount);

总结:
Account Kit 是鸿蒙实现“以人为中心、多设备共享”的身份基础服务,
它为应用提供安全、统一的用户认证与管理能力,是分布式体验的基石之一。

2-系统能力接口(Syscap)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
系统能力接口(Syscap, System Capability) 是鸿蒙操作系统用于描述和管理系统功能能力的机制,
帮助开发者根据设备特性和系统配置灵活调用对应功能。

一、核心作用:
-能力声明与识别:明确一个功能模块在系统中是否可用;
-按需编译与裁剪:不同设备可裁剪不需要的系统能力,减少资源开销;
-版本兼容与适配:保障跨设备、跨版本开发的一致性和稳定性;
-权限控制基础:部分系统能力受限于权限声明,需在配置文件中标明使用意图。

二、Syscap 示例分类:
Syscap 分类 示例能力
SystemCapability.FileManagement 文件访问、读写能力
SystemCapability.Communication.Bluetooth 蓝牙功能支持
SystemCapability.Multimedia.Audio 音频录制与播放
SystemCapability.DistributedDataManager 分布式数据能力
SystemCapability.UserIAM.Authentication 用户身份认证能力

三、使用场景:
-判断设备是否支持某项系统能力
-防止调用不支持能力时报错或崩溃
-提高代码兼容性与健壮性

四、示例代码(ArkTS):

import abilityFeatureAbility from '@ohos.ability.featureAbility';
import systemCapability from '@ohos.systemCapability';
let hasBluetooth = systemCapability.hasSystemCapability("SystemCapability.Communication.Bluetooth");
if (hasBluetooth) {
console.log("设备支持蓝牙功能");
} else {
console.log("设备不支持蓝牙");
}

总结:
Syscap 是构建“软硬解耦、多设备差异适配”架构的关键机制,
保障鸿蒙应用在不同终端上按需调用系统能力,提升兼容性、灵活性与安全性。

3-安全机制(应用签名、权限控制、沙箱隔离)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
鸿蒙系统通过应用签名、权限控制、沙箱隔离等机制,构建多层次的安全保障体系,确保应用运行安全与用户数据隐私。

1. 应用签名
-每个应用必须使用开发者的证书签名;
-安装时校验签名,防止应用被篡改;
-同一签名的应用可实现数据共享(如共享数据目录);

2. 权限控制
-权限需在 module.json5 中声明;
-敏感权限需用户运行时授权,如相机、麦克风、位置信息;
-按照权限级别分为:普通权限、受限权限、系统权限;
-系统通过权限校验,防止越权访问;

"requestPermissions": [
{
"name": "ohos.permission.CAMERA"
}
]

3. 沙箱隔离
-每个应用运行在独立沙箱环境中,彼此隔离;
-应用数据目录不可被其他应用访问;
-防止恶意应用干扰或窃取其他应用数据;

总结:
鸿蒙的安全机制从开发到运行全过程防护,利用签名验证身份、权限限制访问、沙箱保护边界,
为用户和设备构筑可靠的安全屏障。

2.7、开发工具与调试

1-DevEco Studio(鸿蒙官方IDE)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DevEco Studio 是华为官方推出的鸿蒙系统专属集成开发环境(IDE),
用于开发 OpenHarmony 与 HarmonyOS 应用。

一、核心特点:
-基于 JetBrains IntelliJ 平台定制;
-原生支持 ArkTS、Java、eTS 等鸿蒙开发语言;
-内置丰富模板、代码补全、UI 可视化设计;
-支持模拟器预览、多设备协同调试与部署;
-提供应用签名、打包、发布等全流程支持;

二、主要功能模块:
模块 功能描述
项目管理 快速创建 Stage / FA 模型项目
ArkTS 编辑器 提供语法高亮、智能提示、快速跳转、代码检查等
UI 设计器 可视化拖拽构建鸿蒙 ArkUI 界面
模拟器与调试工具 支持模拟器调试、真机调试、多设备调试
DevEco Device Tool 配套设备管理工具,连接调试实物设备(手机、手表等)
应用打包与发布 支持 HAP 构建、签名、部署到远程设备或平台

总结:
DevEco Studio 是开发鸿蒙应用的核心 IDE 工具,
集成编写、调试、构建、预览、发布于一体,是提升鸿蒙开发效率的官方利器。

2-调试与日志(Hilog、调试器、性能分析工具)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
在鸿蒙应用开发中,调试与日志工具是排查问题和优化性能的重要手段,主要包括:

1. Hilog(鸿蒙日志系统)
-类似 Android 的 Log 系统;
-支持分级输出(Debug、Info、Warn、Error);
-可通过 hilog 命令查看或过滤日志:

import hilog from '@ohos.hilog';
hilog.info(0x0000, 'MyTag', '这是一条信息日志');

2. 调试器(Debugger)
-DevEco Studio 提供断点调试功能;
-支持设置条件断点、变量查看、调用栈跟踪等;
-支持远程真机调试(通过 USB 或 Wi-Fi);

3. 性能分析工具

工具 功能描述
Profiler 分析应用 CPU、内存、线程等运行情况
UI 渲染分析 检查 UI 卡顿、掉帧等性能问题
内存泄漏检测工具 捕获对象分配与释放,识别潜在泄漏问题
DevEco Device Tool 可管理设备、查看设备日志、导出分析数据

总结:
鸿蒙通过 Hilog、调试器与性能分析工具,为开发者提供全面的调试与优化能力,助力高质量应用开发与运行保障。

3-模拟器与真机测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
模拟器与真机测试是鸿蒙应用开发中的两种主要测试方式,各自有其特点和应用场景。

1. 模拟器测试
-模拟器是通过软件模拟硬件环境,允许开发者在电脑上模拟不同类型的设备(如手机、手表、车机等)。
-适合早期开发阶段、快速验证功能和 UI 布局。
-支持多设备、多分辨率等多种环境配置,能够模拟不同的操作系统版本和硬件配置。
-缺点:性能较差,无法完全模拟真机的实际性能表现。

2. 真机测试
-真机测试是在实际设备上运行应用,能够真实地测试性能、交互和硬件兼容性。
-支持通过 USB 或无线连接方式将应用部署到真机设备上进行调试和测试。
-可以验证实际硬件接口(如蓝牙、摄像头、传感器等)和性能(如运行速度、功耗等)。
-缺点:需要物理设备,调试过程相对较为繁琐。

总结:
模拟器测试适用于快速开发、UI 布局和功能验证,而 真机测试 则更适合检查性能、硬件兼容性以及用户体验。
开发者通常需要结合使用两者,确保应用在不同环境下的稳定性和性能。

4-应用包结构(.hap)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
应用包结构(.hap) 是鸿蒙系统中应用的打包格式,用于存放和分发应用。.hap 文件是鸿蒙应用的安装包,包含应用的所有资源、代码和配置文件。

.hap 文件结构:
-assets/:存放应用的资源文件,如图片、音频等;
-libs/:包含应用的原生库文件(如 .so 文件);
-res/:包含应用的资源文件,如布局、字符串、样式等;
-ohos/:存放应用的相关配置文件,如 module.json5;
-resources.arsc:包含应用的资源索引信息;
-bundle/:应用代码文件和资源文件的打包目录;
-module.json5:应用模块的描述文件,定义应用的基本信息、权限等。

总结:
.hap 文件是鸿蒙应用的安装包格式,通过将代码、资源、配置文件等打包在一个文件中,便于分发和安装。
它的结构灵活且易于扩展,支持各种不同的设备与应用类型。

2.8、应用生态与分发

1-应用上架(华为应用市场)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
应用上架(华为应用市场) 是指将开发完成的鸿蒙应用发布到华为应用市场(HUAWEI AppGallery),
使用户可以下载、安装和使用。
上架过程包括以下几个步骤:

1. 注册开发者账号
开发者需在华为开发者联盟官网注册并完成开发者认证,获得开发者账号。

2. 准备应用包
准备好 .hap 文件,确保应用符合市场规范,并已进行充分的测试和优化。

3. 提交应用信息
-在华为开发者后台填写应用的基本信息,包括应用名称、描述、截图、版本号等。
-配置应用的分类、标签和支持的设备类型。

4. 进行安全检测与审核
-提交应用后,华为会对应用进行安全检测、隐私政策检查等审核流程,确保应用符合市场的安全规范。
-审核通过后,应用会被发布到华为应用市场。

5. 更新与维护
-上架后,开发者可以通过开发者后台提交更新版本,改进应用功能或修复已知问题。
-需要定期维护应用,确保其与最新的鸿蒙系统版本兼容,并持续优化用户体验。

总结:
应用上架 是将开发好的鸿蒙应用发布到华为应用市场的过程,开发者需要注册账号、准备应用包、提交信息并通过审核。
成功上架后,应用即可面向全球用户分发和下载。

2-多 .hap 合包、多模块能力包(Feature/Entry)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
多 .hap 合包 和 多模块能力包(Feature/Entry) 是鸿蒙系统中应用打包与发布的高级特性,
允许开发者将多个功能模块或能力集成到一个应用中,以实现灵活的应用功能管理和分发。

1. 多 .hap 合包
定义:多个 .hap 文件可以打包成一个整体应用包,这样可以根据不同的设备或需求动态选择需要的模块进行安装。
应用场景:适用于设备种类多样、功能模块化的应用,可以减少应用包的体积并提高安装效率。
特点:支持按需加载不同的模块,减轻设备存储压力。

2. 多模块能力包(Feature/Entry)
Feature(特性):指应用中的某个具体功能模块,通常包括代码、资源和配置文件。通过将功能划分为独立的模块,可以灵活更新和替换。
Entry(入口):为每个功能模块提供一个独立的入口,通过配置文件管理模块间的依赖和启动顺序。
应用场景:适用于复杂应用或跨平台开发,可以按需下载和更新各个模块,提升系统灵活性。

总结:
多 .hap 合包 和 多模块能力包 提供了更灵活的打包和管理机制,
能够让开发者根据不同设备和需求,动态分配功能模块,优化应用的存储和加载效率。

3-应用签名与加固

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
应用签名与加固 是确保鸿蒙应用安全性和完整性的关键技术。
它们主要用于防止应用被篡改、反编译和非法复制,同时确保应用的合法性和可信度。

1. 应用签名
定义:应用签名是对应用进行数字签名,以确保应用的来源和完整性。每个开发者或发布者都有一个唯一的私钥,使用私钥对应用进行签名,用户在安装时通过公钥验证签名的合法性。

作用:
-防止应用被篡改;
-保证应用的来源可靠;
-允许系统识别应用版本,便于升级管理。

2. 应用加固
定义:应用加固是通过技术手段增强应用的安全性,防止应用被逆向工程、反编译或破解。
常见的加固方式包括代码混淆、加密、反调试、防篡改等。

作用:
-防止应用被破解和逆向;
-保护敏感数据,如用户隐私、加密密钥等;
-增强应用的抗攻击能力。

总结:
应用签名 确保了应用的来源和完整性,而 应用加固 则通过增强应用的防护能力,避免应用被破解、篡改或恶意攻击。
两者结合使用可以有效提高应用的安全性。

3-版本管理与灰度发布

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
版本管理与灰度发布 是应用发布和更新中的重要策略,旨在提高版本控制的灵活性和更新的稳定性。

1. 版本管理
定义:版本管理是对应用的不同版本进行管理和控制,确保每个版本的发布、回退和更新都有明确的记录和可追溯性。

作用:
-通过版本号区分不同版本,便于升级和降级;
-管理功能迭代和bug修复,确保不同版本间的兼容性;
-可以通过版本控制系统管理源代码和构建流程。

2. 灰度发布
定义:灰度发布是一种逐步推出新版本的发布策略,通过将新版本首先推送给小部分用户,
然后根据反馈逐步扩大范围,最终实现全量发布。

作用:
-降低新版本引发大规模问题的风险;
-通过小范围用户的反馈,发现和修复潜在问题;
-在确保稳定性和兼容性的基础上,逐步推送更新。

总结:
版本管理 使得应用的不同版本有序可控,确保版本的稳定与兼容性;
而 灰度发布 通过逐步推出新版本,降低了风险,并能够根据用户反馈不断优化应用,确保更新的平稳过渡。

2.9、高阶进阶能力

1-自定义 ArkTS 组件库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
自定义 ArkTS 组件库 是在鸿蒙开发中,通过 ArkTS 语言自定义和封装的可复用组件集合,用于构建应用的界面和功能。

一、自定义 ArkTS 组件库的步骤:
1.1 定义组件:
-使用 ArkTS 语言定义组件的结构和功能,指定组件的属性、方法和事件。
-例如,定义一个简单的按钮组件,包括点击事件和样式设置。

1.2 组件样式与布局:
-使用 @Component 装饰器标记组件,配置组件的布局和样式。
-通过声明式 UI 设计,定义组件的视觉效果(如颜色、边框、大小等)。

1.3 组件逻辑:
-编写 ArkTS 代码处理组件的逻辑,比如交互操作、数据处理等。
-可以通过 @State 管理组件的状态,@Prop 设置组件的外部属性。

1.4 封装与复用:
-将多个相关功能封装为一个组件,提升代码的复用性。
-可以在不同页面或模块中引入和使用这些自定义组件。

1.5 发布组件库:
将自定义的 ArkTS 组件库打包成可发布的格式,供其他开发者使用或直接用于项目开发。

总结:
自定义 ArkTS 组件库 使得开发者能够通过 ArkTS 封装常用的 UI 元素和功能,
提升开发效率和代码复用性,适用于鸿蒙系统应用开发中的组件化设计。

2-自定义动画与状态联动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
自定义动画与状态联动 是在应用开发中,通过自定义动画和状态管理机制,
实现组件的动态效果和交互响应,提升用户体验。

一、自定义动画
定义:自定义动画是通过编程控制元素的视觉效果(如位置、透明度、缩放等)变化,实现动态过渡效果。

实现方式:
-在 ArkTS 中使用 AnimationController 控制动画的开始、暂停、完成等状态。
-可以使用 Tween 来定义动画的变化曲线,例如线性、弹性、加速等。
-通过设置动画的持续时间、延迟和方向,实现个性化的动画效果。

二、状态联动
定义:状态联动是指组件的状态与动画的触发和更新相互关联,实现交互时动画和界面元素的同步变化。

实现方式:
-使用 @State 管理组件的状态,通过状态变化控制动画的开始和停止。
-利用 @Watch 监听状态的变化,当状态改变时,自动触发相关的动画效果。
-状态变化和动画效果联动,可以根据用户交互(如按钮点击、滑动等)来动态调整界面元素的显示。

总结:
自定义动画与状态联动 通过将动画效果与组件状态进行结合,使得应用的界面更加生动和互动。
通过状态的变化触发相应的动画效果,提升了用户体验和交互性。

3-OpenHarmony 对接 OpenSource 项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
OpenHarmony 对接 OpenSource 项目 是指在 OpenHarmony 操作系统中,
集成和使用开源项目以扩展系统功能、提升开发效率或提供更多的应用支持。

一、对接步骤:
1.1 选择适合的开源项目:
选择与 OpenHarmony 兼容或适合的开源项目,如常见的网络库、图像处理库、数据库、第三方框架等。

1.2 适配 OpenHarmony 环境:
由于OpenHarmony基于微内核架构,开发者需要确保所选的开源项目能与OpenHarmony的微内核、系统服务和硬件接口兼容。
可能需要修改项目中的部分代码,或者通过提供相应的适配层使其能够在 OpenHarmony 环境中运行。

1.3 集成和封装:
-将开源项目的功能集成到 OpenHarmony 应用中,通常使用 API 接口进行调用。
-根据项目需求,可能需要将开源项目封装为 Ability 或 Service,以便在 OpenHarmony 系统中调用。

1.4 测试与优化:
-在 OpenHarmony 的开发环境中对集成后的开源项目进行充分测试,确保其在多设备、多终端的场景下稳定运行。
-根据系统特性,进行性能优化和资源管理,确保开源项目能够充分利用 OpenHarmony 的优势。

总结:
OpenHarmony 对接 OpenSource 项目 使得开发者能够充分利用现有的开源生态,
扩展OpenHarmony系统的功能和应用场景,同时通过适配和优化,保证开源项目在OpenHarmony环境下的高效和稳定运行

3-多端融合设计模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
多端融合设计模式 是一种跨多个设备和平台的应用开发模式,旨在通过统一的设计和开发流程,
实现不同终端(如手机、平板、手表、电视等)之间的无缝协作与一致体验。

一、核心理念:
1.1 统一设计:
-针对不同设备,采用统一的设计规范和原则,确保视觉效果和交互体验的一致性。
-通过响应式布局和灵活的UI组件,自动适配不同屏幕尺寸和分辨率。

1.2 共享逻辑:
-抽象和共享应用的核心逻辑,使得不同平台的应用能够使用相同的业务逻辑和功能模块。
-使用跨平台框架(如 Flutter、React Native)或者平台特定的工具(如 OpenHarmony)来实现代码复用。

1.3 适配与定制:
-根据不同设备的特性和限制进行适配和定制,确保用户在每个设备上都能获得最佳体验。
-可以根据设备类型(如手持设备、穿戴设备、车载设备)提供不同的功能和交互方式。

1.4 跨平台通信:
在多端设备间实现数据和状态的同步与共享,例如通过云端同步、蓝牙、WiFi等技术实现设备间的实时通信。

总结:
多端融合设计模式 通过统一的设计与共享逻辑,提升跨设备、跨平台应用的开发效率,
同时保证了用户在不同设备上的一致性体验和高效互动。

4-高性能渲染优化(List卡顿、图片懒加载、页面预加载)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
高性能渲染优化 是在应用开发中,通过优化渲染流程,提升页面加载和渲染的性能,
避免卡顿和延迟,确保流畅的用户体验。

一、优化策略:
1.1 List卡顿优化:
-懒加载(Lazy Loading):仅加载当前可视区域的列表项,避免一次性加载大量数据,减少内存占用和渲染压力。
-虚拟列表:使用虚拟滚动技术,动态加载和卸载列表项,确保长列表的流畅渲染。
-合并重绘和重排:减少不必要的界面更新,避免频繁的布局和渲染操作。

1.2 图片懒加载:
-延迟加载图片:仅当图片进入可视区域时再加载,减少初始加载时的资源消耗。
-占位图:为未加载的图片显示占位图,提升页面渲染的流畅度和用户体验。
-图片压缩与格式优化:优化图片格式(如WebP),减少图片的大小,加快加载速度。

1.3 页面预加载:
-预加载关键资源:在页面还未完全加载时,预先加载即将访问的页面资源,提高页面切换的响应速度。
-资源缓存:使用浏览器或本地存储缓存常用资源,避免重复请求,提升加载速度。
-异步加载:通过异步加载非核心资源,避免阻塞页面渲染,提高首屏渲染速度。

总结:
高性能渲染优化 通过合理的懒加载、虚拟列表、图片优化和预加载策略,
减少不必要的资源消耗和页面渲染压力,提升应用的响应速度和流畅度,优化用户体验。

2.10、鸿蒙面试常见问题关键词

1-ArkTS 与 TypeScript 区别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
ArkTS 与 TypeScript 区别 主要体现在语言特性、开发环境和运行时的差异,
虽然它们在语法和功能上有一定的相似性,但 ArkTS 作为鸿蒙操作系统(OpenHarmony)开发的语言,
具有一些独特的特点。

一、主要区别:
1.1 目标平台不同:
ArkTS:专为鸿蒙操作系统(OpenHarmony)设计,
面向多设备、多平台(手机、手表、电视、车载等)开发,支持微内核架构和分布式系统。

TypeScript:广泛用于网页和前端开发,主要面向浏览器和Node.js环境,适用于各种JavaScript运行时。

1.2 语法与特性:
ArkTS:在TypeScript基础上扩展了更多与鸿蒙系统相关的特性,
例如支持异步操作、更好的分布式能力和多设备协同功能。

TypeScript:是JavaScript的超集,提供静态类型检查、接口、泛型等特性,但不直接支持鸿蒙特有的架构和系统能力。

1.3 运行时环境:
-ArkTS:运行在鸿蒙的ArkVM(虚拟机)上,专为支持微内核架构和多端设备协同设计,能够高效利用鸿蒙的系统特性。
-TypeScript:运行在JavaScript引擎(如V8、SpiderMonkey等)上,主要依赖于传统的Web平台和Node.js环境。

1.4 并发与分布式能力:
ArkTS:
提供更好的分布式计算和设备协同能力,支持鸿蒙的多端协同和微内核架构,
能够高效管理不同设备间的任务调度和资源共享。

TypeScript:没有内建的分布式或多设备支持,依赖外部库和服务来实现类似功能。

总结:
ArkTS 作为鸿蒙系统的专用语言,针对微内核和多端设备优化,具备更强的分布式能力和设备协同支持。
而 TypeScript 是一种通用的编程语言,主要用于Web和Node.js开发,在分布式和多设备的支持上不如ArkTS。

2-鸿蒙多端部署原理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
一、概念
鸿蒙多端部署原理 是指在鸿蒙操作系统中,通过统一的框架和协议,
实现不同设备(如手机、手表、平板、电视、车载等)之间的协同工作和资源共享。
通过这种方式,鸿蒙系统能够在多个终端之间实现跨平台部署和无缝互联。

二、原理概述:
2.1 分布式能力:
鸿蒙系统通过 分布式技术,让多个设备形成一个虚拟的协同工作环境。
不同设备上的应用可以共享数据和资源,提供一致的用户体验。

2.2 统一的应用框架:
鸿蒙应用采用统一的开发框架(如ArkTS),使得开发者能够编写一次应用代码,
适配到多个不同的硬件平台和设备类型,无需为每个平台单独开发。

2.3 分布式软总线(SoftBus):
通过 SoftBus,不同设备之间能够实现低延迟、高吞吐的通信,确保数据和指令在设备之间的高效传输和同步。

2.4 设备能力感知:
鸿蒙系统能够根据设备的硬件能力(如屏幕尺寸、处理能力、传感器等)自动适配应用界面和功能,
实现 跨设备适配,提升用户体验。

2.5 微内核架构:
鸿蒙采用微内核架构,增强了操作系统的安全性、稳定性和资源隔离能力,
同时也使得不同设备间的协作更加高效,能够更好地支持多端应用的部署和管理。

2.6 分布式任务调度:
通过 分布式任务调度(DTS),鸿蒙系统能够合理地将任务分配到各个设备上,
优化资源的利用,并确保各端之间的协同工作。

总结:
鸿蒙多端部署原理 通过分布式技术、统一框架、软总线通信和微内核架构,
实现了跨设备的无缝协作和资源共享,保证了不同终端上的应用能够高效部署和运行。

3-ArkTS 编译流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
一、概念
ArkTS 编译流程 是指将 ArkTS(鸿蒙自研语言)源代码转化为可执行文件或字节码的过程。
该流程包括从源代码解析、语法检查,到编译、优化,再到生成可在鸿蒙操作系统上运行的目标文件。

二、ArkTS 编译流程概述:
2.1源代码解析:
编译器首先将 ArkTS 源代码进行 词法分析 和 语法分析,生成 抽象语法树(AST),以便后续的编译处理。

2.2 语法检查与优化:
编译器对源代码进行语法检查,确保代码没有语法错误。接着,进行代码优化,消除冗余的代码结构,提高代码的执行效率。

2.3 中间代码生成:
编译器将经过优化的源代码转换为中间字节码,这种字节码是与平台无关的,可通过鸿蒙的ArkVM(虚拟机)进行解释执行。

2.4 目标代码生成:
将中间字节码转换为 机器码,使得最终生成的应用能够在不同的设备平台上运行。

2.5 打包与部署:
编译完成后,生成的目标代码和资源文件会被打包为 .hap 文件(鸿蒙应用包),可以进行部署和安装到目标设备上。

2.6 运行时环境(ArkVM):
在设备上运行时, ArkVM 会将字节码转换为对应的机器码并执行,从而确保应用的跨平台兼容性。

总结:
ArkTS 编译流程 通过源代码解析、语法检查、优化和字节码生成等步骤,最终生成可在鸿蒙设备上运行的机器码。
这个流程确保了 ArkTS 代码能够在不同硬件平台之间进行有效部署和执行。

4-Stage模型生命周期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
一、概念
Stage模型生命周期 是鸿蒙应用在 Stage 模型架构下运行时的生命周期管理机制,
主要通过 Lifecycle 回调进行状态感知与管理,适用于 ArkTS 开发的应用。

二、主要生命周期回调:
2.1 onCreate():应用创建时调用,用于初始化资源和环境。
2.2 onWindowStageCreate():页面窗口创建完成时调用,可进行 UI 初始化。
2.3 onForeground():应用切入前台时触发,适合恢复状态或刷新数据。
2.4 onBackground():应用切入后台时触发,适合释放资源或保存状态。
2.5 onWindowStageDestroy():页面窗口销毁时触发,适合释放 UI 相关资源。
2.6 onDestroy():应用销毁时调用,用于释放全局资源。

总结:
Stage 模型生命周期以 AbilityStage 为入口,结合 WindowStage 管理界面窗口,
其精细化的生命周期回调便于开发者更灵活地控制应用行为,适应多窗口、多设备协同等复杂场景。

5-页面跳转机制与参数传递

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
面跳转机制与参数传递 是鸿蒙应用中常用的导航与数据通信方式,主要依赖于 router 模块实现。

一、基本跳转方法:
1.1 跳转到新页面:
router.push({
url: 'pages/DetailPage',
params: {
id: 1001,
name: '详情页'
}
})

1.2 返回上一页:router.back()

1.3 替换当前页面(不保留历史):
router.replace({
url: 'pages/LoginPage'
})

二、参数传递与获取:
传参:通过 push 的 params 字段传递数据;
接收:在目标页面中使用@Entry修饰的aboutToAppear()生命周期函数中通过router.getParams()获取参数:

@Entry
@Component
struct DetailPage {
aboutToAppear() {
let params = router.getParams()
console.log(params.id, params.name)
}
}

总结:
鸿蒙 ArkTS 提供了简洁统一的页面跳转与参数传递方式,便于多页面状态管理与模块解耦。

6-鸿蒙分布式数据一致性实现原理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
一、概念
鸿蒙分布式数据一致性实现原理 主要依赖 分布式数据管理(DDM)框架,
结合软总线、账户体系及数据同步协议,实现跨设备数据一致性与自动同步。

二、核心机制:
2.1 基于 KV 数据模型(分布式 KV 存储)
支持 单设备 和 多设备 数据存储,开发者通过 distributedKvStore 接口访问。

2.2 设备发现与认证
通过软总线(SoftBus)进行多设备发现与通信,结合账户体系实现安全可信设备认证。

2.3 自动同步机制
设置同步策略后,系统会在设备上线、网络变化等场景自动同步数据。

2.4 数据冲突解决
内置时间戳、版本号策略,支持自定义冲突解决函数(如 merge callback)。

2.5 数据监听机制
支持注册数据变更监听器,确保设备间数据实时同步更新。

总结:
鸿蒙分布式数据一致性通过软总线、分布式 KV 存储与系统级同步协议,
保障多端数据一致、实时同步,适用于超级终端等多设备协同场景。

7-DevEco Studio 插件开发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
一、概念
DevEco Studio 插件开发 是指基于鸿蒙官方 IDE —— DevEco Studio,
为开发者定制开发体验、扩展工具功能的过程。
其插件开发机制与 Android Studio / IntelliJ IDEA 相似,基于 IntelliJ 平台插件架构。

二、开发流程简述:
2.1 环境准备:
-安装 DevEco Studio;
-配置 JDK(推荐 17);
-使用 Gradle 构建 IntelliJ 插件工程。

2.2 创建插件项目:
-可通过 IntelliJ Platform Plugin 模板快速创建;
-设置 plugin.xml 描述插件信息与扩展点。

2.3 功能开发:
-支持自定义菜单栏、工具窗口、代码生成器、UI 工具等;
-可访问 IDE 内部 API,如项目结构、编辑器、控制台输出等。

2.4 打包与部署:
-通过 Gradle 任务 buildPlugin 打包 .zip;
-可安装到 DevEco Studio 测试,或发布到华为插件市场(如支持)。

三、常见应用场景:
-代码模板生成器;
-ArkTS 项目助手;
-ArkUI 组件预览器;
-一键打包/签名工具等。

总结:
DevEco Studio 插件开发可以极大提升鸿蒙开发效率与工具链扩展能力,
适合对 IDE 有深入定制需求的团队或个人开发者。