HarmonyOS 移动应用开发

news2024/11/4 22:56:17

HarmonyOS 移动应用开发

鸿蒙:Harmony(中文名字是 鸿蒙操作系统)

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。

HarmonyOS的目标是覆盖“1+8+N”全场景终端设备,这里“1”代表的是手机,“8”代表PC、平板、手表、智慧屏、AI音响、耳机、AR/VR眼镜、车机,“N”代表其它物联网(Internet of Things,IoT)生态产品。

三个显著技术特性:

硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署

体系架构

HarmonyOS系统整体上采用的的是分层的体系架构。

从下向上依次为:内核层、系统服务层、框架层和应用层。

支持的开发语言

C/C++、Java、XML、JS(JavaScript)、TS(TypeScript)、ArkTS、CSS和HML(HarmonyOS Markup Language)等等。

目前主要支持的是两大语言

一个是JavaScript,简称JS;

一个是改进的TypeScript,也称eTS或ArkTS。

常见操作系统介绍

操作系统(Operating System,简称OS),是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件。

介绍几个操作系统:Windows系列、Unix、Linux、Mac OS、iOS、Android、HarmonyOS。

Windows:是由微软公司成功开发的操作系统.Windows是一个多任务的操作系统,采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现,这样可能是Windows得以广泛使用的原因之一。

UNIX:UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构的分时操作系统。长期由一些大型的公司在维护,限制了广泛推广。

Linux:和UNIX完全兼容,是由芬兰赫尔辛基大学计算机系学生Linus Torvalds在基于UNIX的基础上开发的一个操作系统。开源,得到了长足发展。出现了很多发行版本,如:FedoraCore、CentOS、Debian、Ubuntu、Gentoo、FreeBSD、openSUSE等等

Mac OS:是有苹果公司推出的专门运行与苹果电脑上的操作系统,在商用领域,Mac OS是图形用户界面首个获得成功的。1984年诞生,历经几十年发展,版本也有很多。

iOS:iOS可以说是macOS的手机版,它们都属于类Unix的商业操作系统。因为主要是手机上使用,原名为iPhone OS,后来因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC上宣布改名为iOS。

HarmonyOS 是一款面向全场景的分布式操作系统。Harmony本意也有和谐协调,希望鸿蒙操作系统功能协调各种软硬件资源,为我们带来更多的方便。

搭建开发环境
DevEco Studio 介绍

DevEco Studio集成开发环境是基于IntelliJ IDEA Community开源版本开发的,面向全场景多设备,提供一站式的分布式应用开发平台。

可以通过该IDE进行项目创建、开发、编译、调试、发布等。

除了具有基本的代码开发、编译构建及调测等功能外,还具有以下特点,

1)多设备统一开发环境

2)高效智能代码编辑

3)多端双向实时预览

4)多端设备模拟仿真

5)低代码可视化开发

下载安装DevEco Studio

注册华为开发者联盟帐号,并实名认证

注册网站:https://developer.harmonyos.com

下载:链接:https://developer.harmonyos.com/cn/develop/deveco-studio

下载完成Windows(64-bit)版本后,解压,然后双击运行deveco-studio-xxxxx.exe, 按照安装向导安装。

第一次运行项目基本过程:

鸿蒙虚拟机管理

选择菜单Tools->Device Manager登录华为开发者账号允许DevEco Studio访问账号

动模拟器选择P50打开手机模拟器运行项目选择Run->Run entry链接设备HUAEWEI模拟器点击 OK 运行

APP Pack = Application Package,简称APP Pack,鸿蒙应用发布应用包

APP由一个或多个HAP(HarmonyOS Ability Package)以及描述APP属性的pack.info文件组成

FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型

其中FA支持Page Ability,PA支持Service Ability、Data Ability,以及FormAbility。API 8及其更早版本的应用程序只能使用FA模型进行开发

Stage模型将Ability分为PageAbility和ExtensionAbility两大类

其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等一系列ExtensionAbility,以便满足更多的使用场景。Stage模型从API 9开始支持

目录结构

AppScope:应用的资源和配置信息,其中包括应用的全局资源和应用的配置文件(app.json5)。

entry:默认启动模块,即主模块,开发者用于存放编写的源码文件以及开发资源文件的目录

build:构建目录,用于存放编译构建生成的文件,有开发环境自动生成,一般开发者无需修改。

entry→src:源代码目录,用于存放编写的程序源代码,也包括配置文件代码等。entry→src→main→ets:用于存放eTS源代码文件的目录。

