HCIA-HarmonyOS Application Developer学习笔记

这篇具有很好参考价值的文章主要介绍了HCIA-HarmonyOS Application Developer学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、HarmonyOS 介绍

HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统,它是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为

与原生Android 系统对比,HarmonyOS 不仅可以支持手机,还可以支持电脑、智慧屏、穿戴设备、智能家居、车机系统等等,从而形成一个全场景统一的操作系统。

通过多种分布式技术,整合不同终端硬件能力,形成一个虚拟的“超级终端”,应用开发者可基于该“超级终端”开发应用,聚焦上层业务逻辑,其优点是无需关注硬件差异;设备开发者可以按需调用其他终端能力,带来基于“超级终端”的创新服务体验。

二、HarmonyOS 应用开发流程

HarmonyOS 系统架构

HarmonyOS 整体以下至上可分为内核层系统服务层应用框架层应用层

其中系统服务层是HarmonyOS 的核心能力集合,通过框架层对应用程序提供服务,例如分布式数据管理、分布式任务调度、分布式软总线等都属于系统服务层,而例如Ability 框架属于应用框架层。另外,属于应用框架层的还有UI框架、用户程序框架等。

HarmonyOS 子系统集

HarmonyOS 的子系统集可分为以下:

1、常见的系统基本能力子系统集:UI框架、Ability框架、用户程序框架、分布式任务调度、分布式数据管理、分布式软总线等。

2、常见的基础软件服务子系统集:多媒体子系统、电话子系统、事件通知子系统等。

3、常见的增强软件服务子系统集:智慧屏专有业务子系统、穿戴专有业务子系统、IOT专有业务子系统等。

4、常见的硬件服务子系统集:位置服务子系统、生物特征识别服务子系统、穿戴专有硬件服务子系统、IOT专有硬件服务子系统等。

DevEco Studio

DevEco Studio是基于 IntelliJ IDEA Community 开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等 E2E 的 HarmonyOS 应用开发服务,它支持JavaJavaScriptXMLHML(HarmonyOS Markup Language)C/C++CSS语言的代码开发和调试。

打开DevEco Studio,创建一个应用工程,可以在生成的基本应用包结构中,看到以下目录和文件:
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为

使用DevEco Studio 工具进行应用开发时,支持预览器模拟器真机三种调测方式。

HarmonyOS 应用包结构

一个HarmonyOS 应用包结构主要包含APPHAP(HarmonyOS Ability Package),一个APP中可以包含多个HAP,是由逻辑代码资源文件第三方库应用配置文件组成的模块包,可分为EntryFeature 两种模块类型。

其中,Entry.hap 是应用程序的主要入口,而Feature.hap 是应用程序的其他部分,通常情况下,一种APP中只能有一个Entry.hap,pack.info 是描述该应用程序的相关内容,另外,在每个HAP的根目录下都存在一个config.json配置文件。
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为
这里只介绍config.json 配置文件其中主要的三个部分:

如下,可看到其中的代码:
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为

  • app包含应用的全局配置信息,应用的包名称、版本号等等;deviceConfig包含应用在具体设备上的配置信息;module包含每个HAP包的配置信息,有每个Ability定义的基本属性,其中包含包名称、类名称以及该Ability提供的能力等等。

HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为

使用资源文件的方法

base 目录与限定词目录中的资源文件可以通过指定资源类型和资源名称来引用。
1、java 文件中引用 资源文件的格式:ResourceTable.type_name;
2、XML文件中引用资源文件的格式:$type:name;
3、rawfile 目录中的资源文件通过指定文件路径和文件名称来引用。

权限管理

应用权限需要在config.json 中使用“reqPermissions” 属性对需要的权限逐个进行声明,若没有在该文件中声明相关的权限,则应用将无法获得该权限的授权,另外,在应用中使用到的第三方库也涉及到权限使用,也需在config.json 中进行声明。

分布式能力

1、分布式软总线:是分布式能力的基础,为不同设备互联互通提供统一的分布式通信能力。
2、分布式文件服务:为用户不同设备中的应用程序提供文件共享的能力;
3、分布式数据服务:实现应用程序数据和用户数据的分布式管理。
4、分布式任务调度:支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作;
5、分布式设备虚拟化:为用户不同设备之间进行资源融合、设备管理、数据处理,从而形成一个虚拟超级终端;

三、Ability 设计与开发

Ability 的概念和分类

Ability 是应用程序的主要组成部分,它可以分为Feature Ability(FA)Particle Ability(PA),FA支持Page 模板,用于提供与用户交互的能力;PA支持Service 模板Data 模板,Service模板用于提供后台运行任务的能力,Data模板用于对外部提供统一的数据访问接口。

一个Page Ability 可以由一个或多个AbilitySlice 组成,AbilitySlice 是指应用的单个页面以及控制逻辑的总和,另外不同的Page Ability 之间可以跳转,并且可以指定跳转到目标Page Ability 中某个具体的AbilitySlice。

