001 鸿蒙系统环境搭建及运行hello world

下载与安装DevEco Studio

在HarmonyOS应用开发学习之前,需要进行一些准备工作,首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。

进入DevEco Studio下载官网,单击“立即下载”进入下载页面。

DevEco Studio提供了Windows版本和Mac版本选择,可以根据操作系统选择对应的版本进行下载。

这里以Windows为例进行安装。

下载完成后,双击下载的“deveco-studio-xxxx.exe”,进入DevEco Studio安装向导,在如下界面选择安装路径,默认安装于“C:\Program Files”下,也可以单击“Browse...”指定其他安装路径,然后单击“Next”。

如下安装选项界面勾选DevEco Studio后,单击“Next”,直至安装完成。


安装完成后,单击“Finish”完成安装。

配置环境

配置npm

双击已安装的DevEco Studio快捷方式进入配置页面,首次使用,请选择“Do not import

settings”,单击“OK”。

进入DevEco Studio操作向导页面,设置npm registry,DevEco Studio已预置对应的仓库,直接单击“Start using

DevEco Studio”进入下一步。

配置Node.js

进入Node.js的配置页,选择Dowload,从Huawei mirror下载对应的版本,“Location”建议自行设置指定位置。

 单击“Next”,系统会开始下载Node.js,等待下载完成即可。

 下载完成后单击“Finish”,进入下一步。

下载SDK

在SDK

Components Setup界面,可以自行设置HarmonyOS SDK存储路径。单击“Next”进入下一步。

在弹出的SDK下载页面,单击“Next”,并在弹出的License Agreement窗口,阅读License协议,需同意License协议后,单击“Next”开始下载SDK。

等待SDK下载完成后,单击“Finish”,完成SDK的下载,界面会进入到DevEco Studio欢迎页。

准备工作完成后,接下来将进入DevEco Studio进行工程创建和运行。

创建项目

如果你是首次打开DevEco Studio,那么首先会进入欢迎页。

单击Create Project,进入项目创建页面。

DevEco Studio为我们提供了HarmonyOS和OpenHarmony的创建模板,我们这里选择创建HarmonyOS,然后选择Empty Ability,单击“Next”,进入工程配置页。

编辑

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

Project name是开发者可以自行设置的项目名称,这里根据自己选择修改为自己项目名称。

Project type项目类型可以选择Application和Atomic

    service。

Bundle name是包名称,默认情况下应用ID也会使用该名称,应用发布时对应的ID需要保持一致。

Save location为工程保存路径,建议用户自行设置相应位置。

Compile SDK是编译的API版本,这里默认选择API9。

Model选择Stage模型,其他保持默认即可。

然后单击“Finish”完成工程创建,等待工程同步完成。

认识DevEco Studio界面

代码编辑区

进入DevEco Studio页面后,首先了解整体的界面和功能,中间的是代码编辑区,你可以在这里修改你的代码,以及切换显示的文件。通过按住Ctrl加鼠标滚轮,可以实现界面的放大与缩小。

通知栏


在编辑器底部有一行工具栏,主要介绍常用信息栏,其中Run是项目运行时的信息栏,Problems是当前工程错误与提醒信息栏,Terminal是命令行终端,在这里执行命令行操作,PreviewerLog是预览器日志输出栏,Log是模拟器和真机运行时的日志输出栏。在后续使用中会陆续接触。

工程目录区

左侧为工程目录区,后续章节会详细介绍。

预览区

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

预览器提供了一些基本功能,包括旋转屏幕,切换显示设备及多设备预览等。单击旋转按钮,可以切换竖屏和横屏显示的效果。

你也可以单击如下列表按钮,切换显示的设备类型。弹出框内会显示Available Profiles,即可用的设备类型。

如单击Foldable切换设备,也可以单击旋转按钮切换Foldable的横竖屏显示模式。

打开Muti-profile preview开关,可以实现多个尺寸设备的实时预览。

单击预览器右上角组件预览按钮,可以进入组件预览界面。

组件预览模式可以预览当前组件对应的代码块。

点击相应组件,代码文件中会框选对应的组件代码部分,下方则对应当前组件的基本属性。

运行Hello World

IDE提供了模拟器和真机供开发者使用,其中模拟器又分为本地模拟器和远程模拟器。

