CH2-开发工具DevEco Studio

2023-10-29

文章目录


基本特性HarmonyOS操作系统的功能和特性要得以发挥,需要在它之上运行的APP来体现。

功能强大易用的HarmonyOS移动应用开发工具对HarmonyOS系统的发展至关重要,3.0 Beta1版本的DevEco Studio已经支持通过可视化布局编辑器构建界面,功能越来越齐全和稳定。

本章为HarmonyOS移动应用开发的第二章,主要介绍DevEco Studio开发环境搭建、低代码开发以及一个HarmonyOS应用从开发到上架的全过程。

本章节目标

  • 了解DevEco Studio的特性;
  • 创建第一个程序Hello World;
  • 掌握界面低代码开发方式;
  • 掌握应用开发,编译,调试和上架方法

一、DevEco基本特性

主要功能

HUAWEI DevEco Studio(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供 工程模板创建、开发、编译、调试、发布等端到端的HarmonyOS应用开发服务。通过使用DevEco Studio,开发者可以更高效的开发具备HarmonyOS分布式能力的应用,进而提升创新效率

基本特性

  • 多设备统一开发环境:支持多种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预览器功能,可以实时查看应用的布局效果,支持实时预览和动态预览;同时还支持多设备同时预览,查看同一个布局文件在不同设备上的 呈现效果

应用开发流程

二、安装过程

搭建开发环境流程

下载和安装Node.js

Node.js应用于开发JS应用和运行预览器功能,是开发HarmonyOS应用过程中必备的软 件。

下载和安装DevEco Studio

  • DevEco Studio的编译构建依赖JDK,DevEco Studio预置了Open JDK,版本为1.8,安装 过程中会自动安装JDK。
  • 如果要下载DevEco Studio,需要先登录HarmonysOS应用开发门户,点击右上角注册按 钮,注册开发者帐号。如果已有华为开发者联盟帐号,请直接点击登录按钮

配置开发环境

  • npm设置
  • 设置Gradle代理
  • 设置DevEco Studio代理
  • 下载HarmonyOS SDK

网络设置

DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用, 可以根据如下两种情况来配置开发环境:

  • 如果可以直接访问Internet,只需进行设置npm仓库和下载HarmonyOS SDK操作。

  • 如果网络不能直接访问Internet,需要通过代理服务器才可以访问。

    20220107225245

设置npm仓库

为了提升下载JS SDK时,使用npm安装JS依赖的速度,建议在命令行工具中执行如下命 令,重新设置npm仓库地址。

  • npm config set registry https://mirrors.huaweicloud.com/repository/npm/

三、Gradle的作用

设置Gradle代理

  • Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使 用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐 配置。
  • 面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将 支持更多的语言。

Gradle主要依赖部件

20220108074915

项目自动化

  • 在我们开发软件时,会面临相似的情况就是,我们需要去用IDE来进行编码,当完成一些功能时会进行编译、单元测试、打包等工作,这些工作都需要开发人员手动来实现。而 一般的软件都是迭代式开发的,一个版本接着一本版本,每个版本又可能有很多的功能, 如果开发每次实现功能时都需要手动的进行编译、单元测试和打包等工作,那显然会非 常耗时而且也容易出现问题,因此项目自动化应运而生
  • 项目自动化的优点
    • 它可以尽量防止开发手动介入从而节省了开发的时间并减少错误的发生。
    • 自动化可以自定义有序的步骤来完成代码的编译、测试和打包等工作,让重复的步骤变 得简单。
    • IDE可能受到不同操作系统的限制,而自动化构建是不会依赖于特定的操作系统和IDE的, 具有平台无关性

构建工具

构建工具用于实现项目自动化,是一种可编程的工具,你可以用代码来控制构建流程最终生成可交付的软件。构建工具可以帮助你创建一个重复的、可靠的、无需手动介入的、 不依赖于特定操作系统和IDE的构建

Android项目APK构建过程

20220108075340

HarmonyOS项目中的Gradle

  • 工程Project 中的 build.gradle : 工程控制Gradle编译配置;
  • 模块module中的 build.gradle : 控制每个Module的编译过程;
  • gradle.properties : gradle动态参数的配置文件;
  • local.properties : 本地的配置,如:SDK位置;
  • gradle-wrapper.properties :gradle本地代理,声明了指向目录和版本;
  • distributionUrl : 指定gradle版本不存在时,就从Value的地址中去下载。很多时候,我 们只要版本换成我们本地存在的gradle版本就可以了;
  • settings.gradle : 配置Gradle中的Module管理。

设置Gradle代理

  • 如果网络不能直接访问Internet,而是需要通过代理服务器才可以访问,这种情况下,需 要设置Gradle代理,来访问和下载Gradle所需的依赖。
    • 打开“此电脑”,在文件夹地址栏中输入%userprofile%(Mac系统请点击前往 > 个人), 进入个人用户界面;
    • 创建一个文件夹,命名为.gradle;
    • 进入.gradle文件夹,新建一个文本文档,命名为gradle,并修改后缀为.properties;
    • 打开gradle.properties文件中,添加代理需要的脚本

设置DevEco Studio代理

20220108075932

四Hello World创建

创建和运行Hello World

20220108080109

项目配置

20220108080231

项目启动

  • 系统自动下载Gradle;

  • 在DevEco Studio菜单栏,点击Tools > Device Manager。首次使用模拟器,需下载模拟器相关资源;

    20220108080611

  • 选择第二个remote emulator,点击sign in(登录),在浏览器中弹出华为开发者联盟帐号登录界面,请输入已实名认证的华为开发者联盟帐号的用户名和密码进行登录

    • local emulator: 本地模拟器
    • remote emulator: 远程模拟器(云端)
    • remote decice: 远程设备 (云端)20220111181655

项目运行

20220108081510

五、JS项目基本结构

JS项目目录结构

20220108081746

项目文件解析

  • .gradle:Gradle配置文件,由系统自动生成,一般情况下不需要进行修改。

  • entry:默认启动模块(主模块),开发者用于编写源码文件以及开发资源文件的目录。

  • entry>libs:用于存放entry模块的依赖文件;

  • entry>src>main>Java:用于存放Java源码;

  • entry>src>main>resources:用于存放应用所用到的资源文件,如图形、多媒体、字符串、布 局文件等

页面文件解析

  • js>defalut>common目录:可选,用于存放公共资源文件,如媒体资源、自定义组件和 JS文档等;
  • js>defalut>i18n目录:可选,用于存放多语言的json文件,可以在该目录下定义应用在 不同语言系统下显示的内容,如应用文本词条、图片路径等;
  • js>defalut>resources:可选,用于存放资源配置文件,比如:全局样式、多分辨率加载 等配置文件;
  • js>defalut>app.js文件:全局的JavaScript逻辑文件和应用的生命周期管理。

pages目录结构

  • pages目录:pages文件夹下可以包含1个或多个页面,每个页面都需要创建一个文件夹 (如图中的index)。页面文件夹下主要包含3种文件类型:.css、.js和.hml文件;
  • pages>index>index.hml文件:hml文件定义了页面的布局结构,使用到的组件,以及这 些组件的层级关系;
  • pages>index>index.css文件:css文件定义了页面的样式与布局,包含样式选择器和各种 样式属性等;
  • pages>index>index.js文件:js文件描述了页面的行为逻辑,此文件里定义了页面里所用 到的逻辑关系,比如数据、事件等。

支持的设备模板和编程语言

20220108082042

JS Component和JS Page

  • JS Component:在JS工程中,可以存在多个JS Component(例如js目录下的default文件夹就是一个JS Component),一个JS FA对应一个JS Component,可以独立编译、运行 和调试。
  • JS Page:Page是表示JS FA的一个前台页面,由.js、.hml和.css文件组成,是Component 的最基本单元,构成了JS FA的每一个界面

定义HarmonyOS IDL接口

  • HarmonyOS Interface Definition Language(简称HarmonyOS IDL)是HarmonyOS的接口描述语言。HarmonyOS IDL与其他接口语言类似,通过HarmonyOS IDL定义客户端与服务端均认可的编程接口,可以实现在二者间的跨进程通信(IPC,Inter-Process Communication)。跨进程通信意味着我们可以在一个进程访问另一个进程的数据,或 调用另一个进程的方法。
  • 通常我们把应用接口提供方(供调用)称为服务端,调用方称为客户端。客户端通过绑定服务端的Ability来与之进行交互,类似于绑定服务

六、低代码开发

低代码开发

  • HarmonyOS低代码开发方式,具有丰富的UI界面编辑功能,遵循HarmonyOS JS开发规 范,通过可视化界面开发方式快速构建布局,可有效降低用户的时间成本和提升用户构 建UI界面的效率

低代码主界面

20220108082906

新建JS Visual

20220108082940

低代码目录结构

20220108083242

七、HarmonyOS App真机运行和上架

真机设备调试运行

​ 通过DevEco Studio在真机设备上调试HarmonyOS应用时,可以自动生成调试证书和 Profile文件,并对HAP进行签名后才能在真机设备上运行(在Smart Vision设备除外)。 在真机设备上调试应用的流程如下所示

20220109105719

自动签名

20220109145608

应用发布

  • 发布流程
  • 准备签名文件
  • 配置签名信息
  • 编译构建APP
  • 发布APP到华为应用市场

20220109145709

详细步骤

20220109145814

八、总结

  • 本章介绍了DevEco Stduio开发工具的特性
  • 使用它来开发HarmonyOS APP的关键步骤,包括环境搭建、代码编写、编辑构建、应用调试和应用发布等。
  • 其中辅助编译构建的项目自动化管理工具Gradle的使用是本章难点。
  • 此外,使用DevEco Stduio的新特性-低代码开发模式来快速构建APP前端的方法在本章中
    也有描述

BQH1-1641895980275)]

