HCIA-HarmonyOS设备开发认证-2.设备开发入门

目录
- HarmonyOS设备开发学习路径
- 一、开发项目与工具介绍
- 1.1、设备开发环境准备
- 1.2、设备开发流程
- 1.3、Huawei DevEco Device Tool
- 二、OpenHarmony介绍
- OpenHarmony目录结构详细介绍
- applications目录详解
- base目录详解
- foundation目录详解
- OpenHarmony接口分层介绍
- CMSIS 和 POSIX 整体架构
- CMSIS 架构
- POSIX 架构
- 组件开发介绍
- HPM
- 三、思考题
- 坚持就有收获
HarmonyOS设备开发学习路径

一、开发项目与工具介绍
1.1、设备开发环境准备
-
Window、Linux开发环境

-
软件安装列表
windows提供代码编辑和程序烧录环境,Ubuntu提供编译环境
| 安装环境 | 安装内容 | 作用 | 版本说明 |
|---|---|---|---|
| Ubuntu20.04 | Pyton | 编译构建工具 | 3.8.5的64位版本 |
| Ubuntu20.04 | Pyton | 编译构建工具 | 3.8.5的64位版本 |
| Ubuntu20.04 | Pyton | 编译构建工具 | 3.8.5的64位版本 |
| Ubuntu20.04 | Pyton | 编译构建工具 | 3.8.5的64位版本 |
| Window10 | Vscode | 代码编辑工具 | 64位最新版本 |
| Window10 | Python | 编译构建工具 | ≥3.7.3的64位版本 |
| Window10 | Node.js | 提供npm环境 | 64位最新版本 |
| Window10 | hpm | 包管理工具 | 64位最新版本 |
| Window10 | DevEco Device Tool | 源码的编辑,烧录,调试 | 64位最新版本 |
| Window10 | (可选安装)Hiburn | 烧录工具 | 64位最新版本 |
1.2、设备开发流程

1.3、Huawei DevEco Device Tool
- 支持HarmonyOS的组件按需定制
- 支持代码编辑,编译,烧录和调试
- 支持C/C++语言
- 以插件的形式部署在Vscode上
二、OpenHarmony介绍
OpenHarmony目录结构详细介绍
- OpenHarmony项目的目录结构中,共有16个1级目录文件夹。
- applications目录中主要存放了用户的应用程序;
- base目录识HarmonyOS Framework的基础能力集合,定位于大多数设备开发需要的能力模块;
- untils目录作为公共基础库,存放通用的基础组件。
.
├── applications/sample //应用程序样例
├── base //基础软件服务子系统
├── build //组件化编译和构建
├── developtools //开发工具
├── device //设备相关文件
├── docs //说明文档
├── domains //增加软件服务子系统
├── drivers //驱动
├── foundation //系统基础能力
├── kernel //内核子系统
├── out //编译输出文件
├── prebuilts //编辑器及工具子系统
├── test //测试子系统
├── third_party //开源第三方组件
└── vendor //厂商提供的软件
...
applications目录详解
- applications目录主要存放用户的应用程序,或是HarmonyOS预置的系统应用程序。
...
base目录详解
- base目录识HarmonyOS Framework的基础能力集合,定位于大多数设备开发需要的能力模块。
.
├── global //全球化模块,是设备的基础能力模块,可被裁剪
├── hiviewdfx //DFX模块
├── iothardware //IOT外设能力模块(GPIO/I2C/SPI/AD/DA等)
├── kits //IOT外设控制模块接口,与frameworks/wifiiot_lite配合
├── security //安全模块
├── syspara_lite //系统属性模块文件
...
foundation目录详解
- foundation提供了更为高级的系统基础能力模块,包含分布式调度与分布式通信等。
foundation/
├── aafwk //ability开发框架接口,ability的管理服务
├── ai //AI引擎框架
├── communication //分布式通信
├── distributeddatamgr //分布式任务调度
├── graphic //图像模块
├── multimedia //多媒体
...
OpenHarmony接口分层介绍
CMSIS 和 POSIX 整体架构
- CMSIS(Cortex Microcontroller Software Interface Standard, 微控制器软件接口标准)和POSIX(Portable Operating System Interface, 可移植操作系统接口)都是可移植操作接口的标准,属于应用接口层,可增强应用软件的可移植性,降低开发难度。

CMSIS 架构

