HarmonyOS(鸿蒙)——全面入门,始于而不止于HelloWorld

简介: HarmonyOS(鸿蒙)——全面入门,始于而不止于HelloWorld

目录


一、前言


二、创建并运行项目


2.1 创建项目


2.2 开启远程模拟器


2.3 运行项目


三、Ability&页面的初步认识


3.1、简介


3.1.1 什么是页面


3.1.2 HarmonyOS(鸿蒙)中的页面


3.2、Ability


3.2.1 简介


3.2.2 Page Ability


3.2.3 Service Ability


3.2.4 Data Ability


3.3、HarmonyOS页面的设计


3.3.1 原子化服务与HAP简介


3.3.2 可分可合思想


3.3.3 HAP中的Ability


四、配置文件Config.json了解


4.1、简介


4.1.1 结构


4.1.2 编辑视图


4.2、配置文件详细介绍


4.2.1 app


4.2.2 deviceConfig


4.2.3 module


五、HarmonyOS应用程序的运行流程


5.1、准备


5.1.1 创建项目


5.1.2 运行项目


5.2、分析启动流程


5.2.1 启动流程图


5.2.2 解析config.json文件


5.2.3 初始化


5.2.4 获取入口Ability全类名


5.2.5 运行Ability


5.2.6 运行Ability的子界面


5.2.7 加载xml文件,展示内容


六、精选好文


一、前言

大多数程序员学习一门编程语言的第一个程序都是HellWorld,虽然HarmonyOS(鸿蒙)并不是一门编程语言,但是我们仍然通过一个HelloWorld程序来全面学习和了解HarmonyOS(鸿蒙)。

文中并不是仅仅教你搭建一个HarmonyOS(鸿蒙)的HelloWorld的应用程序,那样一点意义也没有,而是通过如下四个方面,全面的讲解HarmonyOS(鸿蒙)的入门的必备知识点。

image.png二、创建并运行项目

通过创建一个HelloWorld项目,运行起来之后,再来分析入门鸿蒙开发需要掌握的一些知识点。如您想直接通过官网学习,我这里给您贴出官网地址,或者你也可以先根据我的文章内容,看看是否对鸿蒙开发感兴趣再去官网认真学习!


知识官网地址:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387


2.1 创建项目

打开开发工具DevEco Studio,选择File -> New -> New Projectimage.png填写项目名称Project Name,包名称Package Name,项目存储路径Save Location,设备类型 Device Type(我这里选择的是手机Phone),最后点击Finish!image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png三、Ability&页面的初步认识

3.1、简介

3.1.1 什么是页面

信息以页面信息组织,信息页面由语言来实现,在各个信息页面之间建立超文本链接以便浏览,这就是页面。页面一般包括:文本、图像、表格、超链接等基本元素。


3.1.2 HarmonyOS(鸿蒙)中的页面

当我们打开手机App之后看到的都是页面!image.png在HarmonyOS中,一个页面可以被当做一个Ability,更准确的说是Page Ability中的AbilitySlice(指应用的单个页面及其控制逻辑的总和),这里先简单介绍Ability。


3.2、Ability

3.2.1 简介

Ability是应用所具备能力的抽象(我感觉也可以理解为模板,模块),也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。

Ability分为两种:


FA(Feature Ability)

PA(Particle Ability)

Ability类型 支持模板 描述

Feature Ability Page Ability Page模板:用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。

| Particle Ability | Service Ability和Data Ability | Service模板:用于提供后台运行任务的能力。

Data模板:用于对外部提供统一的数据访问抽象。 |


3.2.2 Page Ability

Page Ability是 Feature Ability唯一支持的模板。

用于提供与用户的交互能力,其实就是页面的父级。一个Page可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和。官方认为当一个Page由多个AbilitySlice共同构成时,这些AbilitySlice页面提供的业务能力应具有高度相关性。image.pngHarmonyOS支持不同Page之间的跳转,并可以指定跳转到目标Page中某个具体的AbilitySlice。


3.2.3 Service Ability

Service Ability是 Particle Ability支持的模板之一。

用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面。Service可由其他应用或Ability启动,即使用户切换到其他应用,Service仍将在后台继续运行。

