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

本文基于 OpenHarmony 4.0 Release 版本应用开发文档

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

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

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

  • 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 依赖。

构建页面

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

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

实现页面间的跳转

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

使用真机运行应用

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

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

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

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

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

大功告成,把 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",并登录华为账号。

相关推荐
zhongcx4 小时前
鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景
harmonyos
@海~涛6 小时前
鸿蒙OpenHarmony
华为·harmonyos
zhongcx11 小时前
鸿蒙应用示例:镂空效果实现教程
harmonyos
训山12 小时前
【11】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-模块化语法与自定义组件
笔记·学习·华为·harmonyos·鸿蒙系统
helloxmg13 小时前
鸿蒙harmonyos next flutter混合开发之开发package
flutter·华为·harmonyos
zhongcx1 天前
鸿蒙应用示例:ArkTS UI框架中的文本缩进技巧
harmonyos
东林知识库1 天前
鸿蒙NEXT开发-自定义构建函数(基于最新api12稳定版)
华为·harmonyos
裴云飞2 天前
鸿蒙性能优化之布局优化
性能优化·harmonyos
zhongcx2 天前
鸿蒙应用示例:ArkTS中设置颜色透明度与颜色渐变方案探讨
harmonyos
PlumCarefree2 天前
mp4(H.265编码)转为本地RTSP流
音视频·harmonyos·h.265