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”,并登录华为账号。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容