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.04Pyton编译构建工具3.8.5的64位版本
Ubuntu20.04Pyton编译构建工具3.8.5的64位版本
Ubuntu20.04Pyton编译构建工具3.8.5的64位版本
Ubuntu20.04Pyton编译构建工具3.8.5的64位版本
Window10Vscode代码编辑工具64位最新版本
Window10Python编译构建工具≥3.7.3的64位版本
Window10Node.js提供npm环境64位最新版本
Window10hpm包管理工具64位最新版本
Window10DevEco 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, 调试与追踪接口

坚持就有收获

在这里插入图片描述

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

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

相关文章

[每日一题] 01.27 - 斐波那契数列

文章目录 打分斐波那契数列 打分 n int(input()) lis list(map(int,input().split())) a sum(lis) - min(lis) - max(lis) print(round(a / (n - 2),2))斐波那契数列 n int(input()) res [] for i in range(n):res.append(int(input()))Max max(res) lis [1,1] for i in…

nodejs学习计划--(七)express框架

express框架 1. express介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs.com.cn/ 简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB …

Java中的运算符-算数运算符(/,%,+,++)

目录 运算符算数运算符除法 取余运行结果实例测试 的作用的作用测试结果 运算符 算法符号算术运算符,-,*,/,%,(自增),–(自减)赋值运算符扩展赋值运算符&…

Qt WebEngine模块使用(开发环境安装和程序开发)

一、Qt WebEngine Qt WebEngine_hitzsf的博客-CSDN博客 Qt WebEngine模块提供了一个Web浏览器引擎,可以轻松地将万维网上的内容嵌入到没有本机Web引擎的平台上的Qt应用程序中。Qt WebEngine提供了用于渲染HTML,XHTML和SVG文档的C 类和QML类型&#xff…

LeetCode:376.摆动序列

个人主页:仍有未知等待探索-CSDN博客 专题分栏:算法_仍有未知等待探索的博客-CSDN博客 题目链接:376. 摆动序列 - 力扣(LeetCode) 一、题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称…

146基于matlab的齿轮非线性动力学

基于matlab的齿轮非线性动力学,绘出系统状态变量随参数变化分岔图,绘图参数对应的系统各周期及混沌状态的时间历程图、相轨迹图、Poincare映射图,程序已调通,可直接运行。 146 matlab 齿轮非线性动力学 相图 (xiaohongshu.com)

力扣516. 最长回文子序列

动态规划 思路: 字符串最长回文子序列问题可以转换为原字符串 s 和逆串 s 的最长公共子序列长度问题,具体推断过程可以参考 力扣1312. 让字符串成为回文串的最少插入次数问题变成了求两个字符串最长公共子序列长度问题,具体思路可以参考 力扣…

Win32 PE图标资源提取(ICO图标提取)

最近需要写一个提取EXE或者DLL图标资源的功能, 网上找了很久, 要么功能不好用, 最后结果如下: 1.很多是加载为HICON句柄后转换为图片保存, 全损画质..., 2.后来找了个还能用的, 详见 https://github.com/TortoiseGit/TortoiseGit/blob/master/src/Utils/IconExtractor.cpp …

前端——HTML

目录 文章目录 前言 一.HTML的基本标签 二.HTML标签 1.块级标签 1.1块级标签特征 1.2标题标签 ​编辑 1.3 水平线标签 1.4 段落标签 1.5 无序列表标签 1.6 有序列表标签 1.7 表格标签 1.8层标签 1.9 表单 2. 行级标签 2.1行级标签特征 2.2图像标签 2.3 范围…

Leetcode刷题笔记题解(C++):1971. 寻找图中是否存在路径

思路: 1.建立图集,二维数组,path[0]里面存放的就是与0相连的节点集合 2.用布尔数组来记录当前节点是否被访问过,深度优先会使用到 3.遍历从起点开始能直接到达的点(即与起点相邻的点),判断那…

Centos9使用chrony服务同步时间

安装chrony命令 Centos9里是预安装的,没有安装的话执行以下命令: yum install -y chronyCentos9 时间同步要使用chrony命令,ntp命令没有了 查看状态 #启用chronyd服务 systemctl enable chronyd#重启chronyd服务 systemctl restart chron…

操作系统(5)-----操作系统进程相关

目录 一.进程的组成 1.PCB(进程控制块) 2.程序段与数据段 二.进程的特征 三.进程的状态以及状态的转换 四.进程的组织 1.链接方式 2.索引方式 五.进程控制 六.进程控制相关原语 1.创建原语 2.撤销原语 3.阻塞原语 4.唤醒原语 5.切换原语 …

Elasticsearch8.11集群部署

集群就是多个node统一对外提供服务,避免单机故障带来的服务中断,保证了服务的高可用,也因为多台节点协同运作,提高了集群服务的计算能力和吞吐量。ES是一个去中心化的集群,操作一个节点和操作一个集群是一样的&#xf…

【Linux】-同步互斥的另一种办法-信号量

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

JVM系列——基础知识

Java运行区域 程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里[1],字节码解释器工作时就是通过改变这个计数器的值来选取下一…

PCIE 4.0 Equalizaiton(LTSSM 均衡流程)

1. 均衡 在Tx端有FFE(Feed Forward Equalizer,前馈均衡器);在Rx端有:CTLE(Continuous Time Linear Equalizer,连续时间线性均衡器)和DFE(Decision Feedback Equalizer&a…

HarmonyOS 鸿蒙应用开发 (七、HTTP网络组件 axios 介绍及封装使用)

在HarmonyOS应用开发中,通过HTTP访问网络,可以使用官方提供的ohos.net.http模块。但是官方提供的直接使用不太好使用,需要封装下才好。推荐使用前端开发中流行的axios网络客户端库,如果是前端开发者,用 axios也会更加顺…

【GitHub项目推荐--推荐一个开源的任务管理工具(仿X书/X钉)】【转载】

推荐一个开源的任务管理工具,该工具会提供各类文档协作功能、在线思维导图、在线流程图、项目管理、任务分发、即时 IM,文件管理等等。该开源项目使用到 Vue、Element-UI、ECharts 等技术栈。 开源地址:www.github.com/kuaifan/dootask 预览地…

Ribbon 体系架构解析

前面已经介绍了服务治理相关组件,接下来趁热打铁,快速通关Ribbon!前面我们了解了负载均衡的含义,以及客户端和服务端负载均衡模型,接下来我们就来看下SpringCloud 下的客户端负载均衡组件Ribbon 的特点以及工作模型。 …

【Linux】从C语言文件操作 到Linux文件IO | 文件系统调用

文章目录 前言一、C语言文件I/O复习文件操作:打开和关闭文件操作:顺序读写文件操作:随机读写stdin、stdout、stderr 二、承上启下三、Linux系统的文件I/O系统调用接口介绍open()close()read()write()lseek() Linux文件相关重点 复习C文件IO相…