HarmonyOS概述

HarmonyOS概述

HarmonyOS系统架构

内核层—系统服务层—框架层—应用层
在这里插入图片描述
内核层:

  • 内核子系统: HarmonyOS采用多内核设计,支持针对不同资源受限设备 ,选用适合的OS内核,为上层提供基础操作系统能力。
  • 驱动子系统: 硬件驱动框架(HDF),是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发管理框架

系统基础服务层:
是HarmonyOS的核心能力集合,包括适用于各类设备的基础能力以及面向特定设备的专有能力,涵盖系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。根据不同设备形态的部署环境,基础软件/增强软件/硬件服务子系统集内部可以按子系统粒度裁剪,子系统内部还可按功能粒度裁剪

框架层:
为HarmonyOS应用开发提供了Java/C/C++/JS等多语言的用户程序框架Ability框架,两种UI框架(包括适用于Java语言的Java UI框架、适用于JS语言的 JS UI框架)以及各种软硬件服务对外开放的多语言框架API,根据系统的组件化裁剪程度,HarmonyOS设备支持的API也会有所不同。

应用层
支持基于框架层实现业务逻辑的原子化开发,构建以FA(Feature Ability)/PA(Particle Ability)为基础组成单元的应用(包括系统应用和第三方应用)。
FA/PA是HarmonyOS应用的基本组成单元,能够实现特定的业务功能。
一个应用可以包含一个或多个FA/PA。FA有UI界面,PA无UI界面。

在这里插入图片描述

一个视频通话应用视频通话主界面FA”提供UI界面以便于用户交互,PA1”进行摄像头视频采集,“PA2”进行视频美颜处理,“PA3”提供超级夜景能力。FA/PA可以按需下载、加载和运行。
基于FA/PA构建的新型应用生态,能够实现三方服务跨设备智能分发,提供一致、高效的用户体验。
在这里插入图片描述
仍以前面的视频通话应用为例,当手机下载该应用时,将同时下载主界面FA、摄像头视频采集PA、视频美颜处理PA、超级夜景PA。当智慧屏下载该应用时,如果智慧屏不支持美颜、超级夜景,则会仅下载主界面FA、摄像头视频采集PA。

应用开发基础篇

运行helloworld

安装软件和运行helloworld
补充

应用程序包结构

在这里插入图片描述

HarmonyOS的用户应用程序包以APP Pack (Application Package)形式发布xxx.app,它是由一个或多个HAP (HarmonyOS Ability Package) 以及描述每个HAP属性的pack,info组成。
HAP包是由代码、资源、第三方库以及配置文件组成的模块包。可分为entry和feature两种模块类型。

  • Entry 是应用或服务的主模块,可以独立安装和运行。
  • Feature 是应用或服务的动态特性模块。

HarmonyOS应用代码围绕Ability组件展开。
Ability
Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。
Ability分为两种类型: FA 元程序(Feature Ability ) 和PA 元服务(Particle Ability)
FA有UI界面,PA无UI界面。

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

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

相关文章

3-10岁孩子语文能力培养里程碑

