HarmonyOS开发环境搭建

一 鸿蒙简介:

1.1 HarmonyOS是华为自研的一款分布式操作系统,兼容Android,但又区别Android,不仅仅定位于手机系统。更侧重于万物物联和智能终端,目前已更新到4.0版本。

1.2 HarmonyOS软件编程语言是ArkTS,是基于TypeScript的拓展,而TypeScript又是JavaScript的拓展,所以有过JavaScript经验会更容易些。

e758bcf1c81e4a05803554c1b2944c52.png

二 HarmonyOS编程环境搭建

2.1 HarmonyOS软件编程工具是DevEco Studio,下载官网链接:https://developer.harmonyos.com/cn/develop/deveco-studio

25d6cf4c5e3b45afaca3d4364f986144.png

2.2 下载后点击安装

544dc3ad0481455c8216a0cadabc0ed1.png

2.3 安装好运行

5fa65d6024014e9c8aff423d928fff16.png

2.4  点击同意进入配置

df87eed0b4134d24b94c81e0074f4fb9.png

2.5 进入DevEco Studio配置页面,首先需要进行基础配置,包括Node.js与Ohpm的安装路径设置,选择从华为镜像下载至合适的路径

5a07748f6026442e9418f252e10ecee0.png

2.6 单击'Next'进入SDK配置,设置为合适的路径

e174fe9366d740059ba3f8c6da08117d.png

2.7 点击'Next'后会显示'SDK License Agreement',阅读相关协议后,勾选'Accept'。

c7b828d08b29472f9f8d0b2b956fc734.png

2.8 单击‘Next’进入配置预览页,在这里进行配置项的确认。

14b12ba2cf4248f9be720e1537b30367.png

 2.9 确认完成后,单击'Next',进入下一步。

da3aeae98b064047b461edd2531a1614.png

2.10 等待配置自动下载完成,完成后,单击'Finish',IDE会进入欢迎页,我们也就成功配置好了开发环境。9808182e08bd4bfc933009088a1b9b74.png

三 创建项目

3.1 在欢迎页中单击Create Project,进入项目创建页面。

f6d0bd1a56904723a8054b67c1fcbab1.png

3.2 选择‘Application’,然后选择‘Empty Ability’,单击‘Next’进入工程配置页。

49943d1a9c1048f3b0ae67af06de6e39.png

 3.3 配置页中,详细信息如下:

  • Project name是开发者可以自行设置的项目名称,这里根据自己选择修改为自己项目名称。
  • Bundle name是包名称,默认情况下应用ID也会使用该名称,应用发布时对应的ID需要保持一致。
  • Save location为工程保存路径,建议用户自行设置相应位置。
  • Compile SDK是编译的API版本,这里默认选择API9。
  • Model选择Stage模型,其他保持默认即可。
  • 然后单击“Finish”完成工程创建,等待工程同步完成。

3.4  进入IDE后,可以看到根大部分编辑器差不多。整个IDE的界面大致上可以分为四个部分,分别是代码编辑区、通知栏、工程目录区以及预览区。

d944e593d5cb4ded8aef877bea262f43.png

3.5 单击右上角Previewer,可以预览相应的文件UI展示效果。 

e68211318d984bb2902c4ac1cb11f730.png

四 调试

4.1  单击顶部工具栏Tools>Device Manager。

408fa10d4c0f4393a6e6d79c9bda0c5b.png

4.2 选择Local Emulator,设置合适的Local Emulator Location存储地址,然后单击’+New Emulator’

5d94af2fdfc84150bfe8b7551da2d761.png

4.3 选择Huawei_Phone手机模拟器,单击'Next',进入模拟器系统下载页。

c23e19e6b968493dbcbfe08a17d9f7a1.png

4.4  选择下载api9的系统镜像,然后单击'Next’,等待下载完成。

0652032cd82d4ed6814767224873b130.png

