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",