一、开发准备

本篇博客基于的系统版本:华为官方HarmonyOS版本3.1、OpenHarmony版本4.0Beta

开发语言

  • ArkTS语言(推荐)
  • JS语言(支持)
  • Java语言(已放弃支持)

从Harmony4.0开始,官方主推ArkTS语言,且不再支持Java语言

UI框架-方舟开发框架(ArkUI框架)

个人理解:类似iOS的UIKit/SwiftUI,或者安卓的Jetpack的UI组件/Compose

开发范式

方舟开发框架(ArkUI框架)针对不同目的和技术背景的开发者提供了两种开发范式:

  • 声明式开发范式:ArkTS的声明式开发范式
  • 类Web开发范式:兼容JS的类Web开发范式
开发范式名称 语言生态 UI更新方式 适用场景 适用人群
声明式开发范式 ArkTS语言 数据驱动更新 复杂度较大、团队合作度较高的程序 移动系统应用开发人员、系统应用开发人员
类Web开发范式 JS语言 数据驱动更新 界面较为简单的程序应用和卡片 Web前端开发人员

个人理解:类似iOS的SwiftUI(声明式)和UIKit,或者安卓的JetpackCompose(声明式)和JetpackUI

应用模型

概念

  • 官方解释:应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。
  • 个人理解:开发脚手架+底层运行引擎,类似开发模板

模型

  • Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。
  • FA(Feature Ability)模型:HarmonyOS早期版本开始支持的模型,已经不再主推。

Stage和FA的区别

技术选型

根据官方文档中的介绍,目前合适的开发技术栈组合:

Stage模型 + 声明式开发范式 + ArkUI框架 + ArkTS语言

二、环境搭建

下载DevEcoStudio

HarmonyOS 3.1 Release (推荐)

目前华为官方HUAWEI DevEco Studio开放下载的版本为3.1 Release,支持到HarmonyOS4.0

下载地址:HUAWEI DevEco Studio 3.1 Release

OpenHarmony 4.0 Beta2

  • 华为从HarmonyNext版本开始,也就是HarmonyOS4.0之后的版本,将删除AOSP代码,既纯净版鸿蒙;
  • 如果想提前了解Next版本的内容,可以在OpenHarmony官网下载HUAWEI DevEco Studio 的4.0 Beta2版本进行开发

下载地址:HUAWEI DevEco Studio 4.0 Beta2

配置开发环境

配置开发环境官方文档,这里不再赘述,使用默认选项,一路Next即可。

三、HelloWorld

1.创建ArkTS工程

打开DevEco Studio,点击Create Project创建工程。或通过DevEco Studio的菜单File > New > Create Project来创建一个新工程。

选择Application应用开发,选择模板“Empty Ability”,点击Next进行下一步配置。

进入配置工程界面,Compile SDK选择“3.1.0(API 9)”,Model 选择“Stage”,其他参数保持默认设置即可。

点击Finish,等待十几秒MyApplication工程就创建完成了。

2.ArkTS工程目录结构(Stage模型)

目录说明:

| MyApplication
|__ entry: HarmonyOS工程模块,编译构建生成一个HAP包。
|__ src: 用于存放ArkTs源码
|__ main
|__ ets
|__ entryability: 应用/服务的入口
|__ pages: 应用/服务包含的页面
|__ resources: 存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件

文件说明:

  • AppScope > app.json5:应用的全局配置信息。
  • entry > src > main > module.json5:Stage模型模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。 module.json5配置文件
  • entry > build-profile.json5:应用级配置信息,包括签名、产品配置等。
  • entry > hvigorfile.ts:应用级编译构建任务脚本。

3.页面源码

打开entry > src > main > pages > Index.ets 文件,查看页面源码:

@Entry
@Component
struct Index {
@State message: string = 'Hello World' build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}

4.启动模拟器

创建模拟器

点击DevEco Studio右上角的No Devices > Device Manager,或者点击菜单Tools > Device Manager

在Device Manager界面,选择Local Emulator(本地模拟器),点击 New Emulator

一路Next,等待模拟器文件(1G左右)下载完成后,模拟器既完成创建。

启动模拟器(重要)

注意创建完模拟器后,DevEco Studio右上角依然显示的是No Devices,需要我们先在Device Manager中手动启动模拟器

启动完成后:

运行程序

点击DevEco Studio右上角的Run按钮,运行程序

运行成功后:

恭喜完成了第一个HarmonyOS应用。

