鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

,在对harmonyOS有了一个初步认知之后,我们使用DevEco Studio来创建一个项目,把项目运行起来,先从整体上来了解一下harmonyOS项目的整体结构以及开发工具的基本使用。

1. 使用DevEco Studio创建项目

1.1 配置开发环境

在开发之前我们需要做一些准备工作

  • 成为开发者之前,我们需要先注册账号,并实名(使用远程模拟器需要),实名分为”个人实名”和”企业实名”。个人开发者做个人实名人证即可。注册地址:https://developer.harmonyos.com/cn/home,该页面右上角点击注册,完成实名即可。
  • 下载开发工具,下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio,DevEco Studio内置了OpenJDK,版本为1.8
  • 下载nodejs,如果你是使用js的方式进行开发,需要下载nodejs,如果你仅用Java开发,可以先不装nodejs

在实名完成并且下载了开发工具后,安装DevEco Studio,一路next即可。完成安装先不要打开。由于harmonyOS的应用基于gradle进行构建,因此请自行下载gradle并配置环境变量。

1.2 下载SDK

配置完成后,打开DevEco Studio,会提示下载harmonySDK,如下图:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

如果不需要更改SDK的路径,直接Next即可。如果想更改SDK的路径点击Cancel,点击Cancel后自己配置SDK路径的方式如下:

  1. 在菜单栏点击Configure > Settings(Mac系统为Configure > Preferences,快捷键Command+,),打开Settings配置界面。
  2. 进入Appearance & Behavior > System Settings > HarmonyOS SDK菜单界面,点击Edit按钮,设置HarmonyOS SDK存储路径。

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

红框中的地址选择你想要保存SDK的路径,下边的SDK Platforms列出了可用的SDK版本,可以根据需要下载。其中native通常是用来写C++或者设备开发需要的,js和Java则对应了应用开发的两种形式,如果你使用Java开发,可以只下载Java的,使用js开发同理。也可以两个都安装。选择完点击Apply,然后OK即可,入下图:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

2. 使用工具创建一个应用

环境和工具配置好后,就可以创建一个项目了。先创建一个项目,从整体上了解一下harmonyOS应用的整体框架。我们在一个布局里放置一个文本框显示一个数字,再添加一个按钮,每次点击按钮让文本框中的数字加1。通过这样一个小程序简单来演示工具的使用和项目的基本框架

2.1 新建项目

工具菜单:File –>New–>New Project进行项目创建,会弹出如下的窗口:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

新建项目的截图中整体可分为两块,其中Device表示目前支持的设备。设备列表中从左到右依次为:手机,平板,车机,智慧屏,穿戴设备,轻型穿戴设备

下边是新建项目时的模板选择,因为我使用Java来开发,所以选择第二个(Empty Feature Ability Java),点击Next进入下个页面,如图:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

配置项目名,包名,使用的sdk版本以及项目的保存路径后,点击完成即可,创建完成后项目会自动构建。构建成功后项目整体结构如下:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

先完成我们的功能,后续再了解目录及其作用。首先打开resources–base–layout目录下工具为我们自动生成的布局文件,然后点击工具右侧的预览,如下图:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

这是工具提供的一个预览器,当我们写xml布局的时候可以近乎实时的看到我们写的代码的效果。之后在ability_main.xml文件中写如下代码:

 1 xml version="1.0" encoding="utf-8"?>
 2 <DirectionalLayout
 3     xmlns:ohos="http://schemas.huawei.com/res/ohos"
 4     ohos:height="match_parent"
 5     ohos:width="match_parent"
 6     ohos:orientation="vertical">
 7
 8     <Text
 9         ohos:id="$+id:text"
10         ohos:height="match_content"
11         ohos:width="match_content"
12         ohos:layout_alignment="horizontal_center"
13         ohos:text="1"
14         ohos:text_size="30fp"
15     />
16     <Button
17         ohos:height="match_content"
18         ohos:width="match_content"
19         ohos:text_size="18fp"
20         ohos:layout_alignment="horizontal_center"
21         ohos:background_element="$graphic:green_circle_button_element"
22         ohos:text_color="blue"
23         ohos:padding="15vp"
24         ohos:text="点击加一"/>
25
26 DirectionalLayout>

此时在预览器中看到的效果如下:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

接下来实现点击加一的功能,打开项目自动创建的MainAbilitySlice文件,写入以下代码:

package com.example.demo.slice;

import com.example.demo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.Text;
import ohos.agp.window.dialog.ToastDialog;