这里以本地模拟器为例进行介绍

首先打开设备管理器,如下所示:

然后如下所示:

此处可以修改模拟器的存储路径和新增模拟器,建议将默认c盘路径修改成其他盘符,然后新建模拟器

可以选择手机模拟器,TV模拟器,手表模拟器,这里选择手机模拟器,然后点击Next

第一次是没有下载的,点击如上按钮进行下载,然后点击Next,得到如下图所示的模拟器

点击IDE的运行项目按钮,如下:

最终会运行到模拟器上面

如上就是鸿蒙系统应用开发环境搭建以及运行第一个应用Hello World

了解基本工程目录

工程级目录

工程的目录结构如下。

其中详细如下:

AppScope中存放应用全局所需要的资源文件。

entry是应用的主模块,存放HarmonyOS应用的代码、资源等。

node_modules是工程的依赖包,存放工程依赖的源文件。

build-profile.json5是工程级配置信息,包括签名、产品配置等。

hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。

package.json是工程级依赖配置文件,用于记录引入包的配置信息。

在AppScope,其中有resources文件夹和配置文件app.json5。

AppScope>resources>base中包含element和media两个文件夹,其中element文件夹主要存放公共的字符串、布局文件等资源;media存放全局公共的多媒体资源文件。

entry模块级目录

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

main文件夹中,ets文件夹用于存放ets代码,resources文件存放模块内的多媒体及布局文件等,module.json5文件为模块的配置文件。

ohosTest是单元测试目录。

build-profile.json5是模块级配置信息,包括编译构建配置项。

hvigorfile.ts文件是模块级构建脚本。

package.json是模块级依赖配置信息文件。

进入src>main>ets目录中,其分为entryability、pages两个文件夹。entryability存放ability文件,用于当前ability应用逻辑和生命周期管理;pages存放UI界面相关代码文件,初始会生产一个Index页面。

resources目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在element、media文件夹中。

配置文件

app.json5

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

其中配置信息如下:

bundleName是包名。

vendor是应用程序供应商。

versionCode是用于区分应用版本。

versionName是版本号。

icon对于应用的显示图标。

label是应用名。

distributedNotificationEnabled描述应用程序是否已分发通知。

module.json5

entry>src>main>module.json5是模块的配置文件,包含当前模块的配置信息。

其中module对应的是模块的配置信息,一个模块对应一个打包后的hap包,hap包全称是HarmonyOS Ability Package,其中包含了ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表1。

表6-1 module.json5默认配置属性及描述

属性描述

name该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。

type表示模块的类型,类型有三种,分别是entry、feature和har。

srcEntrance当前模块的入口文件路径。

description当前模块的描述信息。

mainElement该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。

deviceTypes该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示。

deliveryWithInstall该标签标识当前hap是否在用户主动安装的时候安装,true表示主动安装时安装,false表示主动安装时不安装。

installationFree表示当前HAP是否支持免安装特性,如果此配置项为true,包名必须加上.hservice后缀。

pages对应的是main_pages.json文件,用于配置ability中用到的page信息。

abilities是一个数组,存放当前模块中所有的ability元能力的配置信息,其中可以有多个ability。

对于abilities中每一个ability的属性项,其描述信息如下表2。

表6-2 abilities中对象的默认配置属性及描述

属性描述

属性描述

name该标签标识当前ability的逻辑名,该名称在整个应用要唯一,标签值采用字符串表示(最大长度127个字节)。

srcEntranceability的入口代码路径。

descriptionability的描述信息。

iconability的图标。该标签标识ability图标,标签值为资源文件的索引。该标签可缺省,缺省值为空。如果ability被配置为MainElement,该标签必须配置。

labelability的标签名。

startWindowIcon启动页面的图标。

startWindowBackground启动页面的背景色。

visibleability是否可以被其他应用程序调用,true表示可以被其它应用调用, false表示不可以被其它应用调用。

skills该标签标识能够接收的意图的action值的集合,取值通常为系统预定义的action值,也允许自定义。

entities该标签标识能够接收Want的元能力的类别集合,取值通常为系统预定义的类别,也允许自定义

actions该标签标识能够接收Want的元能力的类别集合,取值通常为系统预定义的类别,也允许自定义

main_pages.json

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

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

推荐阅读更多精彩内容