详细步骤

[外链图片转存中…(img-6nhwTWSP-1641895980276)]

八、总结

  • 本章介绍了DevEco Stduio开发工具的特性
  • 使用它来开发HarmonyOS APP的关键步骤,包括环境搭建、代码编写、编辑构建、应用调试和应用发布等。
  • 其中辅助编译构建的项目自动化管理工具Gradle的使用是本章难点。
  • 此外,使用DevEco Stduio的新特性-低代码开发模式来快速构建APP前端的方法在本章中
    也有描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CH2-开发工具DevEco Studio 的相关文章

  • linux下gcc/g++编译器使用

    linux编译器gcc g 使用 1 gcc 编译器编译c语言程序 gcc 文件名 默认生成a out 可执行程序程序 我们执行a out由两种方法 相对路径 绝对路径 进行程序的翻译 1 预处理 进行宏替换 头文件展开 去注释 条件编译
  • kettle开发篇-流查询-Day25

    前言 昨天我们讲了数据库相关操作 数据库连接来实现两个库的跨库查询 对应复杂的跨库查询通过数据库连接整合到一块后 就像是在一个数据库里面操作 今天我们来学习流查询 流查询主要用于在查询前把数据加载到内存中 并且只能进行等值查询 一 流查询
  • 51单片机波特率计算c语言,51单片机波特率怎么算?51单片机波特率计算公式

    51单片机波特率怎么算 51单片机波特率计算公式 方式0 方式0的波特率固定为主振频率的1 12 方式2 方式2的波特率由PCON中的选择位SMOD来决定 可由下式表示 波特率 2的SMOD次方除以64再乘一个fosc 也就是当SMOD 1
  • Spring三大核心思想详解

    spring核心思想分三大类 控制反转 IOC 依赖注入 DI 和面向切面 AOP 控制反转 通俗讲 控制权由应用代码中转到了外部容器 控制权的转移 是所谓反转 也就是说 正常我们都是新建对象 才可以调用对象 现在不需要了 交给容器来管理
  • 数据结构与算法(29):KMP算法(核心思想分析)及其相关应用实例(与暴力字符串匹配代码实现)

    应用场景 字符串匹配问题 字符串匹配问题 有一个字符串 str1 陈骁聪 陈骁聪你陈骁 陈骁聪你陈骁聪你陈骁你好 和一个子串 str2 陈骁聪你陈骁你 现在要判断 str1 是否含有 str2 如果存在 就返回第一次出现的位置 如果没有 则