Service是单实例的。在一个设备上,相同的Service只会存在一个实例。如果多个Ability共用这个实例,只有当与Service绑定的所有Ability都退出后,Service才能够退出。由于Service是在主线程里执行的,因此,如果在Service里面的操作时间过长,开发者必须在Service里创建新的线程来处理,防止造成主线程阻塞,应用程序无响应。


如下是HarmonyOS线程间通信开发概述官网地址:


https://developer.harmonyos.com/cn/docs/documentation/doc-guides/inter-thread-overview-0000000000038958


3.2.4 Data Ability

Data Ability是 Particle Ability支持的模板之一。

用于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。数据的存放形式多样,可以是数据库,也可以是磁盘上的文件。Data对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。


3.3、HarmonyOS页面的设计

3.3.1 原子化服务与HAP简介

HarmonyOS中的应用与传统App应用有一个很大的亮点,HarmonyOS提供了一种面向未来的服务提供方式,原子化服务。

原子化服务可以免安装(无需显示安装,由系统后台按需主动安装非常方便),它支持运行在1+8+N设备上。

原子化服务与传统的App应用对比如下:

image.png一个原子化服务可以有一个或者多个HAP组成,而一个HAP对应1个FA或者1个PA,每个FA或PA均可独立运行,完成1个特定功能;1个或多个功能(对应FA或PA)完成1个特定的便捷服务。

所以HarmonyOS的App安装包的结构示意图如下:image.pngimage.png电视机没有短信和通话的功能,但是它拥有控制频道切换的功能,因此可以安装控制频道.HAP;而手机拥有短信和通话的功能,因此可以安装短信.HAP和通过.HAP。两者都拥有游戏的功能,因此均可以安装游戏.HAP。因此HarmonyOS的HAP安装包,可以根据用户的实际需求或者硬件设施进行合理的安装,实现安装包的可分可合思想。

针对不同的功能,建议统一写入同一个HAP中,比如短信.HAP,这样可以减少用户使用某一个特定功能的时候,系统下载安装包的复杂度或者用户字段安装的复杂度。


3.3.3 HAP中的Ability

针对上面的游戏.HAP,比如说是男人就下一百层,我们会开发一个Ability,它会存在很多子功能,比如登录、注册、游戏、装备、聊天、等等。这些不同的功能都可以整合到不同的AbilitySlice中,一个AbilitySlice对应一个页面。

游戏.HAP的Ability与其AbilitySlice关系图如下:

image.png登录、注册、游戏、装备、聊天、等等AbilitySlice统一加入一个Ability中,不同的AbilitySlice之间可以实现跳转,最终打包成一个可以运行的游戏.HAP


四、配置文件Config.json了解

4.1、简介

4.1.1 结构

应用的每个HAP的根目录下都存在一个“config.json”配置文件。文件内容主要涵盖以下三个方面:

image.png4.1.2 编辑视图

config.json文件采用JSON文件格式,其每一项都包含都由一个属性和值组成。其中属性值不分先后顺序,但是不能重复出现,必须唯一。值为JSON的基本数据类型。HarmonyOS的DevEco Studio支持两种编辑config.json的方式,分别是代码编辑视图和可视化编辑视图。

代码编辑视图:image.pngimage.pngimage.pngimage.pngimage.pngimage.png五、HarmonyOS应用程序的运行流程

5.1、准备

5.1.1 创建项目

进入HarmonyOS(鸿蒙)正式开发之前,可以通过一个简单的HelloWorld的示例代码来了解其运行时的相关流程。如下是通过DevEco Studio创建的一个简单HelloWorld示例代码结构,接下来会分析其启动流程。

image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png六、精选好文

HarmonyOS(鸿蒙)DevEco Studio开发环境搭建


HarmonyOS(鸿蒙)开发一文入门


两个案例五分钟轻松入门Harmony(鸿蒙)开发


armonyOS与Android的全面对比


HarmonyOS(鸿蒙)全网最全资源汇总,吐血整理,赶紧收藏!


HarmonyOS(鸿蒙)—— Ability与页面


HarmonyOS(鸿蒙)——config.json详解


HarmonyOS(鸿蒙)——启动流程


image.png


image.png