页面生命周期

当用户进入、浏览、退出页面时,页面会有不同的状态,并回调不同的生命周期状态方法给外界,Page Ability 和AbilitySlice 具有类似的生命周期回调方法:
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为
1、onStart()方法:当系统首次创建Page实例时,触发该回调;对于一个Page实例,该回调在其生命周期过程中只触发一次,然后该逻辑进入INACTIVE状态。
2、onActive()方法:Page会在进入INACTIVE状态后来到前台。然后系统调用该回调,逻辑会进入ACTIVE状态,该状态是应用与用户交互的状态,此时Page将保持在该状态,除非某类事件发生导致Page失去焦点,比如用户点击返回键或导航到其他Page。
3、onInActive()方法:Page失去焦点后,系统将调用该回调,然后Page进入INACTIVE状态。
4、onBackground()方法:Page将不再对用户可见,该回调通知开发者进行相应的资源释放,然后Page进入BACKGROUND状态。
5、onStop()方法:系统要销毁Page时,该回调通知开发者进行系统资源的释放。
6、onForeground()方法:处于该状态的Page仍然驻留在内存中,当重新回到前台时,系统将调用该回调。

Intent载体

Intent 是对象之间传递信息的载体,它由OperationParameters 元素构成。其中,Action 表示动作,可自定义Action;Entity 表示类别,也可以自定义;Uri 表示Uri 的相关描述,用于匹配Uri 的信息;Flags 表示处理Intent 的方式;BundleName 表示包描述;AbilityName 表示待启动的Ability名称;Deviceld 表示运行指定Ability的设备ID。

通过Intent 启动应用的过程是:构造包含BundleName 与AbilityName 的Operation对象,从而启动一个Ability ,并导航到该Ability。

页面间导航

1、在同一Page内导航,使用present()presentForResult() 方法实现同一Page内两个AbilitySlice 间的跳转。
2、在不同Page间导航,通过配置Intent 的Action,并使用startAbility()startAbilityForResult() 方法导航到目标Ability。获得返回结果的回调为onAbilityResult() ,在Ability 中调用setResult() 可以设置返回结果。

Particle Ability 开发

1、Service Ability:主要用于后台运行任务,它在主线程中执行,可由其他应用或Ability启动。在一个设备上,同一个Service只存在一个实例,即Service Ability是单实例的。

  • 启动Service。通过将Intent传递给startAbility()方法来启动Service,不仅支持启动本地Service,还支持启动远程Service。另外通过构造包含Deviceld(设备ID)、BundleName(包名称)、AbilityName(待启动的Ability名称)的Operation对象来设置目标Service信息。
  • 连接Service。如果Service需要与Page Ability或其他应用的Service Ability进行交互,则应创建用于连接的Connection,另外,Service还支持其他Ability通过connectAbility()方法进行连接。在使用connectAbility()处理回调时,需要传入目标Service的Intent与IAbilityConnection的实例,其中IAbilityConnection提供了两个方法供开发者实现,onAbilityConnectDone()用来处理连接的回调,onAbilityDisconnectDone()用来处理断开连接的回调。
  • 停止Service。Service一旦创建就会一直保持在后台运行,除非必须回收内存资源,否则系统不会停止或销毁Service。要手动停止Service,有以下方法:在Service中通过terminateAbility()停止本Service;在其他Ability调用stopAbility()来停止Service。

2、Data Ability:使用Data模板的Ability,对外提供一些增删改查以及文件操作等接口,其具体实现由开发者提供。Data的提供方和使用方都通过URl来标识一个具体的数据,它分为两种场景,跨设备场景需要额外制定DeviceID,而本地场景不需要。

四、UI 页面设计与开发

Java UI 框架

1、组件布局
Java UI框架中提供了一些标准布局功能的容器,继承自ComponentContainer,一般以"Layout”结尾,StackLayout 布局方式是堆叠(层叠)布局,视图以层叠的方式显示,默认情况下放到这块区域的左上角,第一个添加到布局中的视图显示在最底层,最后一个被放在最顶层;DependentLayout 布局方式可以指定相对于其他同级元素或相对于父组件的位置;DirectionalLayout 布局方式它用于将一组组件按照水平方向(horizontal)或者垂直方向(vertical)排布,子组件可以通过权重来按比例占用父组件的大小;TableLayout 布局方式以使用表格的方式划分子组件,如下图:
HCIA-HarmonyOS Application Developer学习笔记,HCIA-HarmonyOS应用开发工程师,harmonyos,华为
2、组件的分类
Java Ul框架的组件中,可以根据组件的功能从而分为布局类、交互类和显示类三种,布局类提供了不同布局规则的组件,交互类提供了在具体场景下与用户交互响应的功能,显示类提供了内容显示。