4.5  下载完成后,在Local Emulator页面中会出现创建的手机模拟器,点击Actions按钮,就能够启动模拟器。

9e4ad3991b4948e8a035d8720eb6f1d7.png

4.6 模拟器启动后,点击上方启动按钮,将Hello World工程运行到模拟器上。

6d7d4645b13b4d5e992e26990c55b87d.png

4.7 IDE构建完成后,即可在模拟器上看到运行效果,我们也就完成了Hello World工程在模拟器上的运行。

b7f1923b4fde41ca89b7d012d7b14b28.png

五 工程介绍

5.1 工程目录

a94ad8010fc4460c8086530a5e28a413.png

  • AppScope中存放应用全局所需要的资源文件。
  • entry是应用的主模块,存放HarmonyOS应用的代码、资源等。
  • oh_modules是工程的依赖包,存放工程依赖的源文件。
  • build-profile.json5是工程级配置信息,包括签名、产品配置等。
  • hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
  • oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。

5.2 模块目录

bef0b3eee99d4a048cf0c58af23ebe88.png

entry>src目录中主要包含总的main文件夹,单元测试目录ohosTest,以及模块级的配置文件。

  • main文件夹中,ets文件夹用于存放ets代码,resources文件存放模块内的多媒体及布局文件等,module.json5文件为模块的配置文件。
  • ohosTest是单元测试目录。
  • build-profile.json5是模块级配置信息,包括编译构建配置项。
  • hvigorfile.ts文件是模块级构建脚本。
  • oh-package.json5是模块级依赖配置信息文件。

进入src>main>ets目录中,其分为entryability、pages两个文件夹。

  • entryability存放ability文件,用于当前ability应用逻辑和生命周期管理。
  • pages存放UI界面相关代码文件,初始会生成一个Index页面。

5.3 AppScope>app.json5是应用的全局的配置文件,用于存放应用公共的配置信息。

4fc860c16a7440f5a188cc45013d4309.png

  • bundleName是包名。
  • vendor是应用程序供应商。
  • versionCode是用于区分应用版本。
  • versionName是版本号。
  • icon对应于应用的显示图标。
  • label是应用名。

5.4 src/main/resources/base/profile/main_pages.json文件保存的是页面page的路径配置信息,所有需要进行路由跳转的page页面都要在这里进行配置。

321f0715832445ebbadef107712bccb6.png

六 编译问题

6.1 如果工程中配置的releaseType字段与设备(模拟器和真机)镜像版本不匹配,则运行时会报INSTALL_PARSE_FAILED_USESDK_ERROR错误,如下图所示。

6.2 解决措施:

在设备中运行应用/服务时,build.gradle(API4-7)或build-profile.json5(API8及以上版本)文件中的compileSdkVersion和compatibleSdkVersion,以及SDK Stage(Beta或Release)需要与设备的apiVersion、releaseType相互匹配才能正常运行。具体的修改方法如下

6.3,在HarmonyOS SDK存储目录下的Sdk\hmscore\{版本号}\toolchains文件下打开CMD命令行工具,执行如下命令进行查询真机设备的apiVersion和releaseType取值。

在手机/平板HarmonyOS 3.1 Release设备上:

hdc -c shell 
getprop persist.sys.ohc.apiversion
getprop persist.sys.ohc.releasetype

在手机/平板HarmonyOS 3.1 Release之前版本的设备上:

hdc -c shell
getprop hw_sc.build.os.apiversion
getprop hw_sc.build.os.releasetype

如下 

 

打开模块的build.gradle(API4-7)或打开工程的build-profile.json5(API8-9)文件,查看compileSdkVersion、compatibleSdkVersion。

在模块的build.gradle(API4-7)文件中查看compileSdkVersion、compatibleSdkVersion

在工程的build-profile.json5(API8-9)文件查看compileSdkVersion、compatibleSdkVersion

6.4,点击File > Settings > SDKs > HarmonyOS,查看compileSdkVersion对应的SDK stage。例如,下图中API Version 7对应的Stage为Release。