POSIX 架构
- POSIX是API的一系列互相关联标准的总称。
- 对于目前大多数的RTOS实时操作系统,不支持使用内存管理单元。
- 文件系统包括虚拟文件系统,网络文件系统,文件配置表等内容。
- 扩展内核:异常管理,动态加载等
- 基础内核:时间管理,内存管理,IPC通信,任务同步,硬件管理,任务调度。

组件开发介绍
-
HarmonyOS组件开发遵从模块化开发思想:独立的小组件拼接成为一组组件,再次编译打包构成带有完整系统镜像的发行版。

-
一个组件(bundle)通常和一个代码仓库对应,在代码的基础上增加bundle.json、README、LICENSE描述文件。
-
一个发行版(distribution)是由多个组件构成的。发行版中集合了一个完整系统的各个组件(驱动、内核、框架、应用),可以用于设备的烧录。
| 异同点 | 组件 | 发行版 |
|---|---|---|
| 应用场景 | 面向功能特性开发 | 面向系统开发 |
| 内容 | 功能或特性的实现代码或二进制库 | 依赖的组件清单及编译构建脚本 |
| 完整程度 | 操作系统的一部分 | 一个完整操作系统版本 |
| 编译后结果 | 组件包 | 系统镜像 |
HPM
- HarmonyOS Package Manager是HarmonyOS的包管理工具。
- HPM主要功能:获取源码,执行安装、编译、打包、升级操作。
三、思考题
5. (判断题)对于当前版本,在HarmonyOS设备开发中,代码编译需要使用的操作系统是Linux。()A. 正确B. 错误6. (判断题)HarmonyOS设备开发需要使用到DevEco Studio。()A. 正确B. 错误7. (单选题)HarmonyOS设备开发主要使用的开发语言是什么?()A. 汇编B. C/C++C. JavaD. Python8.(判断题)CMSIS是ARM公司为Cortex芯片设计的一种标准。()A. 正确B. 错误9. (判断题)CMSIS和POSIX都是可以增强软件的可移植性,降低开发难度。()A. 正确B. 错误10.(多选题)在CMSIS架构中,MCU层包含哪些组成部分?()A. Cortex(ARM处理器)B. 系统定时器C. 外设寄存器D, 调试与追踪接口
坚持就有收获

相关文章:
HCIA-HarmonyOS设备开发认证-2.设备开发入门
目录 HarmonyOS设备开发学习路径一、开发项目与工具介绍1.1、设备开发环境准备1.2、设备开发流程1.3、Huawei DevEco Device Tool 二、OpenHarmony介绍OpenHarmony目录结构详细介绍applications目录详解base目录详解foundation目录详解 OpenHarmony接口分层介绍CMSIS 和 POSIX …...
2. HarmonyOS 应用开发 DevEco Studio 准备-2
2. HarmonyOS 应用开发 DevEco Studio 准备-2 首选项设置 中文设置 主题 字体 插件安装和使用 保存时操作 编辑器 工程树管理 代码树管理 标记 字符串可视化编辑 参考文档 常用快捷键 编辑 查找或替换 编译与运行 调试 其他 预览 页面预览 自定义组件预览 预览…...
【K8S 云原生】K8S的图形化工具——Rancher
目录 一、rancher概述 1、rancher概念 2、rancher和K8S的区别: 二、实验 1、安装部署 2、给集群添加监控: 3、创建命名空间: 4、创建deployment: 5、创建service: 6、创建ingress: 7、创建hpa 8…...
3. SQL 语言
重点: MySQL 的 三种安装方式:包安装,二进制安装,源码编译安装。 MySQL 的 基本使用 MySQL 多实例 DDLcreate alter drop DML insert update delete DQL select 3)SQL 语言 3.1)关系型数据库的常见…...
Android音量调节修改
前言 今日公司,安卓设备的音量显示不正常,让我来修复这个bug,现在已修复,做个博客,记录一下,以后碰到类似一下子就好解决。 Android音量调节相关 路径 frameworks\base\services\core\java\com\android…...
九州金榜|为什么鼓励式家庭教育?
鼓励式教育是一种积极的教育方式,它强调通过鼓励和肯定来激发孩子的积极性和自信心,帮助孩子更好地成长和发展。在家庭教育中,鼓励式教育同样具有重要意义。九州金榜家庭教育和大家一起探讨关于鼓励式教育的好处以及意义: 一.有助…...
Java复习系列之阶段二:数据库
1. 基础语法 1.1 DQL(数据查询语句) 执行顺序: from、join 、on、where、group by、having、select、distinct、order by、limit 1.2 DML(数据修改语言) 对数据表的增删改 insert into update set delete form 1.…...
TCP 异常断开连接【重点】
参考链接 https://xiaolincoding.com/network/3_tcp/tcp_down_and_crash.html https://xiaolincoding.com/network/3_tcp/tcp_unplug_the_network_cable.html#%E6%8B%94%E6%8E%89%E7%BD%91%E7%BA%BF%E5%90%8E-%E6%9C%89%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93 关键词:…...
Biotin-PEG4-TSA,生物素-PEG4-酪胺,用于标记蛋白质、核酸等生物分子
您好,欢迎来到新研之家 文章关键词:Biotin-PEG4-Tyramide,Biotin-PEG4-TSA,生物素-PEG4-酪胺,Biotin PEG4 Tyramide,Biotin PEG4 TSA 一、基本信息 产品简介:Biotin PEG4 Tyramide is compos…...
Python环境下基于机器学习的NASA涡轮风扇发动机剩余使用寿命RUL预测
本例所用的数据集为C-MAPSS数据集,C-MAPSS数据集是美国NASA发布的涡轮风扇发动机数据集,其中包含不同工作条件和故障模式下涡轮风扇发动机多源性能的退化数据,共有 4 个子数据集,每个子集又可分为训练集、 测试集和RUL标签。其中&…...
Vite学习指南
那本课程都适合哪些人群呢? 想要学习前端工程化,在新项目中投入使用 Vite 构建工具的朋友 Webpack 转战到 Vite 的小伙伴 前端架构师们,可以充实自己的工具箱 当然如果你没有项目相关开发经验,也可以从本课程中受益࿰…...
无人机在三维空间中的转动问题
前提 这篇博客是对最近一个有关无人机拍摄图像项目中所学到的新知识的一个总结,比较杂乱,没有固定的写作顺序。 无人机坐标系旋转问题 上图是无人机坐标系,绕x轴是翻滚(Roll),绕y轴是俯仰(Pitch),绕z轴是偏航(Yaw)。…...
鸿蒙开发初体验
文章目录 前言一、环境配置1.1 安装DevEco Studio1.2 安装相关环境 二、工程创建三、工程结构介绍四、代码实现4.1 初识ArkTs4.2 具体实现 参考资料 前言 HarmonyOS是华为公司推出的一种操作系统,旨在为不同设备提供统一的操作系统和开发平台。鸿蒙开发的出现为用户…...
【Axure教程0基础入门】02高保真基础
02高保真基础 1.高保真原型的要素 (1)静态高保真原型图 尺寸:严格按照截图比例,参考线 色彩:使用吸取颜色,注意渐变色 贴图:矢量图/位图,截取,覆盖等 (…...
【GitHub项目推荐--常见的国内镜像】【转载】
由于国内网络原因,下载依赖包或者软件,对于不少互联网从业者来说,都有不小的挑战,时间浪费在这上边,实在可惜。这个项目介绍了常见依赖,软件的国内镜像,助力大家畅爽编码。 这是一个归纳梳理类…...
实战 | OpenCV+OCR实现弧形文字识别实例(详细步骤 + 源码)
导 读 本文主要介绍基于OpenCV+OCR实现弧形文字识别实例,并给详细步骤和代码。源码在文末。 背景介绍 测试图如下,目标是正确识别图中的字符。图片来源: https://www.51halcon.com/forum.php?mod=viewthread&tid=6712 同样,论坛中已经给出了Halcon实现代码,…...
哪些 3D 建模软件值得推荐?
云端地球是一款免费的在线实景三维建模软件,不需要复杂的技巧,只要需要手机,多拍几张照片,就可以得到完整的三维模型! 无论是大场景倾斜摄影测量还是小场景、小物体建模,都可以通过云端地球将二维数据向三…...
AI论文指南|人大教授教你如何利用ChatGPT革新内容分析!【建议收藏】
点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 公众号原文▼▼▼▼: AI论文指南|人大教授教你如何利用ChatGPT革新内容分析!【建议收藏】 目录 1.ChatGPT内容分析 2.书籍介绍 3.AIPaperPass智能论文写作平…...
leetcode 字符串相关题目
344. 反转字符串 - 力扣(LeetCode) 题解:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 541. 反转字符串 II - 力扣(LeetCode) 题解:https://leetcode.cn/problems/reverse-s…...
第二百九十一回
文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择图片和视频文件"相关的内容,本章回中将介绍如何混合选择多个图片和视频文件.闲话休提,让我们一起Talk Flutter吧。 1…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
