鸿蒙生态应用

鸿蒙生态应用开发核心概念

HarmonyOS 应用:使用 HarmonyOS SDK 开发的应用程序,能够在华为终端设备
(如:手机、平板等)上运行,其有两种形态:
⚫ 传统方式的需要安装的 App。
⚫ 轻量级,具备免安装,随处可即,服务直达,自由流转等关键特征的元服务。
HarmonyOS 元服务:元服务是 HarmonyOS 面向万物互联时代提供的一种轻量级
应用程序形态。它基于 HarmonyOS 平台开放能力开发,打包为 App Pack 形态,运行
在 HarmonyOS 操作系统,拥有一张或者多张万能卡片,由 HarmonyOS 应用程序框架
管理,具备随处可及、服务直达、跨设备等核心特征。
万能卡片:HarmonyOS 系统定义的一种界面展示形式,它是 HarmonyOS 元服务
的一个组成部分,将重要信息或操作前置到卡片,以达到服务直达,减少操作层级的目
的。万能卡片常用于嵌入到其他系统应用(桌面/负一屏)中作为其界面的一部分显示,
并支持点击拉起元服务。HarmonyOS 元服务必须实现万能卡片。
HarmonyOS 应用与元服务基于同一个鸿蒙系统技术栈开发,同属一个鸿蒙生态。
开发者通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应用。

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

在这里插入图片描述

HUAWEI DevEco Studio 提供的核心能力如下图所示

在这里插入图片描述

分布式调试交互图

在这里插入图片描述
多设备联合分析

在这里插入图片描述

缩放交互的规则

在这里插入图片描述

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

在这里插入图片描述
模式 1:应用或服务的 UI 自适应不同尺寸的设备屏幕,并且在不同设备的功能相同,可以实现多设备共享一个 HAP 包。这种场景下建议开发者通过一个模块来开发,并配置该模块支持多设备,然后再编译构建生成一个 HAP,分发到不同类型的设备上
运行。
模式 2:应用或服务的 UI、功能在不同设备间存在差异,无法实现 HAP 包多设备归一。可根据实际情况设置不同模块适用的设备类型,编译构建多个 HAP 包,一起上架。HUAWEI AppGallery Connect 会自动提取 HAP 中的设备类型的配置信息,为对应的设备自动分发正确的 HAP 包组合

多入口按需分发

**在这里插入图片描述

两种打包上架模式**

在这里插入图片描述
⚫ 模式一:打包成多个App Pack,不同App Pack的包名是不一样的,每个App Pack都需要单独上架。在运行态,应用和服务的生命周期完全独立。
⚫ 模式二:打包成一个 App Pack,App Pack 里面的 HAP 包名相同,统一上架。在运行态,应用生命周期完全共享。

原生智能 AI 能力分层开放框架

在这里插入图片描述
意图框架提供了 HarmonyOS 系统级的意图标准体系,通过多维系统感知、大模型等能力构建全局意图范式,实现对用户显性与潜在意图的理解,并及时、准确地将用户需求传递给生态伙伴,匹配合时宜的服务,为用户提供多模态、场景化进阶场景体验。

鸿蒙生态应用开发能力全景图

在这里插入图片描述

赋能套件全景图

在这里插入图片描述

鸿蒙开发套件全景图

在这里插入图片描述
开发套件全景图

在这里插入图片描述

典型测试工具能力简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

鸿蒙生态三方库管理

在这里插入图片描述
开发者通过如下方式即可方便快捷的使用三方库:

  1. 应用开发者登录鸿蒙生态中心仓,通过分类和关键字搜索需要的三方库信息;
  2. 应用开发者在应用开发时,通过 OHPM 包管理工具,将搜索到的三方库引入到应用依赖清单中。

ArkUI 框架

在这里插入图片描述
ArkUI 框架提供给开发者两种开发方式:基于 ArkTS 的声明式开发范式和基于 JS 扩展的类 Web 开发范式。声明式开发范式更加简洁高效,类 Web 开发范式对 Web 及前端开发
者更友好。

状态管理

