当前位置: 首页>后端>正文

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来

OpenHarmony 简介

ArkUI 开发框架

OpenHarmony 提供了一套UI开发框架,即方舟开发框架(ArkUI 框架)。

两种开发范式

支持两种开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JS的类Web开发范式(简称“类Web开发范式”)。

开发范式名称 语言生态 UI更新方式 适用场景 适用人群
声明式开发范式 ArkTS语言 数据驱动更新 复杂度较大、团队合作度较高的程序 移动系统应用开发人员、系统应用开发人员
类Web开发范式 JS语言 数据驱动更新 界面较为简单的程序应用和卡片 Web前端开发人员

两种应用模型

OpenHarmony 先后提供了两种应用模型:

  • Stage模型: OpenHarmony API 9 开始新增的模型,是目前主推且会长期演进的模型。
  • FA(Feature Ability)模型: OpenHarmony API 7 开始支持的模型,已经不再主推。

写一个 Hello World 并在华为手机上跑起来

安装 DevEco Studio

安装最新版 DevEco Studio

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第1张

构建第一个ArkTS应用(Stage模型)

ArkTS工程目录结构(Stage模型)

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第2张
OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第3张
  • AppScope > app.json5:应用的全局配置信息。

  • entry:OpenHarmony工程模块,编译构建生成一个HAP包。

    • src > main > ets:用于存放ArkTS源码。
    • src > main > ets > entryability:应用/服务的入口。
    • src > main > ets > pages:应用/服务包含的页面。
    • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源文件的分类。
    • src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。
    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
    • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
    • obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。
  • oh_modules:用于存放三方库依赖信息。

  • build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等。

  • hvigorfile.ts:应用级编译构建任务脚本。

值得一提,DevEco IDE 依赖 Node.js 和 pnpm,我创建项目使用的版本是 node-16.20.1,pnpm 用于安装 npm 依赖。

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第4张
OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第5张

构建页面

右键点击“pages”文件夹,选择“New > ArkTS File”。打开“entry > src > main > resources > base > profile”,在main_pages.json文件中的“src”下配置页面路由“pages/Xxx”。

也可以在右键点击“pages”文件夹时,选择“New > Page”,则无需手动配置相关页面路由。

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第6张

实现页面间的跳转

页面间的导航可以通过页面路由router来实现。使用页面路由请导入router模块。如果需要实现更好的转场动效等,推荐使用 Navigation 。

使用真机运行应用

OpenHarmony 应用可以打包成 hap 安装包,但打包了也没用,因为 hap 不支持侧载,在 HarmonyOS 手机上也无法直接安装 hap 包,除非上了应用市场。OpenHarmony 设备(特殊开发板)则可以直接安装。

开发者可以通过 IDE 安装到手机上,首先要生成签名。

点击 File > Project Structure… > Project > SigningConfigs 界面勾选 “Automatically generate signature” 和 “Support HarmonyOS”,并登录华为账号,等待自动签名完成即可。

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第7张

接下来,HarmonyOS 手机开启开发者模式,连接电脑,选择文件传输模式,并打开 USB 调试,IDE 上就能看到设备了(我的是老古董 HUAWEI Mate 30 Pro),点击运行,手机上就能看到页面了。

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第8张
OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第9张

手机上也多了一个应用图标

OpenHarmony 应用(HarmonyOS 原生应用)- 写一个 Hello World 并在华为手机上跑起来,第10张

大功告成,把 HarmonyOS 原生应用装到了手机上。

过程中还是遇到了一些坑,记录一下:

  • Failure[INSTALL_PARSE_FAILED_USESDK_ERROR]

这是因为 DevEco Studio 使用的 SDK 版本与手机 HarmonyOS 的 SDK 版本不匹配,我的手机 HarmonyOS 4 对应 API 9,但创建项目我选了 API 10,改为用 API 9 创建项目就没问题了,目前还没有真机(华为手机)支持 API 10,OpenHarmony 开发板才可以。

  • Failure[MSG_ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL]

签名时需要勾选 “Support HarmonyOS”,并登录华为账号。


https://www.xamrdz.com/backend/3sy1926049.html

相关文章: