Harmony基础

102 阅读9分钟

文件目录

MyHarmonyOSProject/
|-- config.json            # 项目配置文件,包括应用的基本信息和配置
|-- entry/                 # 应用的入口文件目录
|   |-- main.js            # 应用的主入口文件,通常包括应用的启动逻辑
|-- resources/             # 资源文件目录,包括图标、图片、字体等资源
|   |-- icons/
|   |-- images/
|   |-- fonts/
|-- src/                   # 应用的源代码目录
|   |-- pages/             # 存放页面组件的目录
|   |   |-- HomePage.js     # 应用的首页页面组件
|   |-- components/        # 存放可复用的组件
|   |-- styles/            # 存放样式文件
|   |-- api/               # 存放网络请求和API相关的代码
|-- build/                 # 存放编译后的输出文件
|-- test/                  # 存放测试相关的文件
|-- .gitignore             # Git版本控制忽略文件列表
|-- package.json           # 项目的依赖配置文件(如果使用了npm或者yarn)
|-- README.md              # 项目的说明文档

分布式架构

鸿蒙(HarmonyOS)是一个面向全场景的分布式操作系统,其分布式架构是其核心设计理念之一。

1. 分布式能力

鸿蒙的分布式架构旨在提供无缝的跨设备体验,让用户可以在不同的设备上实现一致性的操作和数据同步。这包括手机、平板电脑、智能穿戴、智能家居、车载设备等等。

2. 分布式软总线

鸿蒙引入了分布式软总线,通过该总线可以实现设备间的通信和协作。软总线支持多种通信协议,包括Wi-Fi、蓝牙、以太网等,使得设备可以在不依赖中心服务器的情况下相互通信。

3. 统一标识

鸿蒙为每一个设备提供了一个统一的设备标识,这使得不同设备之间可以轻松地进行识别和通信。用户可以通过单一账户登录,将不同的设备关联起来。

4. 分布式数据管理

鸿蒙提供了分布式数据管理功能,使得设备可以共享和同步数据。这意味着用户可以在不同的设备上访问相同的数据,而无需手动进行同步。

5. 分布式安全

分布式安全是鸿蒙的一个关键设计目标。它通过诸如分布式身份认证、加密通信等技术来保护用户的隐私和数据安全。

6. 分布式应用开发

鸿蒙提供了一套分布式能力开发框架,开发者可以利用这些框架来构建支持分布式场景的应用程序。这使得开发者可以轻松地将应用扩展到多个设备,提供一致性的体验。

7. 分布式IDE

鸿蒙提供了名为DevEco Studio的集成开发环境(IDE),它支持分布式应用的开发和调试。开发者可以使用DevEco Studio来创建、编辑和调试鸿蒙应用。

8. 多种设备类型的支持

鸿蒙的分布式架构不仅仅支持手机和平板电脑,还包括智能穿戴、智能家居、车载设备等多种类型的设备。这使得用户可以在不同设备上享受到一致性的操作体验。

鸿蒙的分布式架构旨在打破设备之间的隔阂,实现设备的互联互通,提供一致性的用户体验。这也是鸿蒙与传统操作系统的一个重要区别之一。

数据管理

鸿蒙(HarmonyOS)的数据管理是其分布式架构的一个关键组成部分,旨在实现设备间的数据共享和同步。

1. 分布式数据管理

鸿蒙的分布式数据管理功能允许不同设备之间共享和同步数据,使得用户可以在不同设备上访问相同的数据,而无需手动进行同步。

2. 统一数据模型

鸿蒙采用了统一的数据模型,即 DeviceDataAbility。这个模型使得不同设备可以按照相同的数据结构来管理和访问数据,从而实现了数据的一致性。

3. 数据共享

鸿蒙的数据管理允许设备之间共享数据,用户可以在不同设备之间传输、共享文件、文本、图片等数据,从而实现设备间的数据交互。

4. 数据同步

设备之间的数据同步是鸿蒙数据管理的一个重要功能。当用户在一个设备上进行了数据的修改,这些修改会自动同步到其他关联的设备上,保持数据的一致性。

5. 权限控制

鸿蒙的数据管理提供了严格的权限控制机制,确保数据只能被授权的应用程序或设备访问,保护用户的隐私和数据安全。

6. 离线数据访问

鸿蒙的数据管理支持离线数据访问,即使在没有网络连接的情况下,用户也可以访问本地缓存的数据。

7. 数据备份与恢复

用户可以通过鸿蒙提供的数据备份和恢复功能,将设备上的数据进行备份,以防止意外丢失或设备损坏。

8. 数据同步策略