6.5,根据查询的设备apiversion、releaseType,以及SDK Stage的取值,再查询下表中的匹配关系,来修改compileSdkVersion和compatibleSdkVersion的值。其中compileSdkVersion需要修改工程和各模块build.gradle中的取值;compatibleSdkVersion需要修改各模块下的build.gradle中的取值。

apiVersion

releaseType

compileSdkVersion

SDK Stage

compatibleSdkVersion

4

Release

4

Release

4

4

Release

5

Release

4

5

Release

5

Release

4或5

5

Release

5

Release

4或5

5

Release

6

Release

4或5

5

Release

6

Release

4或5

6

Release

5

Release

4或5

6

Release

6

Release

4或5或6

6

Release

5

Release

4或5

6

Release

6

Release

4或5或6

7

Release

7

Release

4或5或6或7

7

Release

6

Release

4或5或6

8

Release

6

Release

4或5或6

8

Release

8

Release

8

9

Release

9

Release

9

6.6,当前应用版本和设备镜像版本匹配后,如果仍然报该错误,且设备镜像版本已更新为3.1 Release版本,则说明当前使用的DevEco Studio版本与设备运行的镜像版本不匹配,请升级DevEco Studio至3.1 Release版本,在新版本DevEco Studio上进行运行/调试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/135235.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有哪些编程语言能在AI的应用上大显身手?

人工智能(AI)是当今最热门的技术领域之一,它涉及到许多不同的子领域,如机器学习、深度学习、自然语言处理、计算机视觉、语音识别等。要开发AI应用,就需要使用一种或多种编程语言,但是,并不是所…

函数式编程汇总

目录 一 . Lambda 表达式 实例 省略规则 二. Stream 流 案例数据准备 入门实例 调试技巧 常用操作 创建流 1. 单例集合 2. 数组 3. 双列集合 中间操作 1. filter 2. map 3. distinct 4. sorted 5. limit 7. flatMap 终结操作 1. forEach 2. count 3. max…

再战SDRAM与资料整理。

总之只要阅读操作手册,按照时序来,完全不难! 器件记录: 小梅哥AC620上SDRAM:M12L2561616A-6TG2T 其的存储空间为16M*16256MB,第二行的数字则与其速度等级有关;其分为: 4bank*16bit…

ES6的代理模式 | Proxy

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 正文 语法 Handler 对象常用的方法 handler.get 可撤消的Proxy Proxy的应用场景 校验器 私有属性 为什么要…

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是…

Java的XWPFTemplate工具类导出word.docx的使用

依赖 <!-- word导出 --><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.7.3</version></dependency><!-- 上面需要的依赖--><dependency><groupId>org.ap…

【MySQL】基础SQL语句——库的操作

文章目录 一. 创建数据库1.1 基础语句1.2 字符集和校验规则1.3 校验规则对读取数据的影响 二. 查看数据库三. 修改数据库四. 删除数据库及备份4.1 删除4.2 备份和还原 结束语 一. 创建数据库 1.1 基础语句 最简洁的创建数据库的SQL语句是&#xff1a; create database db_nam…

Linux设备驱动模型之platform设备

Linux设备驱动模型之platform设备 上一章节介绍了Linux字符设备驱动&#xff0c;它是比较基础的&#xff0c;让大家理解Linux内核的设备驱动是如何注册、使用的。但在工作中&#xff0c;个人认为完全手写一个字符设备驱动的机会比较少&#xff0c;更多的都是基于前人的代码修修…

深入理解Serverless架构:构建无服务器应用的完全指南

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 Serverless架构是一种现…

AOSP Android 系统源码编译出的framework.jar和android.jar之间的区别

简介 AOSP&#xff08;Android Open Source Project&#xff09;编译出的 android.jar 和 framework.jar 都是 Android 平台开发中的重要组件&#xff0c;但它们有不同的作用和用途&#xff1a; android.jar&#xff1a; 用途&#xff1a;android.jar 包含了 Android API 的定…

