鸿蒙开发之android对比开发《基础知识》

基于华为鸿蒙未来可能不再兼容android应用,推出鸿蒙开发系列文档,帮助android开发人员快速上手鸿蒙应用开发。

1. 鸿蒙使用什么基础语言开发?

ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用ArkTS官方文档。

2. 对于声明式UI知多少?

鸿蒙应用也使用了声明式UI,作为大前端主流的开发方式,例如swiftUI、JetPack Compose、Flutter等。下面是一段鸿蒙的声明式UI代码:

如代码所见,我设置Text的文本(message),不再需要传统的获取到TextView的对象,然后调用setText(message)方法设置值,而是通过数据传递,响应式的设置控件的值。

3. application相当于鸿蒙app组件?

application相当于UIAbility,但是区别在于一个应用程序可以设置多个UIAbility。当用户打开、切换和返回到应用时,UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如图所示

Create状态:在应用首次创建UIAbility实例时触发,此时系统会调用onCreate()回调。可以在该回调中进行应用初始化操作,例如变量定义资源加载等,用于后续的UI界面展示。

WindowStageCreate和WindowStageDestroy状态:UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI界面加载、设置WindowStage的事件订阅。

在onWindowStageCreate()回调中通过loadContent()方法设置应用要加载的页面,并根据需要调用on('windowStageEvent')方法订阅WindowStage的事件(获焦/失焦、可见/不可见)。Foreground和Background状态:Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发,对应于onForeground()回调和onBackground()回调。

  • onForeground()回调,在UIAbility的UI界面可见之前,如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源,或者重新申请在onBackground()中释放的资源。
  • onBackground()回调,在UIAbility的UI界面完全不可见之后,如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI界面不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。

例如应用在使用过程中需要使用用户定位时,假设应用已获得用户的定位权限授权。在UI界面显示之前,可以在onForeground()回调中开启定位功能,从而获取到当前的位置信息。当应用切换到后台状态,可以在onBackground()回调中停止定位功能,以节省系统的资源消耗。

Destroy状态:Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。

例如调用terminateSelf()方法停止当前UIAbility实例,从而完成UIAbility实例的销毁;或者用户使用最近任务列表关闭该UIAbility实例,完成UIAbility的销毁。

4. activity相当于鸿蒙app什么组件?《点击查看做鸿蒙应用开发到底学习些啥?》

activity等同于使用@Entry和@Component修饰的页面组件。页面同样有生命周期和启动模式等概念。例如如下Splash页面的代码:

组件的生命周期包括aboutToAppear、onPageShow、onPageHide、onBackPress、aboutToDisappear五种状态,如图所示:

  • aboutToAppear: aboutToAppear?(): void
  • aboutToAppear函数在创建自定义组件的新实例后,在执行其build函数之前执行。aboutToAppear不同于onPageShow的地方在于该函数仅会在自定义组件实例创建后执行一次。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build函数中生效。aboutToAppear函数可以用于接收自定义组件实例创建时的状态参数,初始化页面状态变量等。
  • aboutToDisappear: aboutToDisappear?(): void
  • aboutToDisappear函数在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。
  • onPageShow: onPageShow?(): void
  • 页面每次显示时触发一次,包括路由过程、应用进入前后台等场景,仅 @Entry修饰的自定义组件生效。
  • onPageHide: onPageHide?(): void
  • 页面每次隐藏时触发一次,包括路由过程、应用进入前后台等场景,仅 @Entry修饰的自定义组件生效。
  • onBackPress: onBackPress?(): void
  • 当用户点击返回按钮时触发,仅 @Entry修饰的自定义组件生效。返回true表示页面自己处理返回逻辑,不进行页面路由,返回false表示使用默认的路由返回逻辑。不设置返回值按照false处理。

页面组件之间跳转的方式有以下几种:

启动模式包含两种:

5. View相当于鸿蒙app什么组件?

只使用@Compoent注解的组件可以理解为view,组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声明式开发范式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。

组件根据功能可以分为以下五大类:基础组件、容器组件、媒体组件、绘制组件、画布组件。其中基础组件是视图层的基本组成单元,包括Text、Image、TextInput、Button、LoadingProgress等,如下图所示:

本文主要讲解了鸿蒙开发之android对比开发,以及鸿蒙生态的开发语言ArkTS,

对于已经有移动开发经验的同学来说上手可以说非常快,ArkTS语法也非常简洁易学,如果大家对华为生态的应用开发感兴趣或者想深入学习可以借鉴:《做鸿蒙应用开发到底学习些啥?》

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:做鸿蒙应用开发到底学习些啥?

《鸿蒙 (Harmony OS)开发学习手册》

入门必看

1. 应用开发导读(ArkTS)

2. 应用开发导读(Java)

HarmonyOS 概念

1. 系统定义

2. 技术架构

3. 技术特性

4. 系统安全

如何快速入门?

1. 基本概念

2. 构建第一个ArkTS应用

3. 构建第一个JS应用

4. ……

开发基础知识

1. 应用基础知识

2. 配置文件

3. 应用数据管理

4. 应用安全管理

5. 应用隐私保护

6. 三方应用调用管控机制

7. 资源分类与访问

8. 学习ArkTS语言

9. ……

基于ArkTS 开发

1. Ability开发

2. UI开发

3. 公共事件与通知

4. 窗口管理

5. 媒体