常用的组件有很多,例如,Text 是显示字符串的组件,定义后显示一块文本区域;TextField 是一种文本输入框组件;Button 是按钮组件,可以由文本、图标组成;Image 是显示图片的组件;ScrollView 是带滚动功能的组件,可以通过滚动显示更多内容。

JavaScript UI 框架

JavaScript UI 中基本组件主要有以下四类:

组件类型 主要组件
基础组件 text、image、progress、rating、span、marquee、image-animator、divider、search、menu、chart
容器组件 div、list、list-item、stack、swiper、tabs、tab-bar、tab-content、list-item- group、refresh、dialog、grid-container
媒体组件 video
画布组件 canvas

五、任务派发方法

HarmonyOS 为开发者提供了同步派发任务、异步派发任务、异步延迟派发任务和成组派发任务四种任务派发方法。

TaskDispatcher 框架提供了以下几种主要的任务派发方法:
delayDispatch()异步延迟派发任务,异步执行,函数立即返回,内部会在延时指定时间后将任务派发到响应队列中;
syncDispatch()同步派发任务,派发任务并在当前线程等待任务执行完成,如果使用不当则会导致死锁;
asyncGroupDispatch()异步成组派发任务,且该组任务之间有一定的联系;
asyncDispatch()异步派发任务,派发任务,并立即返回,返回值是一个可用于取消任务的接口。

六、任务分发器

HarmonyOS为开发者提供了以下四种任务分发器:
TaskDispatcher具有多种实现,每种实现对应不同的任务分发器,可分为全局并发任务分发器(GlobalTaskDispatcher)并发任务分发器(ParallelTaskDispatcher)串行任务分发器(SerialTaskDispatcher)专有任务分发器(SpecTaskDispatcher)文章来源地址https://www.toymoban.com/news/detail-540027.html

到了这里,关于HCIA-HarmonyOS Application Developer学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HCIA-HarmonyOS应用开发工程师 V2.0 模拟考试

    低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。 正确(True) 在使用ArkTS语言开发界面UI代码过程中,如果添加或删除

    2024年02月04日
    浏览(63)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-动态内存

    动态内存管理,即在内存资源充足的情况下,根据用户需求,从系统配置的一块比较大的连续内存(内存池,也是堆内存)中分配任意大小的内存块。当用户不需要该内存块时,又可以释放回系统供下一次使用。 初始化 LOS_MemInit。初始一个内存池后生成一个内存池控制头、尾

    2024年02月20日
    浏览(78)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-WatchDog

    看门狗(Watchdog),又称看门狗计时器(Watchdog timer),是一种硬件计时设备。一般有一个输入、一个输出,输入叫做喂狗,输出连接到系统的复位端。当系统主程序发生错误导致未及时清除看门狗计时器的计时值时,看门狗计时器就会对系统发出复位信号,使系统从悬停状态

    2024年02月21日
    浏览(52)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-消息队列queue

    队列又称消息队列,是一种常用于任务间通信的数据结构。队列接收来自任务或中断的不固定长度消息,并根据不同的接口确定传递的消息是否存放在队列空间中。 任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务;当队列中有新消息时,挂起的读取任务

    2024年02月20日
    浏览(49)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART

    UART 是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的缩写,是通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输。UART 应用比较广泛,常用于输出打印信息,也可以外接各种模块,如 GPS、蓝牙等。 异步通信 异步通信中,数据通常以字符

    2024年02月19日
    浏览(56)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-SPI

    SPI 是串行外设接口(Serial Peripheral Interface)是一种高速的全双工同步的通信总线。 SPI 是由 Motorola 公司开发,用于在主设备和从设备之间进行通信,常用于与闪存、实时时钟、传感器以及模数转换器等进行通信。 SPI 通信通常由主设备发起,通过以下步骤完成一次通信: 通过

    2024年02月22日
    浏览(50)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux

    互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种,开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的

    2024年02月20日
    浏览(50)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO

    轻量系统设备通常需要进行外设控制,例如温湿度数据的采集、灯开关的控制,因此在完成内核开发后,需要进行设备驱动的开发。 主要Hi3861芯片介绍如何运用 IoT 硬件子系统进行轻量系统设备的驱动开发。 在轻量系统的联接模组中,智能家居远程控制能力的实现,最终是通

    2024年02月21日
    浏览(47)
  • HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-ADC

    ADC(Analog to Digital Converter)模数转换器。现实生活中的所有属性(如温度、湿度、光照强度等)都是连续的,即为模拟信号;而单片机或电子计算机所能识别的信号都是离散的数字信号。此时,若是需要使用现实世界中的各种属性,就需要一种设备将模拟信号转换为数字信号

    2024年02月21日
    浏览(55)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-信号量semaphore

    信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务间同步或共享资源的互斥访问。 一个信号量的数据结构中,通常有一个计数值,用于对有效资源数的计数,表示剩下的可被使用的共享资源数,其值的含义分两种情况: 0,表示该信号量当前不可获取,因此可能

    2024年02月19日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包