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…...
ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)
ArcMap新手实战:5分钟高效提取面要素四至信息与字段优化技巧 刚接触ArcMap的GIS实习生或规划人员,常常需要快速处理行政区划数据并生成规范的四至报告。面对属性表中密密麻麻的英文字段名和冗余数据,如何高效完成从数据加载到结果美化的全流程…...
从零部署一个AI对话机器人:实战对比Gradio的Streaming UI与FastAPI的轻量API方案
从零部署一个AI对话机器人:实战对比Gradio的Streaming UI与FastAPI的轻量API方案 在AI应用开发领域,构建一个可交互的对话机器人已成为开发者验证想法、展示成果的标配需求。不同于传统Web开发的复杂架构,现代工具链让开发者能够用极简代码实…...
WSL 下 Debian 系统 apt 源切换国内镜像的完整指南
1. 为什么需要切换WSL Debian的apt源? 如果你在Windows Subsystem for Linux(WSL)中安装了Debian系统,可能会遇到软件包下载速度慢的问题。这主要是因为默认的软件源服务器位于国外,网络延迟较高。我刚开始用WSL时&…...
思博伦TestCenter打流丢包?别急着甩锅设备,先看看这个20字节的‘隐形签名’
思博伦TestCenter打流丢包?别急着甩锅设备,先看看这个20字节的‘隐形签名’ 当你在深夜的机房里盯着思博伦TestCenter的测试报告,发现RFC2544吞吐量测试结果突然归零,而端口统计与流统计的数值差异大得离谱时,那种抓狂…...
3个关键步骤解决INAV VTOL模式切换抖动问题
3个关键步骤解决INAV VTOL模式切换抖动问题 【免费下载链接】inav INAV: Navigation-enabled flight control software 项目地址: https://gitcode.com/gh_mirrors/in/inav 垂直起降(VTOL)无人机融合了固定翼的续航优势与多旋翼的起降灵活性&…...
Java八股文实战:从cv_resnet101模型服务理解RPC与序列化
Java八股文实战:从cv_resnet101模型服务理解RPC与序列化 你是不是也遇到过这种情况?面试时被问到“RPC和HTTP有什么区别?”、“序列化协议怎么选?”,脑子里全是书本上的概念,什么“远程过程调用”、“轻量…...
为什么选择yfinance:3步实现免费金融数据获取的完整解决方案
为什么选择yfinance:3步实现免费金融数据获取的完整解决方案 【免费下载链接】yfinance Download market data from Yahoo! Finances API 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance 在金融数据分析的世界里,你是否曾为获取高质…...
工业质检项目从零开始:如何用‘主动学习’策略,把标注成本降低70%以上?
工业质检降本实战:用主动学习策略实现70%标注成本压缩 当某汽车零部件制造商首次将5000张未标注的焊接缺陷图片交到我们团队时,质检主管提出了两个灵魂拷问:"这批数据标注预算只有行业平均水平的30%,能不能做?&q…...
handong1587.github.io:深度学习工程师的终极技术资源宝库
handong1587.github.io:深度学习工程师的终极技术资源宝库 【免费下载链接】handong1587.github.io 项目地址: https://gitcode.com/gh_mirrors/ha/handong1587.github.io 在当今人工智能和深度学习快速发展的时代,寻找高质量的技术资源变得至关…...
有关数组的学习
数组的概念简介数组是编程中最基础也最常用的数据结构之一,理解它能帮你高效管理一组同类型的数据。1. 什么是数组?核心概念同类型:数组里的所有元素必须是相同的数据类型(如全是 int 或全是 float)。连续内存…...
