乐趣区

关于harmonyos:华为Harmony应用开发初探

HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设施零碎能力根底上,HarmonyOS 提出了基于同一套零碎能力、适配多种终端状态的分布式理念,可能反对手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(挪动办公、静止衰弱、社交通信、媒体娱乐等)业务能力。

HarmonyOS 提供了反对多种开发语言的 API,供开发者进行利用开发。反对的开发语言包含 Java、XML(Extensible Markup Language)、C/C++、JS(JavaScript)、CSS(Cascading Style Sheets)和 HML(HarmonyOS Markup Language)。

一、环境搭建

依据官网材料介绍,咱们能够在 Windows 零碎或 macOS 零碎上,应用 HUWEI DevEco Studio 进行 HarmonyOS 和 OpenHarmony 的用户应用程序。

首先,到官网下载开发工具 HUAWEI DevEco Studio 和 SDK 下载和降级,抉择本人零碎对应的版本进行下载,如下图所示。

而后,关上安装包进行装置即可。装置完后,当咱们启动 DevEco Studio 工具的时候,零碎提醒咱们须要装置 Node,这是因为 HarmonyOS 应用程序也反对应用 JS 进行开发,咱们只须要依照提醒进行装置即可,如下图。

接下来,就是 SDK 的下载过程,SDK 下载实现之后,就能够进行利用开发工作了。
 

二、疾速上手

2.1 创立我的项目

首先,咱们关上 DevEco Studio 开发工具创立一个手表利用我的项目。目前,轻量级智能穿戴设施 Lite Wearable 开发均采纳 JS 语言反对 Empty FeatureAbility 和 List Feature Ability 两种开发模板。开发框架以 454px(这里 px 是逻辑像素非物理像素) 为基准宽度。所以,咱们创立一个轻量级智能穿戴设施的工程抉择 Lite Wearable 设施下的 EmptyFeature Ability 模板,如下图。

而后,装置要求填写我的项目名、包名、开发语言等内容,如下图。

配置的详细信息如下:

  • Project name:是开发者能够自行设置的项目名称,这里依据本人抉择批改为本人项目名称。
  • Bundle name:是包名称,默认状况下利用 ID 也会应用该名称,利用公布时对应的 ID 须要保持一致。
  • Save location:为工程保留门路,倡议用户自行设置相应地位。
  • Compile SDK:是编译的 API 版本,这里默认抉择 API9。
  • Model:抉择 Stage 模型,其余放弃默认即可。

2.2 我的项目构造

ArkTS 工程目录构造

  • entry:HarmonyOS 工程模块,编译构建生成一个 HAP 包。
    • src > main > ets:用于寄存 ArkTS 源码。
    • src > main > ets > entryability:利用 / 服务的入口。
    • src > main > ets > pages:利用 / 服务蕴含的页面。
    • src > main > resources:用于寄存利用 / 服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。对于资源文件的具体阐明请参考资源文件的分类。
    • src > main > module.json5:模块配置文件。次要蕴含 HAP 包的配置信息、利用 / 服务在具体设施上的配置信息以及利用 / 服务的全局配置信息。具体的配置文件阐明,详见配置文件阐明(JS/ArkTS)。
    • build-profile.json5:以后的模块信息、编译信息配置项,包含 buildOption、targets 配置等。
    • hvigorfile.ts:模块级编译构建工作脚本,开发者能够自定义相干工作和代码实现。
  • build-profile.json5:利用级配置信息,包含签名、产品配置等。
  • hvigorfile.ts:利用级编译构建工作脚本。

JS 工程目录构造

  • entry:HarmonyOS 工程模块,编译构建生成一个 HAP 包。
    • src > main > js:用于寄存 js 源码。
    • src > main > js > MainAbility:利用 / 服务的入口。
    • src > main > js > MainAbility > i18n:用于配置不同语言场景资源内容,比方利用文本词条、图片门路等资源。
    • src > main > js > MainAbility > pages:MainAbility 蕴含的页面。
    • src > main > js > MainAbility > app.js:承载 Ability 生命周期。
    • src > main > resources:用于寄存利用 / 服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。对于资源文件的具体阐明请参考资源限定与拜访。
    • src > main > config.json:模块配置文件。次要蕴含 HAP 包的配置信息、利用 / 服务在具体设施上的配置信息以及利用 / 服务的全局配置信息。具体的配置文件阐明,详见配置文件阐明(JS/ArkTS)。
    • build-profile.json5:以后的模块信息、编译信息配置项,包含 buildOption、targets 配置等。
    • hvigorfile.ts:模块级编译构建工作脚本,开发者能够自定义相干工作和代码实现。
  • build-profile.json5:利用级配置信息,包含签名、产品配置等。
  • hvigorfile.ts:利用级编译构建工作脚本。

2.3 运行我的项目

首先,单击顶部工具栏 Tools>Device Manager,而后抉择 Local Emulator,设置适合的 Local Emulator Location 存储地址,而后单击’+New Emulator’,如下图。

抉择 Huawei_Phone 手机模拟器,单击 ’Next’,进入模拟器零碎下载页,下载完后创立一个模拟器,感觉和 Android 是一样的。下载实现后,在 Local Emulator 页面中会呈现创立的手机模拟器,点击 Actions 按钮,就可能启动模拟器。