远程计算机控制软件

远程控制软件允许您连接和控制位于不同位置的设备&#xff0c;对于 IT 帮助台技术人员来说&#xff0c;这是一个很好的工具&#xff0c;可以通过与用户协作、与他们聊天以及安全地访问他们的文件来轻松排除故障和修复远程设备。使用远程控制软件&#xff0c;距离不再是提供技术…

LVS + Keepalived群集

文章目录 1. Keepalived工具概述1.1 什么是Keepalived1.2 工作原理1.3 Keepailved实现原理1.4 Keepalived体系主要模块及其作用1.5 keepalived的抢占与非抢占模式 2. 脑裂现象 &#xff08;拓展&#xff09;2.1 什么是脑裂2.2 脑裂的产生原因2.3 如何解决脑裂2.4 如何预防脑裂 …

VMware虚拟机如何设置网络

一直没弄明白怎么能让虚拟机正常上网和访问&#xff0c;最近总结一个小经验 要在宿主机访问虚拟机电脑服务器&#xff0c;要设置成nat格式&#xff0c;虚拟机可以上网&#xff0c;宿主机访问虚拟机上的ip即可访问虚拟机里的服务器&#xff0c;也就是这样设置就行。 这时候ip不…

ubunutu20/18/22 编译android 5相关的问题汇总-千里马framework开源代码平板编译过程

hi&#xff0c;粉丝朋友们&#xff1a; 闲鱼50块钱淘到了一个开源平板&#xff0c;注意这个平板是有源码的&#xff0c;可以进行相关的编译修改。哈哈哈&#xff0c;马哥这边就体验了一下50块钱平板是否可以拿来做framework呢&#xff1f; 哈哈&#xff0c;说好就开干了&#x…

Centos nginx配置文档

1、安装nginx: yum install nginx 2、Nginx常用命令 查看版本:nginx -v 启动:nginx -c /etc/nginx/nginx.conf 重新加载配置:nginx -s reload 停止:nginx -s stop 3、Nginx反向代理配置 nginx配置详解 1、Nginx配置图 详情可以查看:http://nginx.org/ru/docs/example…

华为云云服务器云耀L实例评测 | 智能不卡顿:如何实现流畅的业务运行

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Typora偏好设置中图床的配置文件点击打开没有反应

Typora偏好设置中图床的配置文件点击打开没有反应 突然发现Typora偏好设置中图床打开配置文件点击没有反应&#xff0c;如下按钮所示 可能是因为系统不知道用什么软件打开json&#xff0c;直接进入配置文件json目录&#xff0c;一般位置在C:\Users\<your_user_name>\.pi…

Qt 围炉札记

文章目录 一、Qt 调试二、vscode 与 Qt1、安装插件&#xff1a;2、设置中配置插件 一、Qt 调试 【Qt调试技巧】Profile配置使用及一些坑 QT运行时的Debug、Release、Profile选项区别 Qt Creator release版本进行调试 【Qt调试技巧】如何在Release下调试Qt程序&#xff1f; …

辅助驾驶功能开发-功能规范篇(21)-4-XP行泊一体方案功能规范

XPilot Parking 自动泊车系统 • 超级自动泊车辅助(Super AutoParking Assist)、语音控制泊车辅助(Autoparking with Speech) - 产品定义 超级自动泊车辅助是⼀个增强的自动泊车辅助系统。在超级自动泊车辅助系统中,识别车位将会变得实时可见, 并且不可泊入的⻋位也将…

GIS前端-地图事件编程

GIS前端-地图事件编程 图层操作事件地图状态事件交互事件弹出框事件导出PDF 在地图上的一切操作均要采用地图事件机制来实现&#xff0c;即通过鼠标、键盘等交互&#xff0c;触发地图相关事件&#xff0c;进而调用相关功能接口函数实现相应的GIS功能。在具体的实现过程中&#…