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

构建第一个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",并登录华为账号。

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. 应用开发导读(Java)

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ......
相关推荐
钉先生贾37 分钟前
毕业项目:从上游更新到回归发布的完整维护闭环
华为·harmonyos
行者-全栈开发1 小时前
【鸿蒙心迹】权限申请全流程——从声明到用户授权的完整链路(HarmonyOS 7.x)
华为·harmonyos
KevinChaos21 小时前
阳台小花园开发手记 01|HarmonyOS 7.0 互动卡片:小花园为何要两套界面
华为·harmonyos
Ranger092921 小时前
下一代鸿蒙打包工具链:arkdown
harmonyos
程序猿追1 天前
一个工程面向手机与二合一:HarmonyOS 6 部署配置和本地手记
华为·智能手机·harmonyos
行者-全栈开发1 天前
【鸿蒙心迹】深色模式适配全链路——从配置到自定义(HarmonyOS 7.x)
华为·harmonyos
xx z2 天前
哔哩哔哩第三方客户端 PiliPlus 实测:23.5MB 轻量版,手机平板电脑通用
智能手机·电脑
传奇开心果编程2 天前
【Flutter踩坑排雷】第19课:路由硬编码坑|字符串路由书写错误,页面跳转失败排查
android·flutter·ios·移动开发·跨平台·ui框架·声明式ui
行者-全栈开发2 天前
【鸿蒙心迹】国际化 i18n 与多语言资源管理实战(HarmonyOS 7.x)
ui·华为·重构·国际化·harmonyos·多语言
OH_TPC2 天前
HarmonyOS APP开发---"云客服"远程视频客服App,需要用到这个库
harmonyos