华为鸿蒙开发第一课 (一)

简介: 华为鸿蒙开发第一课

目录


一、鸿蒙系统简介

(1)鸿蒙系统 OpenHarmony 又来

(2)OpenHarmony 技术架构

(3)OpenHarmony 应用层介绍

二、开发环境搭建和 HelloWorld 体验

(1)DevEco Studio 开发环境搭建

(2)hello world 应用体验

三、应用开发目录结构及文件使用规则介绍

(1) 应用开发目录

(2)文件使用规则

1.文件访问规则

2.媒体文件格式

3.app.js 标签中包含了实例名称、页面路由信息。

4.每个应用可以在 app.js 自定义应用级生命周期的实现逻辑

四、基础组件介绍及chart 组件使用

(1)鸿蒙系统组件介绍

(2)chart 组件体验使用

五、使用 image-animator 组件构建多图帧动画

(1)image-animator 图片帧动画播放器介绍

(2)image-animator 图片帧动画播放器实现


正文


一、鸿蒙系统简介


(1)鸿蒙系统 OpenHarmony 又来


OpenHarmony 中文意思「开放、和谐」,代表了中华民族的包容和谦和,是咱们中国在移动端底层操作系统领域迈出的巨大一步,从此,在全世界我们可以说:“中国,也有自己的移动端底层操作系统了!”


鸿蒙 OpenHarmony 开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。


(2)OpenHarmony 技术架构


OpenHarmony 整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件,前端领域的发力点核心在于应用层「拓展应用、三方应用」构建服务。


(3)OpenHarmony 应用层介绍


应用层包括「系统应用」和「第三方非系统应用」。应用由一个或多个 FA(Feature Ability)或 PA(Particle Ability)组成。其中,FA 有 UI 界面,提供与用户交互的能力;而 PA 无 UI 界面,提供后台运行任务的能力以及统一的数据访问抽象。基于 FA/PA 开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。显然,我们前端开发小伙伴学习的核心点就在于对 FA 中 UI 层面的开发工作。


UI 部分(FA)既支持纯 JavaScript 开发,也支持纯 Java 开发,还可以 Java 跟 JavaScript 混合开发。FA 支持使用 Java 和 JavaScript 两种方式开发 UI 界面。如果使用 Java,则跟 Android 一样,使用 xml 定义布局或者 Java 代码定义布局,每个页面都是一个 PageAbility,使用 Java 编写业务代码,不同的页面之间传递数据依然使用 intent。


而这里如果使用 JavaScript UI 框架的话,那么写法跟 「Vue + 小程序」 应用开发基本一模一样,同样支持 data、props、computed、watch 和 functions(methods),也能创建自定义的组件,这样 web 前端工程师就很容易转型成为鸿蒙 UI 开发工程师,不得不说华为在已有概念上做的整合,还是相当厉害的。


  1. HTML 基础
  2. CSS 基础
  3. JavaScript 、ECMAScript(ES6) 基础
  4. Vue 基础
  5. 小程序开发基础(事半功倍)


二、开发环境搭建和 HelloWorld 体验


(1)DevEco Studio 开发环境搭建


DevEco Studio: HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者


(2)hello world 应用体验


第一步:启动应用后,提示是否创建启动程序脚本,方便后续模板选择。


第二步:使用华为云 npm 包管理工具。


第三步:创建 or 导入项目。


第四步:选择项目类型及模板。


为了满足应用在多设备上运行的开发需求,DevEco Studio 2.1 Release 在原有单设备工程模板的基础上,新增了 11 个跨设备工程模板。开发者可根据工程向导,依次挑选模板和设备类型,轻松创建跨设备工程,自动生成示例代码和相关资源。


第五步:创建工程项目。


d9e7ca9227c255cecb23d31864dcd04e_d8f8b09d4f87498d924368ed4eab6709.png

第六步:查阅并关闭开发简易提示。


第七步:项目自动下载对应的依赖及文件,这一步直接点击运行则会有错误提示。


第八步:在 DevEco Studio 菜单栏,点击Tools > SDK Manager 配置对应的 SDK 版本。


第九步:点击右上角 sign in 登陆华为账号,请输入已实名认证的华为帐号的用户名和密码进行登录,在网页中登陆成功后,完成授权。


第十步:进入到 src/main/js/default/pages/index 页面,打开 view -> Tool Windows -> Previewer 进行预览。


第十一步:进入 Tools -> Devices Manager 看到模拟器管理页面,这一步必须要实名认证的华为账号进行登录后,即可选择对应的设备,然后启动设备。


第十二步:启动设备后,再次点击 绿色运行按钮,即可在仿真设备上运行该项目。


PS:在 Views 可以快速设置编辑器主题,以及对应的开发设置。


三、应用开发目录结构及文件使用规则介绍


(1) 应用开发目录


JS FA 应用的 JS 模块 (entry/src/main/js/module) 的典型开发目录结构如下:

9803b956d20f604ba150357b072a42d0_a6e04e5f66d24d4bbe48d81e9354be72.png

目录结构中文件分类如下:

  • .hml 结尾的 HML 模板文件,这个文件用来描述当前页面的文件布局结构。
  • .css 结尾的 CSS 样式文件,这个文件用于描述页面样式。
  • .js 结尾的 JS 文件,这个文件用于处理页面和用户的交互。


各个文件夹的作用:

  • app.js 文件用于全局 JavaScript 逻辑和应用生命周期管理。
  • pages 目录用于存放所有组件页面。
  • common 目录用于存放公共资源文件,比如:媒体资源和 JS 文件。
  • i18n 目录用于配置不同语言场景资源内容,比如:应用文本词条,图片路径等资源,注意 i18n 是开发保留文件夹,不可重命名。


(2)文件使用规则


1.文件访问规则


应用资源可通过绝对路径或相对路径的方式进行访问,本开发框架中绝对路径以 "/" 开头,相对路径以 "./" 或 "../" ,具体访问规则如下:


  • 引用代码文件,需使用相对路径,比如:../common/utils.js。
  • 引用资源文件,推荐使用绝对路径。比如:/common/xxx.png。
  • 公共代码文件和资源文件推荐放在 common 下,通过以上两条规则进行访问。
  • CSS 样式文件中通过 url() 函数创建 数据类型,如:url(/common/xxx.png)。
  • 如果代码文件A和文件B位于同一目录,则代码文件B引用资源文件时可使用相对路径,也可使用绝对路径。
  • 如果代码文件A和文件B位于不同目录,则代码文件B引用资源文件时必须使用绝对路径。因为Webpack打包时,代码文件B的目录会发生变化。  


2.媒体文件格式


格式 支持版本 支持的文件类型
BMP API Version 3+ .bmp
JPEG API Version 3+ .jpg
PNG API Version 3+ .png


3.app.js 标签中包含了实例名称、页面路由信息。


标签 类型 默认值 必填 描述
name string default 标识JS实例的名字。
pages Array - 路由信息,详见“pages”。


name、pages 标签配置需在配置文件中的 js 标签中完成设置。pages 定义每个页面的路由信息,每个页面由页面路径和页面名组成,页面的文件名就是页面名。比如:

{  ...  "pages": [    "pages/index/index",    "pages/detail/detail"  ]  ...}


说明

  • 应用首页固定为 "pages/index/index"。
  • 页面文件名不能使用组件名称,比如:text.hml、button.hml 等。


4.每个应用可以在 app.js 自定义应用级生命周期的实现逻辑


包括:

  • onCreate:在应用生成时被调用的生命周期函数。
  • onDestory:在应用销毁时被调用的生命周期函数。




目录
相关文章
|
10天前
|
存储 人工智能 JavaScript
Harmony OS开发-ArkTS语言速成二
本文介绍了ArkTS基础语法,包括三种基本数据类型(string、number、boolean)和变量的使用。重点讲解了let、const和var的区别,涵盖作用域、变量提升、重新赋值及初始化等方面。期待与你共同进步!
72 47
Harmony OS开发-ArkTS语言速成二
|
12天前
|
API 索引
鸿蒙开发:实现一个超简单的网格拖拽
实现拖拽,最重要的三个方法就是,打开编辑状态editMode,实现onItemDragStart和onItemDrop,设置拖拽移动动画和交换数据,如果想到开启补位动画,还需要实现supportAnimation方法。
70 13
鸿蒙开发:实现一个超简单的网格拖拽
|
11天前
|
索引 API
鸿蒙开发:自定义一个股票代码选择键盘
金融类的软件,特别是股票基金类的应用,在查找股票的时候,都会有一个区别于正常键盘的键盘,也就是股票代码键盘,和普通键盘的区别就是,除了常见的数字之外,也有一些常见的股票代码前缀按钮,方便在查找股票的时候,更加方便的进行检索。
鸿蒙开发:自定义一个股票代码选择键盘
|
11天前
|
API
鸿蒙开发:自定义一个英文键盘
实现方式呢,有很多种,目前采用了比较简单的一种,如果大家采用网格Grid组件实现方式,也是可以的,但是需要考虑每行的边距以及数据,还有最后两行的格子占位问题。
鸿蒙开发:自定义一个英文键盘
|
12天前
|
存储 JSON 数据库
鸿蒙元服务项目实战:备忘录内容编辑开发
富文本内容编辑我们直接使用RichEditor组件即可,最重要的就是参数,value: RichEditorOptions,通过它,我们可以用来设置样式,和获取最后的富文本内容,这一点是很重要的。
鸿蒙元服务项目实战:备忘录内容编辑开发
|
12天前
|
开发框架 JavaScript 前端开发
Harmony OS开发-ArkT语言速成一
本文介绍ArkTS语言,它是鸿蒙生态的应用开发语言,基于TypeScript,具有静态类型检查、声明式UI、组件化架构、响应式编程等特性,支持跨平台开发和高效性能优化。ArkTS通过强化静态检查和分析,提升代码健壮性和运行性能,适用于Web、移动端和桌面端应用开发。关注我,带你轻松掌握HarmonyOS开发。
41 5
Harmony OS开发-ArkT语言速成一
|
10天前
|
前端开发 API 数据库
鸿蒙开发:异步并发操作
在结合async/await进行使用的时候,有一点需要注意,await关键字必须结合async,这两个是搭配使用的,缺一不可,同步风格在使用的时候,如何获取到错误呢,毕竟没有catch方法,其实,我们可以自己创建try/catch来捕获异常。
鸿蒙开发:异步并发操作
|
12天前
|
API
鸿蒙开发:简单了解属性动画
无论是是使用animateTo还是animation,其实最终要改变的都是组件的可执行属性,最终的效果是一致的,animateTo是闭包内改变属性引起的界面变化,一般作用于出现消失转场,而animation则是组件通过属性接口绑定的属性变化引起的界面变化,一般使用场景为,animateTo适用对多个可动画属性配置相同动画参数的动画,需要嵌套使用动画的场景;animation适用于对多个可动画属性配置不同参数动画的场景。
|
10天前
|
API
鸿蒙开发:实现popup弹窗
目前提供了两种方式实现popup弹窗,主推系统实现的方式,几乎能满足我们常见的所有场景,当然了,文章毕竟有限,尽量还是以官网为主。
鸿蒙开发:实现popup弹窗
|
12天前
|
API
鸿蒙开发:了解显式动画animateTo
在实际的开发中,应该遵循规范,正确的使用属性动画animateTo,切莫在轮询中使用,否则就会造成本不属当前的动画进行执行,造成UI错误,还有一点需要注意,那就是直接使用animateTo可能导致实例不明确的问题,建议使用getUIContext获取UIContext实例,并使用animateTo调用绑定实例的animateTo。