HarmonyOS环境搭建

第一节:注册华为开发者账号

华为开发者联盟将调动华为全球化平台和产业链资源,从应用推广、开发支持、应用变现、品牌宣传等方面为联盟成员提供业务发展机会,助力联盟成员提升在移动互联网领域的合作创新能力,为华为智能手机消费者打造卓越用户体验,实现共赢。

注册这个开发者,一是为了自己app可以在商店上线;二是为了得到自己客户群体。

要想注册成为华为开发者的会员,可以按照以下步骤进行注册完成。

第一步:输入https://developer.huawei.com/cn/网址,显示如下:

点击 HUAWEI MOBILE SERVICES 第一个按钮,进入开发者联盟的官网。

第二步:注册开发者账号有两种方式:

第一种是:手机号注册

第二种是:邮件地址注册

手机注册成功了,需要实名认证一下。

需要提交银行卡的相关信息。

第二节:搭建鸿蒙开发环境

2.1、搭建开发环境流程

DevEco Studio支持Windows系统和macOS系统,在开发HarmonyOS应用前,您需要准备HarmonyOS应用的开发环境。环境准备流程如下所示:

HUAWEI DevEco Studio(获取工具请点击链接下载,以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。通过使用DevEco Studio,开发者可以更高效的开发具备HarmonyOS分布式能力的应用,进而提升创新效率。 作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点:

多设备统一开发环境:支持多种HarmonyOS设备的应用开发,包括手机(Phone)、平板(Tablet)、车机(Car)、智慧屏(TV)、智能穿戴(Wearable),轻量级智能穿戴(LiteWearable)和智慧视觉(Smart Vision)设备。支持多语言的代码开发和调试:包括Java、XML(Extensible Markup Language)、C/C++ 、 JS(JavaScript)、CSS(Cascading Style Sheets)和HML(HarmonyOS Markup Language)。支持FA(Feature Ability)和PA(Particle Ability)快速开发:通过工程向导快速创建FA/PA工程模板,一键式打包成HAP(HarmonyOS Ability Package)。支持分布式多端应用开发:一个工程和一份代码可跨设备运行,支持不同设备界面的实时预览和差异化开发,实现代码的最大化重用。支持多设备模拟器:提供多设备的模拟器资源,包括手机、平板、车机、智慧屏、智能穿戴设备的模拟器,方便开发者高效调试。支持多设备预览器:提供JS和Java预览器功能,可以实时查看应用的布局效果,支持实时预览和动态预览;同时还支持多设备同时预览,查看同一个布局文件在不同设备上的呈现效果。

2.2、HUAWEI DevEco Studio 安装步骤

下载和安装DevEco Studio

DevEco Studio的编译构建依赖JDK,DevEco Studio预置了Open JDK,版本为1.8,安装过程中会自动安装JDK。

Windows环境下安装:

进入HUAWEI DevEco Studio产品页,点击下载列表后的按钮,下载DevEco Studio。下载完成后,双击下载的“deveco-studio-xxxx.exe”,进入DevEco Studio安装向导,在如下安装选项界面勾选64-bit launcher后,点击Next,直至安装完成。

安装完成后,点击Finish完成安装。

Mac环境下安装

DevEco Studio的编译构建依赖JDK,DevEco Studio预置了Open JDK,版本为1.8,安装过程中会自动安装JDK。

进入HUAWEI DevEco Studio产品页,点击下载列表后的按钮,下载DevEco Studio。下载完成后,双击下载的“deveco-studio-xxxx.dmg”软件包。在安装界面中,将“DevEco-Studio.app”拖拽到“Applications”中,等待安装完成

2.3、下载HarmonyOS SDK

DevEco Studio提供SDK Manager统一管理SDK及工具链,下载各种编程语言的SDK包时,SDK Manager会自动下载该SDK包依赖的工具链。

1、运行已安装的DevEco Studio,首次使用,请选择Do not import settings,点击OK。 2、根据向导设置国家/区域,然后点击Start using DevEco Studio。 3、工具会自动检查本地路径下是否存在HarmonyOS SDK,如果不存在,会弹出如下向导,提示下载HarmonyOS SDK。

4、默认情况下,SDK会下载到user目录下,您也可以指定对应的存储路径(不支持中文字符),然后点击Next。 5、默认会下载最新版本的HarmonyOS Java语言SDK和Toolchains。在弹出的License Agreement窗口,点击Accept开始下载SDK。 说明如果本地已有SDK包,请选择本地已有SDK包的存储路径,DevEco Studio会增量更新SDK及工具链。 6、等待HarmonyOS SDK及工具下载完成,点击Finish,界面会进入到DevEco Studio欢迎页。

7、SDK默认会下载HarmonyOS Java语言SDK和Toolchains,点击上图欢迎页中的Configure(或图标) > Settings,进入HarmonyOS SDK页面。

8、如果工程还会用到JS、C/C++语言和预览器,请在“SDK Platforms”中,勾选对应的SDK包,在“SDK Tools”中勾选Previewer,然后点击Apply,SDK Manager会自动将SDK包和预览器工具链,下载到3中设置的SDK存储路径中。

2.4、创建工程

DevEco Studio开发环境配置完成后,可以通过运行HelloWorld工程来验证环境设置是否正确。以Phone工程为例,在Phone的远程模拟器中运行该工程。

创建一个新工程

1、打开DevEco Studio,在欢迎页点击Create HarmonyOS Project,创建一个新工程。

2、选择设备类型和模板,以Phone为例,选择Empty Feature Ability(Java),点击Next。

3、配置工程的基本信息

2.5、运行工程

1、在DevEco Studio菜单栏,点击Tools > HVD Manager。

2、在浏览器中弹出华为开发者联盟帐号登录界面,请输入已实名认证的华为开发者联盟帐号的用户名和密码进行登录(查看远程模拟器登录常见问题)。 说明 推荐使用Chrome浏览器,如果使用Safari、360等其他浏览器,要取消阻止跨站跟踪和阻止所有Cookie功能。

3、登录后,请点击界面的允许按钮进行授权

4、启动模拟器

5、运行结果如下

第三节:HarmonyOS 项目结构

3.1、用户应用程序包结构

HarmonyOS的用户应用程序包以APP Pack(Application Package)形式发布,它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成。HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。

一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型,如图1所示。

entry:应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。feature:应用的动态特性模块。一个APP可以包含一个或多个feature类型的HAP,也可以不含。只有包含Ability的HAP才能够独立运行。

Ability

Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。Ability分为两种类型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是应用的基本组成单元,能够实现特定的业务功能。FA有UI界面,而PA无UI界面。

库文件

库文件是应用依赖的第三方代码(例如so、jar、bin、har等二进制文件),存放在libs目录。

资源文件

应用的资源文件(字符串、图片、音频等)存放于resources目录下,便于开发者使用和维护

配置文件

配置文件 (config.json) 是应用的Ability信息,用于声明应用的Ability,以及应用所需权限等信息

3.2、程序目录结构

首先有一个entry目录,结合上篇的内容,我们知道一个应用是由一个或多个Hap包所组成的,Hap包又可以分为entry类型和feature类型,每个Hap包由:代码、资源、第三方库及应用配置文件组成。所以我们代码中的entry目录其实就一个应用的Hap包,它的类型的entry类型的Hap包。一个Hap包由代码、资源、第三方库及应用配置文件组成,接着我们来看这些资源,代码等都分布在entry包的哪里。

在src/main/java下以包名命名的文件夹内分布着Java代码。这里的代码可以用来创建布局,动态调整布局以及为交互提供支撑服务。 和java文件夹同级的resources目录下分布应用资源,该目录的base目录下,按资源用途又分为多个文件夹资源:

element:表示元素资源,该文件夹下主要存放json格式的文件,主要用来表示 字符串、颜色值、布尔值等,可以在其他地方被引用

graphic:表示可绘制资源。用xml文件来表示,比如我们项目中设置的 圆角按钮、按钮颜色等都是通过引用这里的资源来统一管理的

layout:表示布局资源,用xml文件来表示,比如页面的布局资源,都放在这里

media:表示媒体资源,包括图片、音频、视频等非文本格式的文件。

config.json项目配置文件: 每一个hap包下都包含了该hap包的配置信息,这个配置文件位于:entry/src/main/目录下,由工具帮我们生成,命名为config.json,harmonyOS应用配置采用json格式的形式。下面我们来看一下这个配置文件中的内容,并简要介绍一下配置的作用。该配置文件中,主要有三个模块,如下所示:

app:表示应用的全局配置信息。同一个应用的不同HAP包的“app”配置必须保持一致。 deviceConfig:表示应用在具体设备上的配置信息。 module:表示HAP包的配置信息。该标签下的配置只对当前HAP包生效。

bundleName:表示应用的包名,用于标识应用的唯一性。通常采用反转的域名 vendor:表示开发应用的厂商 version:code表示内部版本号,用于系统管理版本使用,对用户不可见,name表示应用的版本号,用于向用户呈现 apiVersion:包含三个选项。

compatible:表示应用运行需要的API最小版本。

target:表示应用运行需要的API目标版本。

releaseType:表示应用运行需要的API目标版本的类型,取值为“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整数。

Canary:受限发布的版本。 Beta:公开发布的Beta版本。 Release:公开发布的正式版本。

第四节:HarmonyOS快速入门

4.1、创建xml布局文件

第一个页面内有一个文本和一个按钮,使用DependentLayout布局,通过Text和Button组件来实现,其中vp和fp分别表示虚拟像素和字体像素。“ability_main.xml”的示例代码如下:

xmlns:ohos="http://schemas.huawei.com/res/ohos"

ohos:height="match_parent"

ohos:width="match_parent">

ohos:id="$+id:text"

ohos:width="match_content"

ohos:height="match_content"

ohos:text="Hello World"

ohos:text_color="#000000"

ohos:text_size="32fp"

ohos:center_in_parent="true"/>

ohos:id="$+id:button"

ohos:width="match_content"

ohos:height="match_content"

ohos:text="Next"

ohos:text_size="19fp"

ohos:text_color="#FFFFFF"

ohos:top_padding="8vp"

ohos:bottom_padding="8vp"

ohos:right_padding="70vp"

ohos:left_padding="70vp"

ohos:center_in_parent="true"

ohos:below="$id:text"

ohos:background_element="$graphic:background_button"

ohos:margin="10vp"/>

按钮的背景是蓝色胶囊样式,可以通过graphic目录下的XML文件来设置。

右键点击“graphic”文件夹,选择“New > File”,命名为“background_button.xml”,单击回车键。

xmlns:ohos="http://schemas.huawei.com/res/ohos"

ohos:shape="rectangle">

ohos:radius="100"/>

ohos:color="#007DFF"/>

4.2、创建主程序

package com.sudojava.firstdemo.slice;

import com.sudojava.firstdemo.ResourceTable;

import ohos.aafwk.ability.AbilitySlice;

import ohos.aafwk.content.Intent;

public class MainAbilitySlice extends AbilitySlice {

@Override

public void onStart(Intent intent) {

super.onStart(intent);

super.setUIContent(ResourceTable.Layout_ability_main);

Button button = (Button) findComponentById(ResourceTable.Id_button);

// 点击按钮跳转至第二个页面

button.setClickedListener(listener -> present(new SecondAbilitySlice(), new Intent()));

}

@Override

public void onActive() {

super.onActive();

}

@Override

public void onForeground(Intent intent) {

super.onForeground(intent);

}

}

4.3、创建另一个界面

package com.sudojava.firstdemo.slice;

import com.sudojava.firstdemo.MainAbility;

import ohos.aafwk.ability.AbilitySlice;

import ohos.aafwk.content.Intent;

import ohos.agp.colors.RgbColor;

import ohos.agp.components.DependentLayout;

import ohos.agp.components.Text;

import ohos.agp.components.element.ShapeElement;

import ohos.agp.utils.Color;

public class SecondAbilitySlice extends AbilitySlice {

@Override

protected void onStart(Intent intent) {

super.onStart(intent);

//声明布局

DependentLayout layout = new DependentLayout(this);

//设置布局的宽度和高度

layout.setWidth(DependentLayout.LayoutConfig.MATCH_PARENT);

layout.setHeight(DependentLayout.LayoutConfig.MATCH_CONTENT);

ShapeElement shapeElement = new ShapeElement();

shapeElement.setRgbColor(new RgbColor(255,255,255));

layout.setBackground(shapeElement);

Text text = new Text(this);

text.setText("Hi Here");

text.setWidth(DependentLayout.LayoutConfig.MATCH_PARENT);

text.setTextSize(100);

text.setTextColor(Color.BLACK);

// 设置文本的布局

DependentLayout.LayoutConfig textConfig = new DependentLayout.LayoutConfig(DependentLayout.LayoutConfig.MATCH_CONTENT, DependentLayout.LayoutConfig.MATCH_CONTENT);

textConfig.addRule(DependentLayout.LayoutConfig.CENTER_IN_PARENT);

text.setLayoutConfig(textConfig);

layout.addComponent(text);

super.setUIContent(layout);

}

}

4.4、运行结果如下:

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: