鸿蒙生态应用

news2024/11/15 10:06:58

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

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.coloradmin.cn/o/2150188.html

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

相关文章

ABAP 一步一步教你添加ALV界面菜单功能按钮

ABAP 一步一步教你添加菜单功能按钮。 程序里面找到这个组件小按钮 就可以看到GUI状态了。 在修改GUI STATUS 是如果要添加一个功能按钮,必须先创建一个功能键(具体参照下方),之后再在应用程序工具栏输入该功能键的功能码否则报…

(c++)线程的创建、互斥锁的使用、线程数组

1.创建10个线程,每个线程都做10万次全局变量num1操作,然后输出这个全局变量,预想结果应该是100万。但是线程可能在cpu分配的一个时间片中做不完10万次1的操作,这时候cpu会被其他线程抢占,由于num1不是一个原子操作&…

MySQL的缓存策略

目录 一、MySQL 缓存方案用来干什么 二、提升MySQL访问性能的方式 1、读写分离(MySQL的主从复制) 2、连接池 3、异步连接 三、缓存方案是怎么解决的 1、缓存与MySQL一致性状态分析 2、制定热点数据的读写策略 四、缓存方案问题的解决方法 1、缓…

Python画笔案例-055 绘制七彩浪花

1、绘制七彩浪花 通过 python 的turtle 库绘制 七彩浪花,如下图: 2、实现代码 绘制七彩浪花,以下为实现代码: """七彩浪花.py """ import turtlecs [red,orange,yellow,green,cyan,blue,magenta]…

网络流之最大流(EK 模板)

EK的时间复杂度是O( )。 EK 算法 和 dinic 算法的区别是 :EK是通过 bfs 找到一条增广流,然后累加,循环此步骤直到 bfs 找不到增广流;而 dinic 算法 是通过 bfs 分层找到一条增广流,然后通过 dfs 跑完 当前分层图中所…

Redis基本命令详解

1. 基本命令 命令不区分大小写,而key是区分大小写的 # select 数据库间的切换 数据库共计16个 127.0.0.1:6379> select 1# dbsize 返回当前数据库的 key 的数量 127.0.0.1:6379[1]> dbsize# keys * 查看数据库所有的key 127.0.0.1:6379[1]> keys *# fl…

[Spring]Spring MVC 请求和响应及用到的注解

文章目录 一. Maven二. SpringBoot三. Spring MVC四. MVC注解1. RequestMapping2. RequestParam3. PathVariable4. RequestPart5. CookieValue6. SessionAttribute7. RequestHeader8. RestController9. ResponseBody 五. 请求六. 响应 一. Maven Maven是⼀个项⽬管理⼯具。基于…

qwen2.5 vllm推理;openai function call调用中文离线agents使用

参考: https://qwenlm.github.io/zh/blog/qwen2.5/ https://qwen.readthedocs.io/zh-cn/latest/framework/function_call.html#vllm 安装: pip install -U vllm -i https://pypi.tuna.tsinghua.edu.cn/simplevllm-0.6.1.post2 运行:</

预测合理交易目标:中断形态趋势分析

日常交易时&#xff0c;我们除了通过判断一些重要指标来预测趋势走向之外&#xff0c;观察趋势的形态变化也是我们技术分析中很重要的分析方式。而识别并理解这些形态可以为交易者提供进出场的关键信号。今天我们就来说说其中一种形态——中断形态&#xff01; 中继形态在市场…

使用 Python 高分解决 reCAPTCHA v3 的指南

reCAPTCHA v3 是自动化系统面临的最具挑战性的障碍之一。随着越来越多的网站实施高级 CAPTCHA 系统来抵御机器人&#xff0c;在 reCAPTCHA v3 中获得高分对于成功的自动化至关重要。本指南将引导您了解有效的策略和 Python 技术&#xff0c;以高分解决 reCAPTCHA v3&#xff0c…

10000字长文,深度解读!人工智能AI 产品经理与传统产品经理工作到底有什么不同?

一、AI 产品经理的定义及职责范围 AI 产品经理是直接应用或间接涉及了 AI 技术&#xff0c;进而完成相关 AI 产品的设计、研发、推广、产品生命周期管理等工作的产品经理。具体来说&#xff0c;狭义 AI 产品经理直接应用了语义、语音、计算机视觉和机器学习这 4 个领域的 AI 技…

机器学习之非监督学习(四)K-means 聚类算法

机器学习之非监督学习&#xff08;一&#xff09;K-means 聚类算法 0. 文章传送1.非监督学习定义2.非监督学习分类2.1 聚类 Clustering2.2 异常检测 Anomaly Detection 3.K-means聚类算法 K-means clustering案例引入算法步骤算法优化成本函数初始化方法K的选择 代码实现 4.案例…

Unity教程(十六)敌人攻击状态的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

C++STL的Stack的使用:STL栈和队列的使用介绍、leecode---最小栈、nowcoder---栈的压入、弹出序列等的介绍

文章目录 前言一、STL栈和队列的使用二、leetcode---最小栈三、nowcoder---栈的压入、弹出序列总结 前言 CSTL的Stack的使用&#xff1a;STL栈和队列的使用介绍、leecode—最小栈、nowcoder—栈的压入、弹出序列等的介绍 一、STL栈和队列的使用 #include <iostream> #in…

PCL KD树的使用

目录 一、概述 1.1原理 1.1.1 数据拆分过程 1.1.2 树的构建示例 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1KD树构建与查询&#xff1a; 2.1.2 k近邻搜索 2.1.3半径搜索 2.2完整代码 三、实现效果 3.1处理后点云 3.2数据显示 PCL点云算法汇总及实战…

Jboss Administration Console弱⼝令

漏洞描述 Administration Console管理⻚⾯存在弱⼝令&#xff0c;admin:admin&#xff0c;登陆后台上传war包 , getshell 影响版本 全版本 环境搭建 因为这⾥⽤的环境是CVE-2017-12149的靶机 cd vulhub-master/jboss/CVE-2017-12149 docker-compose up -d 密码⽂件 /j…

【SA8155P】AIS Camera相关内容的简单介绍

高通车载相机模块(AIS,Automotive lmage System)是专门针对车载系统特性而设计的一套车载视觉架构,可用于AVM、RVC、DMS等常见车载视频应用开发。车载Camera系统的图像大部分是给自动驾驶等使用,更多考虑的是远距离传输、多摄像头图像处理等场景。 本文仅对AIS Camera相关…

MySQL的登陆错误:ERROR 1049 (42000): Unknown database ‘root‘

MySQL的登陆错误&#xff1a;ERROR 1049 (42000): Unknown database ‘root’ 安装MySQL的时候&#xff0c;到网上查的命令行登陆MySQL的方法都是mysql -u root -p password mysql -r root -p 123456但是奇怪的是这条命令我输进去死活都不对&#xff0c;它都会要求再输入一遍…

21、Tomato

难度 低(个人认为中) 目标 root权限 一个flag 使用VMware启动 kali 192.168.152.56 靶机 192.168.152.66 信息收集 端口信息收集 可以看到有个ftp服务&#xff0c;2211实际是ssh协议端口&#xff0c;80、8888是一个web服务 web测试 80端口显示一个tomato 查看源码给了一些…

从0开始学ARM

1. ARM模式和寄存器 1.1 ARM处理器工作模式 Cortex系列之前的ARM处理器工作模式一共有7种。 1.1.1 工作模式 Cortex系列的ARM处理器工作模式有8种&#xff0c;多了1个monitor模式&#xff0c;如下图所示&#xff1a; ARM之所以设计出这么多种模式出来&#xff0c;就是为了…