image.png

目录
相关文章
|
6月前
|
编解码 视频直播 开发工具
|
25天前
|
存储 JavaScript 开发者
探索鸿蒙新世界:ArkUI框架实战指南,解锁HarmonyOS应用UI设计的无限可能!
【10月更文挑战第19天】ArkUI框架是华为鸿蒙系统中用于开发用户界面的核心工具,支持ArkTS和eTS两种开发语言。本文介绍了ArkUI的基本概念、组件使用、布局管理和状态管理,通过示例代码帮助开发者轻松构建美观、高效的跨设备UI。
68 3
|
1月前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
23天前
|
存储 数据管理 调度
HarmonyOS架构理解:揭开鸿蒙系统的神秘面纱
【10月更文挑战第21天】华为的鸿蒙系统(HarmonyOS)以其独特的分布式架构备受关注。该架构包括分布式软总线、分布式数据管理和分布式任务调度。分布式软总线实现设备间的无缝连接;分布式数据管理支持跨设备数据共享;分布式任务调度则实现跨设备任务协同。这些特性为开发者提供了强大的工具,助力智能设备的未来发展。
74 1
|
25天前
|
JavaScript API 开发者
掌握ArkTS,打造HarmonyOS应用新视界:从“Hello World”到状态管理,揭秘鸿蒙UI开发的高效秘诀
【10月更文挑战第19天】ArkTS(ArkUI TypeScript)是华为鸿蒙系统中用于开发用户界面的声明式编程语言,结合了TypeScript和HarmonyOS的UI框架。本文介绍ArkTS的基本语法,包括组件结构、模板和脚本部分,并通过“Hello World”和计数器示例展示其使用方法。
51 1
|
29天前
|
数据可视化 JavaScript API
HarmonyOS NEXT原生重榜发布-安利一款鸿蒙可视化代码生成器
鸿蒙低代码可视化开发平台是基于华为鸿蒙操作系统构建的创新开发环境,旨在通过简化开发流程、降低技术门槛,加速应用从设计到上线的全过程。它融合了低代码开发的核心理念与鸿蒙系统的技术优势,为开发者提供了一条高效、便捷的应用开发之路。
49 2
|
1月前
|
存储 移动开发 关系型数据库
HarmonyOS 鸿蒙面试第一弹
HarmonyOS 鸿蒙面试第一弹
|
4月前
|
存储 开发框架 安全
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段一
HarmonyOS NEXT星河版的应用开发标志着华为分布式操作系统的全新篇章,它聚焦于打造原生精致、易用、流畅、安全、智能和互联的极致体验。开发者可以利用其先进的API和工具集,如DevEco Studio,构建高性能、跨设备无缝协同的应用程序,从而充分利用HarmonyOS的分布式能力,为用户带来一致且丰富的多场景数字生活体验。随着“学习强国”、岚图汽车、中国电信等知名企业和应用的加入,鸿蒙生态正迅速扩展,引领着原生应用开发的新趋势。
197 3
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段一
|
4月前
|
域名解析 网络协议 调度
阿里云移动研发平台EMAS支持纯血鸿蒙HarmonyOS NEXT
阿里云移动研发平台EMAS作为面向应用全生命周期提供一站式的应用研发管理服务产品,其核心产品包括云构建,HTTPDNS 和移动推送正式推出了针对纯血鸿蒙的SDK版本,将为广大开发者在鸿蒙生态中构建高效、稳定、可靠的企业级应用提供强有力的支持。如有疑问,请进入钉钉群(群号35248489)进行相关咨询。
|
6月前
|
安全 调度
鸿蒙HarmonyOS实战-Stage模型(线程模型)
本文介绍了线程作为操作系统调度的最小单位,是进程中的执行流,具有轻量级、并发执行、共享资源、通信简单和上下文切换等特点。线程分为用户线程和内核线程,其中内核线程由操作系统管理,而用户线程由应用程序控制。线程用于提高程序性能和响应速度,尤其适合多任务并发处理。在HarmonyOS中,每个应用有主线程负责UI和 ArkTS 引擎管理,以及Worker线程执行耗时任务。线程间通信可通过Emitter实现事件同步和Worker进行异步操作。
130 0