鸿蒙极速入门(二)-开发准备和HelloWorld的更多相关文章

  1. Netty入门二:开发第一个Netty应用程序

    Netty入门二:开发第一个Netty应用程序 时间 2014-05-07 18:25:43  CSDN博客 原文  http://blog.csdn.net/suifeng3051/article/ ...

  2. 《Python黑客编程之极速入门》正式开课

    玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和 ...

  3. 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html     首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 ...

  4. 多本Python极速入门最佳书籍,不可错过的Python学习资料!

    Python作为现在很热门的一门编程语言,介于Python的友好,许多的初学者都将其作为首选,为了帮助大家更好的学习Python,我筛选了2年内优秀的python书籍,个别经典的书籍扩展到5年内.   ...

  5. Java入门程序开发

    Java入门程序开发 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Java程序开发流程 Java程序开发流程如下: >.将Java代码编写到扩展名为".jav ...

  6. 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

    前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...

  7. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  8. Django 入门案例开发(上)

    Django 入门案例开发(中) http://www.cnblogs.com/focusBI/p/7858267.html Django是一个重量级的web开发框架,它提供了很多内部已开发好的插件供 ...

  9. 1 小时 SQL 极速入门(三)——分析函数

    1 小时 SQL 极速入门 前面两篇我们从 SQL 的最基础语法讲起,到表联结多表查询. 大家可以点击链接查看 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 今天我们讲一些在做报 ...

  10. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

随机推荐

  1. spring cloud 学习笔记 客户端(本地)均衡负载(三)

    前言 在微服务中,一个服务可能即是服务端也是客户端,当别的服务调用该服务的时候这个服务就是服务端,当这个服务主动调用另外一个服务的时候,那么就是服务端. 作为客户端通过服务注册与发现获取某个服务的注册 ...

  2. 初识大数据技术之Hadoop

    先上一张图: 看到这张图,我脑子里出现的第一个东西就是:这货太像旅行商问题了 有限的输入与有限的输出,当输入大于一定数值时,输出趋向于无法计算.... 其实要我说啊,旅行商问题其实没必要管他,因为这个 ...

  3. 使用Skyline 新型UI管理OpenStack技术方案

    使用Skyline 新型UI管理OpenStack [摘要] Skyline 是一个经过 UI 和 UE 优化过的 OpenStack 仪表盘,支持 OpenStack Train 及以上版本.Sky ...

  4. 国内首家!百度智能云宣布支持Llama3全系列训练推理

    继18日Llama3的8B.70B大模型发布后,百度智能云千帆大模型平台19日宣布在国内首家推出针对Llama3全系列版本的训练推理方案,便于开发者进行再训练,搭建专属大模型,现已开放邀约测试. 目前 ...

  5. Django框架——Q查询进阶、ORM查询优化、事务操作、字段类型、字段参数、Ajax、Content—Type、ajax携带文件

    Q查询进阶 from django.db.models import Q q_obj = Q() # 1.产生q对象 q_obj.connector = 'or' # 默认多个条件的连接是and可以修 ...

  6. 力扣1337(java&python)-矩阵中战斗力最弱的 K 行(简单)

    题目: 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示. 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序. 如果第 i 行的军人数量少于第 ...

  7. 转载 | 基于阿里云Serverless函数计算开发的疫情数据统计推送机器人

    简介: 本文选自函数计算征集令优秀征文! 一.Serverless函数计算 什么是Serverless? 在<Serverless Architectures>中对 Serverless ...

  8. 现代斗山X瓴羊:“一横四纵“解决方案聚焦中台场景级部署

    简介: 经过充分的调研后,现代斗山IT团队和业务团队,与瓴羊数据中台项目组一起完成了涵盖客户.商机.设备等多层面的问题梳理及痛点分析,并借助于瓴羊Dataphin+Quick BI+Quick Aud ...

  9. 阿里云 VPC 内网性能测试最佳实践

    ​简介:本文介绍了在阿里云 VPC 内网执行性能测试的方法.相较于传统的公网性能测试,VPC 内网性能测试完全在客户 VPC 环境进行,无需暴露服务到公网,安全性更高,灵活性更强. 作者:风起 背景 ...

  10. 【详谈 Delta Lake 】系列技术专题 之 Streaming(流式计算)

    ​简介: 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 的系列技术文章.众所周知,Databricks 主导着开源大数据社区 Apache Spark.Delta ...