entry→src→main→resources:用于存放应用所用到的资源文件目录,其下面又分为元素(element)资源和媒体(media)资源,元素资源如颜色、字符串、形状等,媒体资源如图片、音频等。

entry→src→main→module.json5:模块的配置文件,如模块中的Ability配置等

entry→src→ohosTest:存放单元测试代码的目录。

entry→build-profile.json5:编译配置文件。

node_modulers:该文件夹中存放的是node.js包管理工具安装的包。

local.properties:该文件保存了sdk等对应的本地路径。

在element目录下一般用于存放字符串、颜色、整数、浮点数、复数、布尔值、数组等。
element资源的目录下,可以通过右键快捷菜单创建需要的元素资源文件
资源和配置
引用基础资源的形式:

$r(‘app.type.name’)

引用rawfile下的资源的形式:

$rawfile(‘filename’)

配置文件均为JSON格式文本文件,其中包含了一系列配置项,每个配置项由属性和值两部分构成。

属性:代表的是配置项的名称,属性出现顺序不分先后,且每个属性最多只允许出现一次。

值:属性的值表示配置的含义,值为JSON的基本数据类型,包括数值、字符串、布尔值、数组、对象和null类型等。

pages配置页面是为了给模块配置若干个页面对应源码位置,在模块的配置中,通过配置“pages”为模块配置页面对应的配置文件:“pages”: “$profile:main_pages”,

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

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

相关文章

JeecgBoot集成工作流实战教程

Activiti是一个轻量级的工作流程和业务流程管理(BPM)平台,它主要面向业务人员、开发人员和系统管理员。这个平台的核心是一个快速且可靠的Java BPMN 2流程引擎。Activiti是开源的,并且基于Apache许可证进行分发。它可以运行在任何…

【Python3】【力扣题】409. 最长回文串

【力扣题】题目描述: (题意理解)统计如下: ① 字母个数本身是偶数。 ② 字母个数是奇数,统计奇数中的偶数部分,例如:字母个数为3,统计其中的2。 ③ 中间可以有一个奇数字母。即只要有…

链接分析与反向链接的重要性及最佳实践解析

内容概要 链接分析与反向链接是网络营销和搜索引擎优化的两个基本要素。了解这些概念的基础知识,能够帮助网站管理员和市场营销者更好地掌握搜索引擎的运作机制。链接分析主要是指评估网站之间的连接关系,通过研究不同网页之间的链接情况,找…

HTML 基础标签——链接标签 <a> 和 <iframe>

文章目录 1. `<a>` 标签属性详细说明示例2. `<iframe>` 标签属性详细说明示例注意事项总结链接标签在HTML中是实现网页导航的重要工具,允许用户从一个页面跳转到另一个页面或嵌入外部内容。主要的链接标签包括 <a> 标签和<iframe> 标签。本文将深入探…

分拣线番茄分级缺陷识别图像分割系统:创新探讨教学

分拣线番茄分级缺陷识别图像分割系统源码&#xff06;数据集分享 [yolov8-seg-timm&#xff06;yolov8-seg-dyhead-DCNV3等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源A…

RTP和RTCP的详细介绍及其C代码示例

RTP和RTCP的详细介绍及其C代码示例 RTP和RTCP简介RTP协议详解RTCP协议详解RTP和RTCP之间的关系C代码示例RTP和RTCP简介 RTP(Real-time Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)是流媒体传输中常用的两个协议。R…

微服务系列三:微服务核心——网关路由

目录 前言 一、登录存在的问题归纳 二、*微服务网关整体方案 三、认识微服务网关 四、网关鉴权实现 五、OpenFeign微服务间用户标识信息传递实现 六、微服务网关知识追问巩固 前言 本篇文章具体讲解微服务中网关的实现逻辑、用于解决什么样的问题。其中标题中标注* 涉…

开源一个开发的聊天应用与AI开发框架,集成 ChatGPT,支持私有部署的源码

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一个开发的聊天应用与AI开发框架&#xff0c;集成 ChatGPT&#xff0c;支持私有部署的源码。 介绍 当前系统集成了ChatGPT的聊天应用&#xff0c;不仅提供了基本的即时通讯功能&#xff0c;还引入了先进的AI技术&#x…

心觉:人每日60000念头,如何让你的时间精力只专注于核心目标?

Hi&#xff0c;我是心觉&#xff0c;带你用潜意识化解各种焦虑、内耗&#xff0c;建立无敌自信&#xff1b;教你财富精准显化的实操方法&#xff1b;关注我,伴你一路成长&#xff01; 每日一省写作220/1000天 据说一个人每天会产生60000个念头 有些我们的意识能察觉到&#x…