模拟器启动后,点击上方启动按钮,将 Hello World 工程运行到模拟器上。

那如果要在手表上运行我的项目,须要怎么做呢?首先,咱们须要下载 System-image-wearable 镜像包,而后能力创立手表的模拟器,如下图。

 

留神,如果最新 3.1 版本不行,能够下载 3.0 版本的。

三、工程详解

接下来,咱们具体的介绍下 Harmony 我的项目的工程构造。

3.1 工程级目录

文件的阐明如下:

  • AppScope:寄存利用全局所须要的资源文件。
  • entry:利用的主模块,寄存 HarmonyOS 利用的代码、资源等。
  • oh_modules:工程的依赖包,寄存工程依赖的源文件。
  • build-profile.json5:工程级配置信息,包含签名、产品配置等。
  • hvigorfile.ts:工程级编译构建工作脚本,hvigor 是基于工作管理机制实现的一款全新的自动化构建工具,次要提供工作注册编排,工程模型治理、配置管理等外围能力。
  • oh-package.json5:工程级依赖配置文件,用于记录引入包的配置信息。

 

在 AppScope,其中有 resources 文件夹和配置文件 app.json5。AppScope>resources>base 中蕴含 element 和 media 两个文件夹:

  • element:寄存公共的字符串、布局文件等资源。
  • media:寄存全局公共的多媒体资源文件。

3.2 模块级目录

entry>src 目录中次要蕴含总的 main 文件夹,单元测试目录 ohosTest,以及模块级的配置文件。

  • ets:用于寄存 ets 代码,resources 文件寄存模块内的多媒体及布局文件等,module.json5 文件为模块的配置文件。
  • ohosTest:单元测试目录。
  • build-profile.json5:模块级配置信息,包含编译构建配置项。
  • hvigorfile.ts:模块级构建脚本。
  • oh-package.json5:模块级依赖配置信息文件。

ets 目录中有 entryability、pages 两个文件夹:

  • entryability 寄存 ability 文件,用于以后 ability 应用逻辑和生命周期治理。
  • pages 寄存 UI 界面相干代码文件,初始会生成一个 Index 页面。

resources 目录下寄存模块公共的多媒体、字符串及布局文件等资源,别离寄存在 element、media 文件夹中。

 

3.3 app.json5

AppScope>app.json5 是利用的全局的配置文件,用于寄存利用公共的配置信息。配置信息如下:

  • bundleName:包名。
  • vendor:应用程序供应商。
  • versionCode:用于辨别利用版本。
  • versionName:版本号。
  • icon:对应于利用的显示图标。
  • label:利用名。

3.4 module.json5

module.json5 是模块的配置文件,蕴含以后模块的配置信息。module.json5 默认配置属性及形容如下:

属性 形容
name 该标签标识以后 module 的名字,module 打包成 hap 后,示意 hap 的名称,标签值采纳字符串示意(最大长度 31 个字节),该名称在整个利用要惟一。
type 示意模块的类型,类型有三种,别离是 entry、feature 和 har。
srcEntry 以后模块的入口文件门路。
description 以后模块的形容信息。
mainElement 该标签标识 hap 的入口 ability 名称或者 extension 名称。只有配置为 mainElement 的 ability 或者 extension 才容许在服务中心露出。
deviceTypes 该标签标识 hap 能够运行在哪类设施上,标签值采纳字符串数组的示意。
deliveryWithInstall 标识以后 Module 是否在用户被动装置的时候装置,示意该 Module 对应的 HAP 是否追随利用一起装置。- true:被动装置时装置。- false:被动装置时不装置。
installationFree 标识以后 Module 是否反对免装置个性。- true:示意反对免装置个性,且合乎免装置束缚。- false:示意不反对免装置个性。
pages 对应的是 main_pages.json 文件,用于配置 ability 中用到的 page 信息。
abilities 是一个数组,寄存以后模块中所有的 ability 元能力的配置信息,其中能够有多个 ability。

abilities 中对象的默认配置属性及形容如下表:

属性 形容
name 该标签标识以后 ability 的逻辑名,该名称在整个利用要惟一,标签值采纳字符串示意(最大长度 127 个字节)。
srcEntry ability 的入口代码门路。
description ability 的形容信息。
icon ability 的图标。该标签标识 ability 图标,标签值为资源文件的索引。该标签可缺省,缺省值为空。如果 ability 被配置为 MainElement,该标签必须配置。
label ability 的标签名。
startWindowIcon 启动页面的图标。
startWindowBackground 启动页面的背景色。
visible ability 是否能够被其余应用程序调用,true 示意能够被其它利用调用,false 示意不能够被其它利用调用。
skills 标识可能接管的用意的 action 值的汇合,取值通常为零碎预约义的 action 值,也容许自定义。
entities 标识可能接管的 Want 的 Action 值的汇合,取值通常为零碎预约义的 action 值,也容许自定义。
actions 标识可能接管 Want 的 Entity 值的汇合。

3.5 main_pages.json

main_pages.json 文件保留的是页面 page 的门路配置信息,所有须要进行路由跳转的 page 页面都要在这里进行配置。

退出移动版