6. 安全

7. 网络与链接

8. 电话服务

9. 数据管理

10. 后台任务(Background Task)管理

11. 设备管理

12. 设备使用信息统计

13. DFX

14. 国际化开发

15. 折叠屏系列

16. ……

除了上面整理的学习文档中的核心技术需要掌握以外,还有数据结构,算法,等基础技术点是你必须掌握的,不过都已经被我整理PDF模板,不需要你自己去摸索爬坑。获取方式:点赞、关注、转发。私信回复(鸿蒙)即可获取鸿蒙开发资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树题目:根到叶路径上的不足结点

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:根到叶路径上的不足结点 出处:1080. 根到叶路径上的不足结点 难度 6 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root…

关键字:throw关键字

在 Java 中,throw关键字用于抛出异常。当程序执行过程中发生意外情况,如错误的输入、资源不足、错误的逻辑等,导致程序无法正常执行下去时,可以使用throw关键字抛出异常。 以下是使用throw关键字的一些示例: 抛出异常…

服装店收银系统不只是收银 还需要线上商城和线上批发

一个综合性的服装店收银系统可以结合线上商城和线上批发功能,提供以下特点和优势: 线上商城:将服装店的商品信息同步到线上商城平台,让顾客可以通过网站或移动应用程序浏览和购买商品。线上商城可以实现在线支付、订单跟踪、售后服…

MySQL数据库索引优化

一、引言 1. 索引的重要性 MySQL数据库索引的重要性主要体现在,一是查询速度优化,索引可以极大地提高查询速度。对于没有索引的表,MySQL必须进行全部扫描来找到所需的行,如果表中数据量很大,那么通常很慢。通过适当的…

大数据规模存储的几个核心问题

文章目录 三个关键问题RAID(独立磁盘冗余阵列)RAID是如何解决关于存储的三个关键问题?水平伸缩 大规模数据存储都需要解决几个核心问题,这些问题都是什么呢? 三个关键问题 1.数据存储容量的问题 既然大数据要解决的…

图像分割实战-系列教程1:语义分割与实例分割概述

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 下篇内容: Unet系列算法 1、图像分割任务概述 1.1 图像分割 分割任务就是在原始图像…

Elasticsearch8集群部署

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 本文记录在3台服务器上离线搭建es8.7.1版本集群。 1. 修改系统配置 1.1 hosts配置 在三台es节点服务器加入hostname解析&…

加法器原理详解

加法器的介绍与原理分析 什么是加法器? 加法器是一种数字电路,用于将两个二进制数相加并输出它们的和。 如何实现加法器 要讨论如何实现加法器就要先从只有一位的数字先进行考虑 一位二进制数相加 不考虑来自低位的进位——半加器 对于一位二进制…

【VTK三维重建-体绘制】第四期 VTK中GPU加速

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 上期内容讲到VTK的体绘制技术vtkGPUVolumeRayCastMapper,本文分享VTK中GPU加速的相关内容,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会…

机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Le…

图文证明 等价无穷小替换

等价无穷小替换 定义 等价无穷小是无穷小之间的一种关系,指的是:在同一自变量的趋向过程中,若两个无穷小之比的极限为1,则称这两个无穷小是等价的。无穷小等价关系刻画的是两个无穷小趋向于零的速度是相等的。 设当 x → x 0 时…

Android 接入第三方数数科技平台

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数数科技平台是什么?二、使用步骤1.集成SDK2. 初始化3. 发送事件和设置账号id4. 验证发送事件是否成功 小结 前言 一个成熟的App必然不可缺少对…

算法学习系列(十四):并查集

目录 引言一、并查集概念二、并查集模板三、例题1.合并集合2.连通块中点的数量 引言 这个并查集以代码短小并且精悍的特点,在算法竞赛和面试中特别容易出,对于面试而言,肯定不会让你去写一两百行的代码,一般出的都是那种比较短的…

服务器的TCP连接限制:如何优化并提高服务器的并发连接数?

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注),发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

mysql基础-表操作

环境: 管理工具:Navicat 数据库版本:5.7.37 mysql的版本,我们可以通过函数,version()进行查看,本次使用的版本如下: 目录 1.管理工具 1.1创建表 1.2.修改表名 1.3.复制表 1.4.删除表 2…

python开发的app有哪些,python如何开发小软件

这篇文章主要介绍了python开发的app有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 Python 无处不在,可以说是现代的 C 编程语言,你可以在任何地…

54.网游逆向分析与插件开发-游戏增加自动化助手接口-项目需求与需求拆解

内容来源于:易道云信息技术研究院VIP课 项目需求: 为游戏增加VIP功能-自动化助手。自动化助手做的是首先要说一下背景,对于授权游戏来讲它往往年限都比较老,老游戏和新游戏设计理念是不同的,比如说老游戏基本上在10年…

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1,EasyX的坐标2,EasyX的设备 三、窗口函数1,初始化窗口函数2,关闭绘图窗口3,设置窗口背景板颜色4,清空绘图设备 前言 easyx是针对c的图形库,…

360高级java面试真题

今年IT寒冬,大厂都裁员或者准备裁员,作为开猿节流主要目标之一,我们更应该时刻保持竞争力。为了抱团取暖,林老师开通了《知识星球》,并邀请我阿里、快手、腾讯等的朋友加入,分享八股文、项目经验、管理经验…