在这里插入图片描述
状态管理从生效范围的维度可以分为应用范围和组件范围。应用范围的数据是以AppStorage 为中心进行管理,根据不同的使用场景分为提供系统环境数据管理的Environment,提供持久化存储支持的 Persistent Storage。组件范围的数据通过装饰器的
方式提供管理机制,称为状态变量装饰器:
⚫ @State:组件拥有的状态属性,当@State 装饰的变量更改时,组件会重新渲染更新 UI。
⚫ @Link:组件依赖于其父组件拥有的某些状态属性,当任何一个组件中的数据更新时,另一个组件的状态都会更新,父子组件重新渲染。
⚫ @Prop:类似@Link,但子组件所做的更改不会同步到父组件上,属于单向传递。
⚫ @Provide:作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。
⚫ @Consume:在感知到@Provide 数据更新后,会触发当前自定义组件的重新渲染同时为了使应用数据变化能够触发组件的更新,基于 AppStorage 还提供了两个状态变量装饰器:
⚫ @StorageLink 装饰器:组件通过使用@StorageLink(key)装饰的状态变量,与AppStorage 建立双向数据绑定,key 为 AppStorage 中的属性键值。当创建包含@StorageLink 的状态变量的组件时,该状态变量的值将使用 AppStorage 中的值
进行初始化。在 UI 组件中对@StorageLink 的状态变量所做的更改将同步到AppStorage ,并从 AppStorage 同步到任何其他绑定实例中,如PersistentStorage 或其他绑定的 UI 组件。
⚫ @StorageProp 装饰器:组件通过使用@StorageProp(key)装饰的状态变量,将与AppStorage 建立单向数据绑定,key 标识 AppStorage 中的属性键值。当创建包含@StoageProp 的状态变量的组件时,该状态变量的值将使用 AppStorage 中的
值进行初始化。AppStorage 中的属性值的更改会导致绑定的 UI 组件进行状态更新。

类 Web 开发范式

在这里插入图片描述
类 Web 范式实现层面可以进一步部署到轻量化的设备上。通过轻量化设计的思路,将JS Framework 下沉到 C++层,以减小 JS 的内存占用,使用 C++进行更为严格的内存分配
管理,并采用更为轻量的 JS 引擎,UI 部分采用轻量的 UIKit 并结合轻量图形引擎最终实现百 K 级别设备的支持,从而在轻化设备上可执行的应用,也可以在硬件规格更高的设备上执行,而无需重新开发。这也就是采用类 Web 开发范式的优势所在,采用统一的开发范式,开发者无需关心具体运行时的前端框架JS 引擎与后端 UI 组件,系统会根据运行平台不同,采用最佳的模块,保障应用在不同平台都可具有最佳的运行性能

可视可说框架

在这里插入图片描述
可视可说框架提供“系统级”和“应用级”两种实现方式。其中,“系统级”无需应用适配自动支持标准控件文本的语音操控功能;“应用级”接入方式允许开发者对控件场景、角标、别名、个性化播报等元素进行适配,从而提供最佳的用户体验。应用级和系统级两种实现是互补关系,应用级优化用户体验,系统级保证覆盖率。

单次语音交互生命周期

在这里插入图片描述
视可说分为信息获取和识别执行,信息获取模块基于界面变化用户监听界面变化获取信息热词,识别执行模块将信息热词传递到语音系统进行 AI 识别。

Stage 模型相关概念

在这里插入图片描述

C API 接口组成

在这里插入图片描述
在这里插入图片描述

普通 JS 运行时与方舟编译运行时比对图

在这里插入图片描述
编译流水线

在这里插入图片描述

前端流水线在发起编译时,进行工程参数解析,依赖分析,语法校验,语法转换,代码编译等各个编译动作的编排。前端编译器负责编译流水线中源代码编译,提供对应的触发接口给编译流水线。

前端编译器架构

在这里插入图片描述
前端编译器是根据输入的 ArkTS 源码,进行词法,语法解析、转换、编译、输出字节码文件;在这个过程中会提取代码中标注的类型信息,进行类型检查,类型绑定,最终作为元数据生成到字节码 ABC 文件中。

⚫ 解析:前端编译器读取 ArkTS 源码,进行词法,语法解析,输出抽象语法树(AST)
⚫ 转换:前端编译器识别语法糖,转换成基础语法
⚫ 编译:根据抽象语法树,生成对应的中间表示(IR)
⚫ 输出:收集 IR,字符资源,常量,等各种元素,按照 ABC 文件格式生成字节码文件
⚫ 优化:读取 ABC 文件中的字节码信息,生成 IR 表示,进行优化处理,重新生成更优的字节码文件

界面预览

在这里插入图片描述
在开发过程中,开发者需频繁修改界面代码,查看对应的呈现效果,确保开发与实现目标一致。传统的开发模式下,开发者每次修改代码后,执行编译构建,并推送应用到设备上新运行,才能查看到界面的呈现效果,整个过程冗长,产生极大的时间浪费。HUAWEI DevEco Studio 提供了界面预览能力,使开发者更方便快速地调测应用界面,大幅提升界面开发效率

端云一体化开发全景图

在这里插入图片描述
端云一体化开发:支持端侧代码和云侧代码的协同开发,统一管理端侧和云侧代码目录,进行端云代码的端到端开发、调试和部署。
端云一体化组件:内置完整的云侧逻辑,开发者在集成 UI 组件的同时即可自动实现云侧逻辑,快速实现特定场景的功能。

鸿蒙生态应用、元服务分层测试模型

在这里插入图片描述

  • 单元测试是函数级别的验证。函数是产品开发实现的最基本单位,单元测试通过验证产品代码的函数输入输出,最终保证整个产品的质量

单元测试框架

在这里插入图片描述
UI 测试框架

在这里插入图片描述
SmartPerf 主要结构

在这里插入图片描述
wukong 功能全景图

在这里插入图片描述
⚫ 命令行解析:支持命令行获取参数并解析命令行参数。
⚫ 运行环境管理:根据命令行初始化 wukong 整体运行环境。
⚫ 系统接口管理:检查并获取指定的 mgr,注册 controller 和 dfx 的 faultlog 的回调函数。
⚫ 随机事件生成:通过 random 函数生成指定种子数的随机序列,生成事件。
⚫ 事件注入:根据支持的事件类型向系统注入事件,依赖窗口、多模、安全等子系统。
⚫ 异常捕获处理:通过 DFX 子系统获取运行中的异常信息。
⚫ 报告生成:保存运行时的异常信息并记录执行日志,生成报告。
⚫ HDC 命令行:依赖 hdc 将命令下发至设备端,支持 exec 和 special 两类命令集。

分布式录制架构原理

在这里插入图片描述

提供基于开发者对设备操作序列的监听,识别所操作的控件,转换生成测试脚本的能力,支持多设备分布式场景自动化脚本录制
⚫ 事件监听:监控设备操作状态,抓取设备操作事件流,同步到主控 PC。
⚫ 事件识别&智能定位:多个设备通过 USB 同步时钟,按时间顺序处理监听到的设备事件,根据事件的坐标等信息结合当前设备显示页面的结构智能识别还原真实的操作,生成对应的 DSL 操作描述。
⚫ 生成脚本:解析 DSL 描述,生成对应脚本,通过自主编辑增加检查点,就形成了完整的脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144260.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

碎纸片的自动拼接复原技术

摘要:破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。目前发现对碎纸片的拼接大部分由人工完成,准确率较高,但耗费大量人力财力及时间,效率很低。随着计算机技术的发展,人们试图…

java 解析excel

在Java中解析Excel文件,可以使用Apache POI库。以下是一个简单的例子,展示如何使用Apache POI读取一个Excel文件(假设为.xlsx格式)的内容。 首先,确保你的项目中包含了Apache POI的依赖。如果你使用Maven,…

结构体易忘点

结构体初始化 当我们去初始化一个结构体的时候,我们常常会按变量顺序初始化,但其实也可以不按顺序,同时也可以部分数据初始化。 结构体对齐 结构体里面的成员有一定的对齐规则,他不是每一个空间都存着有效数据的,有些…

综合时如何计算net delay?

在PR阶段,互连线的延迟可以通过抽取net的rc值计算得到。而在综合阶段,因为没有实际的布局布线,便无法去抽取net上的rc值。那么,线负载模型(wire load model)便派上用场了。 所谓线负载模型,就是…

力扣上刷题之C语言实现(数组)

一. 简介 本文记录一下力扣的逻辑题。主要是数组方面的,使用 C语言实现。 二. 力扣上刷题之C语言实现 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那 两个 整数,并返回它们的数…

uni-app安装插件

1.通过插件市场安装https://ext.dcloud.net.cn 打开HBuilderX编辑器。 点击菜单栏中的“工具”->“插件安装”。 这里会看到已安装插件和安装新插件两个选项卡,点击安装新插件, 能看到一些核心插件,如果所需要的插件在核心插件里面有&…

PyCharm和VS Code 安装通义灵码,可本地安装包安装,解决插件安装不上问题

PyCharm和VS Code 安装通义灵码,可本地安装包安装,解决插件安装不上问题 PyCharm、VS Code 安装通义灵码介绍主要应用场景支持编程语言安装指南JetBrains IDEs 中安装指南步骤 1:准备工作步骤 2:在 JetBrains IDEs 中安装通义灵码…

【快速笔记】freeRTOS

第十八章 低功耗Tickless模式 睡眠模式:__WFI 中断唤醒 __WFE 事件唤醒 CPU CLK关闭 停止模式:RAM保持 中断唤醒 当 STM32F103 处于休眠模式的时候 Cortex-M3 内核停止运行,但是其他外设运行正常, 比如 NVIC、SRAM 等。 休眠模式的功耗比其他…

集运系统核心功能模块:打造高效集运仓日常管理

在跨境电商的快速发展背景下,集运业务作为物流环节中的重要一环,其效率和管理的精细化程度直接影响着客户体验和企业效益。集运系统作为提升管理效率的关键工具,需要具备一系列核心模块来确保业务的顺畅运行。以下是集运系统在日常管理中不可…

汇总:工业导管生产中 17种检测仪进行品质检测

定义 1)泛指做疏导用的管子。2)工业用导管即钻孔灌注桩水下浇灌砼导管。混凝土灌注导管用于大型的桥梁工程、中铁工程、公路工程、水电工程、高层地基的钻孔灌注桩的水下浇筑使用。 种类 工业导管种类繁多,主要包括钢管、铜管、不锈钢管、PVC…

golang操作mysql利器-gorm

1、傻瓜示例 GORM通过将数据库表中的数据映射到面向对象的模型中,简化了数据库操作,使得开发者可以很方便的使用代码来操作数据库,而无需编写SQL语句。 目前有个mysql表:miniprogram_orders,其存储了所有用户对应的订…

2023年全国研究生数学建模竞赛华为杯B题DFT类矩阵的整数分解逼近求解全过程文档及程序

2023年全国研究生数学建模竞赛华为杯 B题 DFT类矩阵的整数分解逼近 原题再现: 一、问题背景   离散傅里叶变换(Discrete Fourier Transform,DFT)作为一种基本工具广泛应用于工程、科学以及数学领域。例如,通信信号…

基于深度学习的手势识别算法(论文复现)

基于深度学习的手势识别算法(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 基于深度学习的手势识别算法(论文复现)概述算法原理核心逻辑效果演示使用方式 概述 本文基于论文 Simple Baselines for Human Pose Es…

Sublime Text 3 相关设置

打开设置 { “font_size”: 16, // 字体大小 “save_on_focus_lost”: true, // 自动保存 }

YOLOv8改进系列,YOLOv8 Neck结构引入BiFPN

摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了神经网络架构设计选择用于目标检测,并提出了几项关键优化以提高效率。首先,提出了一种加权双向特征金字塔网络(BiFPN),它允许轻松快速的多尺度特征融合;其次,我们提出了一种复合缩放方法,该方法同时均匀地…

MATLAB 在数学建模中的深入应用:从基础到高级实践

目录 前言 一、MATLAB基础知识 1.1 MATLAB工作环境简介 1.1.1 命令窗口(Command Window) 1.1.2 工作区(Workspace) 1.1.3 命令历史(Command History) 1.1.4 编辑器(Editor) 1…

Electron 安装包 asar 解压定位问题实战

背景 在开发 Electron 过程中,我们想知道 Electron 打包的最终形态是什么样的,以便我们能更好的理解 Electron 打包的过程,以及逆向来快速追踪一些问题,例如下面这个报错,以前这类报错都是靠猜,现在则可以…

矿场工程车检测数据集 4900张 工程车 带标注voc yolo

矿场工程车检测数据集 数据集描述 该数据集旨在用于矿场工程车的检测和分类任务,涵盖了多种常见的工程车辆类型。数据集包含了大量的工程车图像及其对应的标注信息,可用于训练计算机视觉模型,以识别和定位矿场中的不同工程车辆。 数据规模 …

《微信小程序实战(3) · 推广海报制作》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

web学习——day1

1.web标准 2.html和css 此时,学完这一部分,你web的具体的结构已经有了 但是呢,这还是太单调了,我们应该加点儿样式,这就该用到CSS了 CSS引入方式 样式1:颜色 样式2:哪怕对于同一类事物&#xf…