开发者可以根据应用的需求设置数据同步策略,例如实时同步、定时同步等,以便更好地控制数据的同步行为。

9. 开发者接口

鸿蒙提供了一套API和开发工具,开发者可以利用这些接口来实现数据的管理、同步和共享,以及处理数据变化时的逻辑。

生命周期

鸿蒙(HarmonyOS)应用的生命周期与其他移动操作系统(如Android、iOS)的应用生命周期有一些相似之处,但也有一些特定于鸿蒙的特点。

  1. 初始化阶段(Initialization)

    • 当应用程序启动时,会进行初始化操作。这包括加载应用程序的资源、设置应用程序的初始状态等。
  2. 启动阶段(Launch)

    • 在启动阶段,应用程序被启动并显示在前台。用户可以与应用程序进行交互,这是应用程序的活动状态。
  3. 后台运行阶段(Background)

    • 当用户离开应用程序并转到其他应用程序时,应用程序会进入后台运行阶段。在此阶段,应用程序可能会继续执行一些后台任务,但用户界面通常会被暂停或不可见。
  4. 休眠阶段(Sleep)

    • 如果应用程序长时间没有用户交互或者没有活动,系统可能会将其置于休眠状态,以节省资源。在此状态下,应用程序可能会停止某些活动,以降低能耗。
  5. 恢复阶段(Resume)

    • 当用户返回到应用程序时,它会从后台或休眠状态恢复到前台活动状态。这可能会涉及到重新加载资源、恢复界面状态等操作。
  6. 停止阶段(Stop)

    • 当用户完全关闭应用程序或者系统需要释放资源时,应用程序会被停止。在此状态下,应用程序可能会释放一些资源,并且不再响应用户交互。
  7. 销毁阶段(Destroy)

    • 当应用程序被完全关闭时,它会被销毁。在此阶段,应用程序会释放所有资源,包括内存、文件句柄等。
  8. 多任务处理(Multi-Tasking)

    • 鸿蒙支持分布式多任务处理,因此应用程序可能会在不同设备间切换运行状态,例如在手机和平板电脑之间。

需要注意的是,鸿蒙的生命周期可能会因为不同设备类型、屏幕尺寸和分辨率等因素而有所不同。需要根据具体的应用场景和设备特性来合理处理生命周期的各个阶段。

对比Android

  • 鸿蒙应用的生命周期相对简化,没有像 Android 那样的 onStartonPause 等方法,但基本的生命周期阶段相似。
  • Android 有更多的生命周期方法用于处理各种状态变化,比如失去焦点但仍然可见的状态。
  • 鸿蒙强调了分布式多任务处理,这在 Android 生态中没有直接的对应。

事件处理

鸿蒙(HarmonyOS)的事件处理与其他移动操作系统(如Android、iOS)类似,它允许开发者通过事件监听器来响应用户的交互。

1. 事件类型

鸿蒙支持多种类型的事件,包括但不限于:

  • 点击事件:用户点击屏幕或特定元素时触发。
  • 滑动事件:用户在屏幕上滑动时触发,可以分为水平滑动和垂直滑动。
  • 焦点事件:当某个元素获得或失去焦点时触发,用于处理键盘或遥控器等输入设备的交互。
  • 触摸事件:用户在屏幕上进行触摸操作时触发,包括按下、移动、抬起等事件。

2. 事件监听器

开发者可以通过注册事件监听器来响应特定类型的事件。每个事件类型都有相应的监听器接口或回调函数,通过实现这些接口或提供相应的回调函数,可以在事件发生时执行相应的逻辑。

3. 事件分发

在鸿蒙中,事件的分发是一个重要的概念。当用户进行交互时,事件会被发送到应用程序的视图层次结构中的相应元素,然后由该元素的事件监听器进行处理。如果事件没有被当前元素处理,它会被传递到父元素,直到找到合适的处理器或者事件被拦截。

4. 异步事件处理

在处理一些耗时的操作时,鸿蒙支持异步事件处理,以避免阻塞用户界面。开发者可以将一些耗时操作放到单独的线程或异步任务中进行处理,以保持界面的流畅性。

5. 事件拦截

开发者可以在事件的传递过程中选择拦截特定类型的事件,阻止其继续传递给下一级元素。这可以用于实现特定的交互需求或控制事件的流程。

6. 事件传递的优先级

鸿蒙中,事件传递的优先级遵循“从父到子、从上到下”的原则。也就是说,事件首先会被传递给父元素,然后再传递给子元素。

7. 全局事件

除了特定的元素事件,鸿蒙还支持全局事件的处理,这些事件可能与应用程序整体的状态或者设备的特定状态相关。