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. ......
相关推荐
狮子也疯狂2 分钟前
【生态互联】| 鸿蒙三方库的选择与适配策略
华为·harmonyos
不爱吃糖的程序媛4 分钟前
鸿蒙Lycium 交叉编译框架完全指南
华为·harmonyos
人间打气筒(Ada)9 分钟前
[鸿蒙2025领航者闯关]星盾护航支付安全:鸿蒙6.0在金融APP中的实战闯关记
安全·金融·harmonyos·#鸿蒙2025领航者闯关#·#鸿蒙6实战#·#开发者年度总结#
千里马学框架10 分钟前
如何使用豆包手机的READ_FRAME_BUFFER权限截图密码画面
android·智能手机·framework·安卓framework开发·权限·截图·secure
wanhengidc11 分钟前
云端虚拟 巨椰 云手机
运维·服务器·安全·智能手机·云计算
wanhengidc11 分钟前
云手机 互联网 云端科技
运维·服务器·科技·智能手机·云计算
hh.h.12 分钟前
灰度发布与A/B测试:Flutter+鸿蒙的分布式全量发布方案
分布式·flutter·harmonyos
蒙奇·D·路飞-15 分钟前
智谱开源AutoGLM:全球首个手机操作AI Agent的技术革命与生态重构
人工智能·智能手机·开源
xiaoyustudiowww16 分钟前
手机拍照一点个人观点
智能手机
路人与大师18 分钟前
PaddleOCR VL 华为NPU 910B 环境配置完成报告
华为