当前位置:   article > 正文

华为鸿蒙OS基础教程之第一天初识_开源鸿蒙协议

开源鸿蒙协议

前言

在这里插入图片描述

随着国产化形势的盛行,华为作为国内再OS自主研发的第一阵营,发布的harmonyos已基本全部重构,随着近期日益成熟的产品性能提升,鸿蒙国内生态也开始蓬勃发展,2024年1月18日,华为宣布,不再兼容安卓的“纯血鸿蒙”HarmonyOS NEXT鸿蒙星河版(以下简称“HarmonyOS NEXT”)面世。鸿蒙OS也成为继IOS,Android后的第3大终端OS系统,尤其在未来面“万物互联”的畅享场景下,HarmonyOS已定位为向万物智能互联的全场景分布式操作系统,支持手机、平板、智能穿戴、智慧屏甚至是车机等各种终端。HarmonyOS技术架构支撑1+8+N战略:1为手机,8为平板、PC、穿戴、智慧屏、AI音箱、耳机、VR、车机,N为万物互联。

HarmonyOS实现了AI框架、大模型、设计系统、编程框架、编程语言、编译器等全栈自研,有核心技术、全栈能力、底座和生态,是真正的操作系统,而非像其他手机操作系统一样,仅是‘套壳’安卓。尤其HarmonyOS NEXT作为原生鸿蒙,其系统底座全栈自研,去掉了传统的AOSP (Android 开放源代码项目)代码,仅支持鸿蒙内核和鸿蒙系统的应用,将不再兼容安卓应用,减少了40%的冗余代码后,HarmonyOS NEXT的系统流畅度、能效、纯净安全特性等提升显著。HarmonyOS采用Apache licence开源协议,全球开发者均可以使用鸿蒙开源工具包开发各式应用,HarmonyOS生态已经发展了1000多个智能软硬件合作伙伴,50多个芯片解决方案合作伙伴。2024年1月18日,华为在深圳举行“鸿蒙生态千帆启航”发布会,正式发布,宣布HarmonyOS NEXT鸿蒙星河版面向开发者开放申请。

作为OS爱好或程序员,我们需要了解或掌握以下内容:

  • ArkTS语言。
  • ArkUI声明式UI开发容器、绘制、画布组件,动画、弹窗等。
  • Stage模型,网络、数据通知与窗口管理,电话服务等。
  • OpenHarmony的多媒体技术:音频、视频、图片、相机、媒体 会话等 。
  • OpenHarmony进程通信、安全技能、任务管理、WebGL、应用测试等。
  • OpenHarmony系统移植、裁剪定制等。
  • OpenHarmony南向内核开发。

关联资源官网codelabsMass社区博客开发文档

一、OS介绍

1.1、鸿蒙系统(HarmonyOS)特征及基本概念:

1、搭载该操作系统的设备在系统层面融为一体、形成超级终端,让设备的硬件能力可以弹性扩展,实现设备之硬件互助,资源共享(多种设备之间能够实现硬件互助、资源共享,依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等)。

2、面向开发者,实现一次开发,多端部署(HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率)。

3、一套操作系统可以满足不同能力的设备需求,实现统一OS,弹性部署。

1.2、OS架构

HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。如下所示:

在这里插入图片描述

HarmonyOS提供了支持多种开发语言的API,供开发者进行应用开发。支持的开发语言包括ArkTS、ArkJS(JavaScript)、C/C++ 、Java。更多参看鸿蒙课堂

  • 内核层

内核子系统:HarmonyOS采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。

驱动子系统:Hardware Driver Foundation,硬件驱动框架(HDF),用于提供统一外设访问能力和驱动开发、管理框架,是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。

  • 系统服务层

系统服务层是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:

系统基本能力子系统集:为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。

基础软件服务子系统集:为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 、MSDP&DV等子系统组成。

增强软件服务子系统集:为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。

硬件服务子系统集:为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。

  • MSDP (Mobile Sensing Development Platform,移动感知平台)。MSDP子系统提供分布式融合感知能力,借助HarmonyOS分布式能力,汇总融合来自多个设备的多种感知源,从而精确感知用户的空间状态、移动状态、手势、运动健康等多种状态,构建全场景泛在基础感知能力,支撑智慧生活新体验。

DV (Device Virtualization,设备虚拟化)通过虚拟化技术可以实现不同设备的能力和资源融合。根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。

  • 框架层

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

  • 应用层

应用层包括系统应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。FA在进行用户交互时所需的后台数据访问也需要由对应的PA提供支撑。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

  • FA (Feature Ability,元服务),代表有界面的Ability,用于与用户进行交互。
    \
  • PA(Particle Ability,元能力),代表无界面的Ability,主要为Feature Ability提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。

1.3、开发工具(IDE):DevEco Studio

下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio#download;DevEco Studio是面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE),DevEco Studio 3.1配套支持HarmonyOS 3.1及以下版本的应用及服务开发。更多参见:DevEco Studio 常见问题(持续更新)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:下图中Compile SDK是编译的API版本,这里默认选择API9。
在这里插入图片描述
在这里插入图片描述
安装本地模拟器,然后就可运行工程:

1)单击顶部工具栏Tools>Device Manager,选择Local Emulator,设置合适的Local Emulator Location存储地址,然后单击’+New Emulator’;比如这里选择Huawei_Phone手机模拟器,单击’Next’,就进入了模拟器下载页,下载完成后,进行创建相应的手机模拟器,单击Finish完成创建。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后写完主程序后,即entry代码段,运行时就可选用上述模拟器来运行进行预览,如下所示:
在这里插入图片描述

二、开发入门

2.1、工程目录

案例1:还是以Hello world这个工程为例,这是官方的,如下所示:

在这里插入图片描述
其中各目录作用如下:

  • AppScope中存放应用全局所需要的资源文件。
  • entry是该(工程)应用的主模块,存放HarmonyOS应用的代码、资源等。
  • oh_modules是工程的依赖包,存放工程依赖的源文件。
  • build-profile.json5是工程级配置信息,包括签名、产品配置等。
  • hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排**,工程模型管理、配置管理等核心能力。
  • oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。

2.2、从鸿蒙应用看工程目录

鸿蒙APP是由一个或多个HAP(Harmony Ability Package)包以及描述APP Pack属性的pack.info文件组成的;一个HAP在工程目录中对应一个Module,它是由代码、资源、第三方库及应用/服务配置文件组成,HAP可以分为Entry和Feature两种类型。

  • Entry:应用/服务的主模块,可独立安装运行。一个APP中,对于同一类型的设备,可以包含一个或多个Entry类型的HAP,如果同一类型的设备包含多个Entry模块,需要配置distroFilter分发规则,使得应用市场在做应用的云端分发时,对该设备类型下不同规格的设备进行分发。
    \
  • Feature:应用/服务的动态特性模块。一个APP可以包含零到多个Feature类型的HAP。只有包含Ability的HAP才能够独立运行。

而基于Stage模型和FA模型开发的应用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/843758
推荐阅读
相关标签
  

闽ICP备14008679号