万宇科技闪耀创新舞台 荣膺潜在独角兽企业殊荣

2024年10月24日&#xff0c;在“2024东北亚(沈阳)人才交流大会暨中国潜在独角兽企业发展大会”上&#xff0c;长城战略咨询重磅发布《GEI中国潜在独角兽企业研究报告2024》&#xff0c;揭示了中国潜在独角兽企业群体的最新发展态势。其中&#xff0c;安徽万宇机械设备科技有限公…

论文阅读:Computational Long Exposure Mobile Photography (一)

这篇文章是谷歌发表在 2023 ACM transaction on Graphic 上的一篇文章&#xff0c;介绍如何在手机摄影中实现长曝光的一些拍摄效果。 Abstract 长曝光摄影能拍出令人惊叹的影像&#xff0c;用运动模糊来呈现场景中的移动元素。它通常有两种模式&#xff0c;分别产生前景模糊或…

数据结构与算法 - 基础

本文首发于 个人博客 程序 数据结构 算法 其实很多同学知道数据结构与算法很重要&#xff0c;但是却不明觉厉。 这里我们看一个简单的题&#xff1a; 对自然数从1到100的求和 最简单的设计无非是&#xff1a; void addNum () { int total 0; for (int i 1; i < 1…

算法简介:动态规划

动态规划 1. 动态规划2. 案例2.1 旅游行程最优化 1. 动态规划 背包问题&#xff1a;背包可以容纳的重量是4磅&#xff0c;吉他为1磅&#xff0c;价值1500元&#xff1b;音响为4磅&#xff0c;价值3000元&#xff1b;笔记本电脑为3磅&#xff0c;价值为2000元。如何在背包中放入…

GPU 学习笔记四:GPU多卡通信(基于nccl和hccl)

文章目录 一、前沿1.1 背景回顾1.2 XCCL在AI通信架构中的位置和作用 二、英伟达GPU通信 nccl2.1 NCCL简介2.2 通信模式2.2.1 通信模式分类2.2.2 通信模式分析2.2.3 通信nccl编程实例 2.3 NCCL通信算法2.3.1 环形算法 ring algorithm2.3.2 树形算法 tree algorithm 防止遗忘和后…

最新PHP校园源码系统开发(多客社区校园系统源码全套APP源码附搭建教程)

最新PHP校园源码系统开发、多客社区校园系统源码以及全套APP源码附搭建教程的需求 一、最新PHP校园源码系统开发 技术栈选择&#xff1a; 后端&#xff1a;PHP&#xff08;建议使用PHP 7.2或更高版本&#xff09;数据库&#xff1a;MySQL&#xff08;建议使用MySQL 5.6或更高版…

Netty 组件介绍 - ByteBuf

直接内存&堆内存 ByteBuf buffer ByteBufAllocator.DEFAULT.heapBuffer(10);ByteBuf byteBuf ByteBufAllocator.DEFAULT.directBuffer(10); 组成 ByteBuf维护了两个不同的索引&#xff0c;一个用于读取&#xff0c;一个用于写入。 写入 内存回收 堆内存使用的是JVM内…

Java项目实战II基于Java+Spring Boot+MySQL的高校办公室行政事务管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在高等教育…

word mathml 创建粗体字母快捷键

在 mathml 中达到latex中 \mathbf{A} 的效果 由于word本身不支持这个命令&#xff0c;所以打算用快捷键实现 快捷键的功能是加粗光标前一个字目 1. Alt F8 打开宏&#xff0c;如果打不开可以尝试 Alt Fn F8 2. 输入 BoldPreviousCharacter 新建宏&#xff1a; Sub Bold…

redis实现分布式锁,go实现完整code

Redis分布式锁 Redis 分布式锁是一种使用 Redis 数据库实现分布式锁的方式&#xff0c;可以保证在分布式环境中同一时间只有一个实例可以访问共享资源。 实现机制 以下是实现其加锁步骤&#xff1a; 获取锁 在 Redis 中&#xff0c;一个相同的key代表一把锁。是否拥有这把锁&…

flink 自定义kudu connector中使用Metrics计数平均吞吐量,并推送到自定义kafkaReporter

文章目录 前言1. Registering metrics2. Metrics 的类型2.1 counter2.2 Gauge2.3 Histogram2.4 meter 3. 指标划分3.1 指标所属的范围3.2 默认所属 4. 自定义kudu connector中使用Metrics4.1 sink算子继承RichFunction4.2 注册指标4.3 计数逻辑4.4 自定义Reporter&#xff0c;推…