public class MainAbilitySlice extends AbilitySlice {
    private int count = 1;
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        Text text = (Text) findComponentById(ResourceTable.Id_text);
        Button button = (Button) findComponentById(ResourceTable.Id_btn_add);
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                count++;
                text.setText(count + "");
            }
        });
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

到此为止,功能已经开发完毕,点击工具上方菜单栏的Tools下边的HVD Manager,弹出如下菜单:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

这里需要登陆你注册的华为账号并且授权,点击允许,跳到网页授权,授权完成后,会弹出下面的界面:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

这里可以选择对应的远程设备,因为我们创建项目时选的手机类型的项目,因此这里选P40,点击后边的蓝色箭头,之后在工具右侧的预览区会变成你选择的P40手机

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

之后点击工具右上方的按钮启动项目:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

选择你要链接的远程机器:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

图中的AN00就是我们刚才选择的P40远程机器。之后工具会把你的项目安装到远程机器并运行起来

下图是我点击两次按钮后的效果:

鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

下一篇会对本节我们创建的项目结构以及项目中的基本配置进行说明。让我们可以根据需要自己去修改一些配置,做一些定制

Original: https://www.cnblogs.com/leemz-coding/p/14242896.html
Author: 框架搬运工
Title: 鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622118/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • spring-boot项目的docker集成化部署(一)

    spring-boot项目的docker集成化部署 spring-boot项目的docker集成化部署 前言 基本思路与方案 基本步骤 准备源码 服务器和基础环境 Linux下Ja…

    Java 2023年6月10日
    069
  • SpringCloud学习笔记-Eureka基础

    Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的微服…

    Java 2023年5月30日
    094
  • 日常踩坑

    有人的地方就有江湖,有代码的地方就有坑 一。集合 List与Set继承自Collection。Collection提供定义了一个移除元素的接口 可以看出,在Collection中该…

    Java 2023年6月9日
    0105
  • 面试题:请写出线程同步相关的方法,以银行账号存储款为例

    一.该面试题主要考察多线程中的synchronized或者Lock的使用 * 线程同步 :使用同步方法,实现线程同步 * 同步synchronized方法的对象监视锁为this,当…

    Java 2023年5月30日
    089
  • Java 线程创建与常用方法

    进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、…

    Java 2023年6月9日
    071
  • mybatisPlus整理

    1.在启动类上面添加@MapperScan注解,扫描mapper包 1 @SpringBootApplication 2 @MapperScan("com.qiao.de…

    Java 2023年5月30日
    081
  • 医院信息平台管理(医院信息集成平台)—— 概念扫盲

    引子 以患者电子病历的信息采集、存储和集中管理为基础,连接临床信息系统和管理信息系统的医疗信息共享和业务协作平台,是在区域范围支持实现以患者为中心的跨机构医疗信息共享和业务协同服务…

    Java 2023年5月29日
    0108
  • Java面试题整理

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    080
  • Convert Set to array in Java

    This post will discuss how to convert a set to an array in plain Java, Java 8, and the Gua…

    Java 2023年5月29日
    070
  • 高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏

    1. MySQL主从同步实现方式 MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句。 Bin Log共有三种日志格式,可以 binlog_for…

    Java 2023年6月8日
    074
  • Python工具箱系列(七)

    上期描述了如何在ubuntu18.04下安装python3.8,本期将描述: · BIOS开启CPU的虚拟化支持 · 如何在windows10/11下安装wsl/wslg · 如何…

    Java 2023年6月16日
    079
  • 7、System类

    exit 退出当前程序 System.out.println("ok1"); //1. exit(0) 表示程序退出 //2. 0 表示一个状态,正常的状态 S…

    Java 2023年6月7日
    079
  • II-第十三章:(1)SpringCloud Nacos注册中心和配置中心

    一、Nacos简介 1、命名由来 前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。 2、是什么 一个更易于构建云原生应用的动态服务发…

    Java 2023年5月29日
    080
  • Error:java: Compilation failed: internal java compiler error 解决办法

    具体参考:Error:java: Compilation failed: internal java compiler error 解决办法 – 程序猿的故事 &#82…

    Java 2023年5月29日
    067
  • spring boot 常见问题

    什么是 Spring Boot? 简单来说,spring boot 底层就是:spring + spring mvc + tomcat + 其他框架 starter; spring…

    Java 2023年6月5日
    084
  • 【Unity Shader学习笔记】Unity光照-渲染路径

    官方文档:渲染路径 1、简介 需要为每个 Shader 设置正确的渲染路径。 大多数情况下,一个项目只使用一种渲染路径,因此我们可以为整个项目设置渲染时的渲染路径。 Edit -&…

    Java 2023年6月9日
    0114
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球