文章目录 基础能力3岁4岁5岁6-7岁(1-2年级)8-9岁(3-4年级)10岁(5年级) 阅读推荐&父母执行3岁4-5岁6-7岁(1-2年级)8-9岁(3-4年级)10岁(5年级&a…

ChatGLM3-6B 的调用参数说明,chat 与stream_chat 接口函数的参数说明

ChatGLM3-6B 是一个语言大模型,最近在评估这个模型,但发现它的文档有限,只能从demo代码中猜测调用的参数的含义,准确度是有限的;于是,通过查看源代码来研究,目前整理笔记如下: Chat…

环境安装问题(库、代码等问题)

文章目录 前言一、解决: _configtest.c:2:10: fatal error: mpi.h: No such file or directory #include <mpi.h>二、VSCode报错:an ssh installation couldn‘t be found的解决方案三、args parser.parse_args() SystemExit: 2 解决方案四、…

创建Maven Web工程

目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。 比如这里install ,如果其他项目需要将这里的模块作为依赖使用,那就可以 install 。安装到本地仓库的位置: Java的Web工程,所以我们要选…

一段保存代码记录

public KpiSearchLNResult findKpiSearch(KpiSearchLNParam request, UserAccount account) {//获取当前登陆机构String userCode account.getDeptUuid();String userType kpiCustomerLNMapper.findKpiCustomerUserType(userCode);request.setOrgUuid(userCode);//List<Kp…

机器学习 | 聚类Clustering 算法

物以类聚人以群分。 什么是聚类呢&#xff1f; 1、核心思想和原理 聚类的目的 同簇高相似度 不同簇高相异度 同类尽量相聚 不同类尽量分离 聚类和分类的区别 分类 classification 监督学习 训练获得分类器 预测未知数据 聚类 clustering 无监督学习&#xff0c;不关心类别标签 …

node.js mongoose schemaTypes

目录 官方文档 简介 SchemaType 示例 配置SchemaType规则 通用规则 特定schemaType规则 String Number Date Map monggose会根据shcemaType将文档值转换成指定的类型 官方文档 Mongoose v8.0.3: SchemaTypes 简介 SchemaTypes是在使用Mongoose时&#xff0c;用于…

【深度学习】Sentece Embedding - SImCES

前言 句子向量表示一直作为很多自然语言处理任务的基石&#xff0c;一直是NLP领域的热门话题&#xff0c;BERT-Flow以及BERT-whitenning其实像是后处理&#xff0c;将bert的输出进行一定的处理来解决各向异性的问题。 而SimCSE《Simple Contrastive Learning of Sentence Embed…

线上BUG引起思考:package.json 中的 ^~ 该保留吗?

一、写在前面 一次线上项目 bug&#xff0c;引发了关于 package.json 中的 ^~ 是否该保留&#xff1f;保留可能引发的后果&#xff1f;以及如何在版本更新便利和版本更稳定中取舍的思考&#xff1f;这个 bug 是由于线上部署打包时&#xff0c;自己下载了最新依赖&#xff0c;于…

硬件基础-电感

电感 目录 1.原理 2.作用 3.高频等效模型 4. 直流偏置特性 5.器件选型 6.电感损耗 7.功率电感 8.贴片电感 9.共模电感 10.差模电感 1.原理 电感是阻碍电流的变化,储能 电感的磁芯决定了电感的饱和电流&#xff0c;也决定了电感值与电流的变化曲线&#xff0c;磁滞损…

3.11【窗口】窗口使用示例(窗口缩放 四)

七,从窗口所有者进行缩小 作为所有者窗口缩小,可以将源矩形大小设置为大于窗口缓冲区;屏幕在源矩形中未被窗口缓冲区占用的区域上使用背景填充。 屏幕使用默认位置 (0,0) 作为源矩形、窗口和显示器的左上角。 源矩形由这些窗口属性定义: SCREEN_PROPERTY_SOURCE_SIZESCR…

acwing算法提高之动态规划--树形DP

目录 1 基础知识2 模板3 工程化 1 基础知识 暂无。。。 2 模板 暂无。。。 3 工程化 题目1&#xff1a;树的最长路径。 解题思路&#xff1a;遍历从根结点到叶子结点的最长距离和次长距离&#xff0c;注意遍历每一个下一步&#xff0c;因此避免了这两个路径有重叠。更新r…

P1 H264码流结构分析 (上)

目录 前言 01 什么是码流结构 02 H264帧类型的区别 03 片slice 前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525…

石器时代H5小游戏架设教程

本文讲解石器时代 H5 之恐龙宝贝架设教程&#xff0c;想研究 H5 游戏如何实现&#xff0c;那请跟着此次教程学习在拥有小游戏源码的情况下该如何搭建起来 开始架设 1. 架设条件 石器时代架设需要准备&#xff1a; 一台linux 服务器&#xff0c;建议 CentOs 7.6 版本&#xf…

rpc【通义】rpc原理【gpt】

一 rpc RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种编程技术&#xff0c;它允许在分布式系统中的一个程序像调用本地函数一样调用另一个程序&#xff08;位于不同的机器或进程中&#xff09;的函数或方法。RPC的主要目标是隐藏网络通信的…

巧用map实现springbean的命令模式

前言 突然发现spring bean的map还可以这么用&#xff0c;你只是需要使用。命令模式的最基础的版本原型&#xff0c;首先创建一个命令。然后根据不同的实现最后注入到某个集合里面。你就可以根据自己的想法去进行一个调用&#xff0c;非常的简洁。 接口 /*** author Steven* …

ros2 学习08 topic 话题定义及示例

topic 在ros 中的作用 节点实现了机器人各种各样的功能&#xff0c;但这些功能并不是独立的&#xff0c;之间会有千丝万缕的联系&#xff0c;其中最重要的一种联系方式就是话题&#xff0c;它是节点间传递数据的桥梁。 大家可以想一下&#xff0c;这两个节点是不是必然存在某种…

作业--day34

使用select完成TCP并发服务器和客户端 server.c #include <myhead.h>#define PORT 8888 #define IP "192.168.125.137"int main(int argc, const char *argv[]) {int sfd socket(AF_INET, SOCK_STREAM, 0);if(sfd -1){perror("socket error");re…

Docker 网络模式 -day05

docker 启动时候还会有&#xff0c;名为docker0的虚拟网桥&#xff0c;注意网址为 127.0.0.1 [rootiZuf6hxabqikytnrumsi4gZ ~]# ifconfig docker0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.2…

Java atomic 的原理?

Java atomic 的原理&#xff1f; 在 Java 中&#xff0c;java.util.concurrent.atomic 包提供了一组原子类&#xff0c;用于实现原子性操作&#xff0c;避免了多线程并发访问时可能出现的竞态条件。这些原子类使用底层的 CAS&#xff08;Compare-And-Swap&#xff09;操作&…