随机推荐

  • 如何引入elementUI

    elementUI的引入 完整引入 按需引入 完整引入 在 main js 中写入以下内容 import Vue from vue import ElementUI from element ui import element ui lib
  • vue移动端拖拽悬浮按钮

    vue移动端拖拽悬浮按钮 功能介绍 大致需求 整体思路 简单效果展示 具体实现 一 position fixed布局 二 touch事件绑定 三 页面引入 功能介绍 在移动端开发中 实现悬浮按钮在侧边显示 为不遮挡页面内容 允许手指拖拽换位
  • 发起HTTP请求--Curl

    curl 是常用的命令行工具 用来请求 Web 服务器 它的名字就是客户端 client 的 URL 工具的意思 它的功能非常强大 命令行参数多达几十种 如果熟练的话 完全可以取代 Postman 这一类的图形界面工具 我们可以使用cURL
  • CTFshow(web21-web28)

    web21 考点tomcat 认证爆破之custom iterator使用 https www cnblogs com 007NBqaq p 13220297 html 下载密码字典抓包 通过burpsuite暴力破解 Payload se
  • 原生JS实现ajax 发送post请求

    1 代码 原生JS实现ajax 发送post请求
  • fluxion 无法连接虚假AP热点,DHCP服务启动失败

    记录一个使用fluxion时 无法连接至虚假AP的DHCP问题 编辑 fluxion attacks Captive Portal attack sh gedit fluxion attacks Captive Portal attack
  • 基于Spring-AOP写的切面和注解,解决一些跟业务逻辑无关的公共问题处理方法

    技术点 Spring Aop 反射 背景 目前在做一个项目 做数据库设计的时候对一些表进行了埋点 比如跟我业务相关的每个表 都有create time create user id create user name update time
  • 训练正常&异常的GAN损失函数loss变化应该是怎么样的

    这里以个人用到的一个网络为例 仅供参考 不代表所有情形 用tensorboard记录loss曲线的走向 横轴为迭代次数 iter 纵轴为损失 loss 值 正常的 判别器loss loss在2 6到3 4之间来回上下波动 注意 在tenso
  • WIN10手动添加开机启动项,自己测试可用

    方法 开机启动文件夹 1 我们打开文件夹 C Users 用户 Administrator 当前用户名 AppData Roaming Microsoft Windows Start Menu Programs 开始 菜单 Programs
  • Git Tag 打标签

    晚来天欲雪 能饮一杯无 这位大侠 硬套路在此 接招 提交标签 git add git commit m fixed some bugs git tag a 0 1 3 m Release version 0 1 3 可以给指定commit打
  • element基础详情页-文本描述组件

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 分享一个使用比较久的 最新版本element ui 已支持详情描述组件 直接使用即可 前言 对于常做topB系统的小伙伴们 基础信息详情页是最常见不过的 使用 只是
  • android打开sdcard读写文件、访问网络权限

    去工程的AndroidManifest xml 添加
  • dubbo分布式系统链路追踪_zipkin

    基础知识储备 分布式跟踪的目标 一个分布式系统由若干分布式服务构成 每一个请求会经过多个业务系统并留下足迹 但是这些分散的数据对于问题排查 或是流程优化都很有限 要能做到追踪每个请求的完整链路调用 收集链路调用上每个服务的性能数据 计算性能
  • single-passParallel Prefix Scan with Decoupled Look-back

    背景 最近在写基数排序 nvidia的基数排序依赖这个实现 所以有必要搞懂 原理 代码 总结 参考
  • windows下如何搭建属于自己的git服务器

    前一阵子公司需要 领导让我给我们技术部搭建一个git服务器 以前看过教程 但自己没动手做过 开始按照网上的教程来 但搭建过程中发现还是不够详细 今天给大家一个比较详细的 希望对大家有帮助 高能预警 这不是一个问题 这是一个技术贴 咳咳 进入
  • 管理系统-------SPU

    目录 静态页面 api接口 二次封装ui button组件 代码 v attrs的用法详解与原理 listeners spuForm spuForm静态页面 spuForm逻辑分析 完整代码 spu完整代码 静态页面
  • 在vue export default 外部调用内部的属性或方法

  • C++超详细五子棋游戏(AI实现人机对弈+双人对弈+EasyX图形化界面+详细介绍)

    目录 一 准备工作 1 开发环境 2 EasyX的下载和安装 二 游戏规则 1 行棋顺序 2 判断胜负 3 四种重要棋型解释 重点 4 禁手规则 三 双人对弈详细剖析 1 落子 2 判胜 四 人机对弈超详细剖析 1 整体代码分析 2 玩家落
  • 分类算法简述

    分类算法简述 一 什么是分类算法 数据挖掘任务通常分为两大类 预测任务 根据其他属性的值 预测特定属性的值 描述任务 概括数据中潜在联系的模式 相关性 趋势 聚类 轨迹和异常 分类属于预测任务 就是通过已有数据集 训练集 的学习 得到一个目
  • CH2-开发工具DevEco Studio

    文章目录 本章节目标 一 DevEco基本特性 主要功能 基本特性 应用开发流程 二 安装过程 搭建开发环境流程 下载和安装Node js 下载和安装DevEco Studio 配置开发环境 网络设置 设置npm仓库 三 Gradle的作用