首页 > 其他分享 >鸿蒙生态

鸿蒙生态

时间:2024-06-22 13:59:34浏览次数:22  
标签:多端 鸿蒙 能力 开发 开发者 生态 设备

1 概述

  • 官网
  • HDC 华为开发者大会
  • 鸿蒙开发者学堂
  • 鸿蒙生态应用开发白皮书
  • 从HarmonyOS到HarmonyOS NEXT的版本对比

2 核心技术理念

在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了三大技术理念: 一次开发,多端部署;可分可合,自由流转;统一生态,原生智能

核心技术理念

一次开发,多端部署

  • “一次开发,多端部署”:指的是一个工程,一次开发上架,多端按需部署。目的是为了 支撑开发者高效地开发多种终端设备上的应用。为了实现这一目的,鸿蒙系统提供了几个核 心能力,包括多端开发环境,多端开发能力以及多端分发机制。

多端开发环境

HUAWEI DevEco Studio 是面向全场景多设备提供的一站式开发平台,支持多端双向 预览、分布式调优、分布式调试、超级终端模拟、低代码可视化开发等能力,帮助开发者降 低成本、提升效率、提高质量。HUAWEI DevEco Studio 提供的核心能力如下图所示。

HUAWEI DevEco Studio 核心功能和特征

  • 多端双向预览
  • 分布式调试

分布式调试交互图

  • 分布式调优

多设备联合分析

  • 超级终端模拟
    移动应用开发时需要使用本地模拟器来进行应用调试,实现快速开发的目的。鸿蒙生态 应用需要运行在多种不同类型的设备上,为此 HUAWEI DevEco Studio 提供了不同类型的 终端模拟,支持开发者在多个模拟终端上进行开发调试,降低门槛、节约成本。同时,多个 模拟终端、真机设备也可以自由地组成超级终端,进一步降低开发者获取分布式调测环境的 难度。

  • 低代码可视化开发
    低代码开发提供 UI 可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预 览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。低代码开发的产物如组件、模板等可以被其他模块的代码 引用,并且能通过跨工程复用,支持开发团队协同完成复杂应用的开发。

多端开发能力

应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如 触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。因此,多 端开发能力的核心目标是降低多设备应用的开发成本。为了实现该目标,鸿蒙系统提供了以 下几个核心能力,支持多端 UI 适配,交互事件归一,设备能力抽象,帮助开发者降低开发 与维护成本,提高代码复用度。

多端 UI 适配

不同设备屏幕尺寸、分辨率等存在差异,鸿蒙系统将对屏幕进行逻辑抽象,包括尺寸和 物理像素,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界 面适配。

  • 屏幕逻辑抽象:鸿蒙系统提供虚拟像素 vp(virtual pixel)对分辨率进行抽象,不同设 备的系统在底层将物理像素转化成虚拟像素,为应用开发者提供统一单位。不同设备的尺寸 存在差异,鸿蒙系统根据设备的屏幕水平宽度,抽象和定义了四种尺寸:超小(xs)、小 (sm)、中(md)、大(lg)。这四种抽象后的屏幕尺寸与日常使用的设备屏幕类型有一 定的对应关系,例如:超小对应智能穿戴设备,小对应手机和折叠屏折叠态,中对应折叠屏 展开态和平板,大对应智慧屏。开发者可面向应用运行的目标设备进行屏幕类型的适配。

尺寸抽象化

  • 布局:鸿蒙系统提供的布局主要分为自适应布局和响应式布局。自适应布局是当外部容 器大小发生变化时,容器内元素可以根据相对关系自动变化以适应外部容器变化的布局能力。 相对关系包含占比、固定宽高比、显示优先级等。当前自适应布局能力主要有 7 种:拉伸能 力、均分能力、占比能力、缩放能力、延伸能力、隐藏能力、折行能力。响应式布局是当显 示空间大小发生变化时,布局可以根据预设断点、栅格或特定的特征(如屏幕方向、窗口宽 高等)进行自动切换。当前响应式布局能力主要有 3 种:断点、媒体查询、栅格布局。鸿蒙 系统将响应式布局能力下沉到默认组件的基础属性中,比如网格、列表和轮播组件等,支持 自动增加显示列数,以便充分利用屏幕宽度,节省应用开发工作量。

  • 视觉:鸿蒙系统提供的视觉样式能力,包括分层参数、多态组件和主题。

交互事件归一

组件归一响应:当应用部署在不同设备上供用户使用时,需要支持多种 I/O 设备,界面 呈现出相应的状态为用户提供正确的视觉引导。例如触摸时显示按压状态,鼠标特有的悬停 状态,键盘走焦状态。鸿蒙系统默认提供多种交互方式的组件实现,方便开发者支持多种输 入方式。

设备能力抽象

不同设备间的软、硬件能力等存在差异,如设备是否具备定位能力、是否具备摄像头、 是否具备蓝牙功能等,鸿蒙系统需要对设备能力进行逻辑抽象,并提供接口来查询设备是否 支持某一能力,方便开发者进行不同软、硬件能力的功能适配。在鸿蒙系统中,使用 SystemCapability(简写为 SysCap)定义每个部件对应用开发者提供的系统软硬件能力。 应用开发者基于统一的方式访问不同设备的能力

API、SystemCapability、部件和设备的关系

多端分发机制

如果需要开发多设备上运行的应用,一般会针对不同类型的设备多次开发并独立上架。 开发和维护的成本大,为了解决这个问题,鸿蒙系统提供了“一次开发,多端部署”的能力, 开发者开发多设备应用,只需要一套工程,一次打包出多个 HAP,统一上架,即可根据设 备类型按需进行分发。

除了可以开发传统的应用,开发者还可以开发元服务。元服务是一种面向未来的服务提 供方式,具有独立入口的、免安装的、可为用户提供一个或多个便捷服务的应用程序形态。 鸿蒙系统为元服务提供了更多的分发入口,方便用户获取,同时也增加了元服务露出的机会。

多设备按需分发

鸿蒙系统提供了两种模式帮助开发者基于“一次开发,多端部署”能力分发应用和元服 务到不同设备上。

多设备按需分发的两种模式

多入口按需分发

鸿蒙系统为元服务提供了更多的分发入口,基于场景和用户意图拉起元服务,实现“服 务直达”。鸿蒙生态提供的丰富入口如下图所示

多入口按需分发

标签:多端,鸿蒙,能力,开发,开发者,生态,设备
From: https://www.cnblogs.com/johnnyzen/p/18262187

相关文章

  • 鸿蒙案例-食物列表页和底部Panel的实现
    前言  食物列表页是健康和饮食管理应用中的一个关键功能,它允许用户浏览、搜索和选择不同的食物项来记录他们的饮食习惯。食物列表以列表形式展示食物名称、图片和简要信息。点击食物项后,展示详细的营养信息,包括热量、脂肪、碳水化合物、蛋白质等。  食物列表页是用户......
  • 鸿蒙案例-欢迎页面的实现
    前言‘案例来源于b站课程’实现过程1.首页面主要有三部分<1>中央slogan;<2>logo;<3>文字描述设置中央slogan要使用layoutWeight(1)实现布局全中;Row(){Image($r('app.media.home_slogan')).width(260)}.layoutWeight(1)logo即图片设置好图片......
  • 鸿蒙开发学习随记(1)——ArkTS基础语言学习
    目录变量与常量数组函数常规函数箭头函数接口与对象联合体枚举类型变量与常量在ArkTS语言中有三种常见的数据类型:number,string,boolean。变量这样声明定义://变量命名letname:string="zhangsan"//let是一个关键字声明变量,name是变量名,string是类型,=后面......
  • 鸿蒙UI开发快速入门 —— part07:组件状态管理之@Prop/@Link装饰器
    1、前言我们在上一章学习了@State装饰器,@State装饰器的作用范围仅仅在当前组件,接下来,我们讨论如何从父组件中传入参数到子组件,让子组件随着父组件的状态发生变化。本章将要介绍的就是:@Props装饰器。2、@Props装饰器@Prop装饰的变量可以和父组件建立单向的同步关系。@Prop装......
  • 【鸿蒙实战开发】HarmonyOS-ArkUI教程@link装饰器双向数据传递的使用
    前言2024年可谓至关重要,而生态建设的前提,就是要有足够的开发人才。与之对应的,今年春招市场上与鸿蒙相关岗位和人才旺盛的热度,一方面反应了鸿蒙生态的逐渐壮大,另一方面也让人们对鸿蒙下一阶段的发展更具信心。随着鸿蒙市场份额的不断提升,相应的岗位也会迎来一个爆发式的......
  • 【鸿蒙实战教程】HarmonyOS中的动态import和静态import的概念与区别
    什么是import鸿蒙核心语言是ArkTs,基于TS的扩展,所以里边少不了JS引擎的影子。    对于鸿蒙而言,我们在文件中引入其他文件时,会涉及到两个概念,静态import和动态import。    什么是引入其他文件呢?例如:import{TestA}from'./TestA'import{hilog}from'@kit......
  • 鸿蒙开发组件:【DataAbility权限控制】
    DataAbility权限控制DataAbility提供数据服务,并不是所有的Ability都有权限读写它,DataAbility有一套权限控制机制来保证数据安全。分为静态权限控制和动态权限控制两部分。静态权限控制DataAbility作为服务端,在被拉起的时候,会根据config.json里面配置的权限来进行校验,有"r......
  • 鸿蒙开发组件:【FA模型的Context】
    FA模型的ContextFA模型下只有一个Context。Context中的所有功能都是通过方法来提供的,它提供了一些featureAbility中不存在的方法,相当于featureAbility的一个扩展和补全。接口说明FA模型下使用Context,需要通过featureAbility下的接口getContext来获取,而在此之前,需要先导入......
  • 鸿蒙ArkTS声明式组件:【Checkbox】
    Checkbox提供多选框组件,通常用于某选项的打开或关闭。说明:该组件从APIVersion8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。子组件无接口Checkbox(options?: {name?:string,group?:string})从APIversion9开始,该接口支持在ArkT......
  • 鸿蒙ArkTS声明式组件:【CheckboxGroup】
    CheckboxGroup多选框群组,用于控制多选框全选或者不全选状态。说明:该组件从APIVersion8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。子组件无接口CheckboxGroup(options?:{group?:string})创建多选框群组,可以控制群组内的Checkbox......