鸿蒙系统应用开辟 学习日记(一)

打印 上一主题 下一主题

主题 504|帖子 504|积分 1512

系列文章目次

第一章 认识HarmmonyOS

  
媒介

鸿蒙操纵系统(HarmonyOS)是华为公司发布的一款智能终端系统,从HarmonyOS2.0版本发布开始正式覆盖手机等移动终端。随着近期公布HarmonyOS NEXT版本将不再兼容安卓应用,意味着移动开辟行业中将会产生一个继Android App开辟、ios App开辟后的HarmonyOS App开辟岗位。
一、什么是鸿蒙?

鸿蒙是一款面向万物互联时代的、全新的分布式操纵系统,能够支持手机、平板、智能穿着、智慧屏、车机、PC、智能音箱、耳机、AR/VR眼镜等多种终端设备,
鸿蒙提供了用户步伐框架、Ability框架以及UI框架,支持应用开辟过程中多终端的业务逻辑和界面逻辑举行复用,能够实现应用的一次开辟、多端部署,提升了跨设备应用的开辟服从。
二、开辟工具

工具: DevEco Studio
下载地点:https://developer.huawei.com/consumer/cn/deveco-studio/
历史稳定版本DevEco Studio 3.1.1 Release 下载地点:https://developer.huawei.com/consumer/cn/deveco-studio/archive/
现在华为官网DevEco Studio 5.0版本都属于测试版本,可以根据自己喜欢下载安装
三、下载安装

打开安装包文件

勾选创建桌面快捷方式后一直下一步即可

运行 DevEco Studio 安装结束。
HarmonyOS SDK已嵌入DevEco Studio中,无需再额外下载设置。
四、新建应用

通过Create Project构建第一个鸿蒙应用
选择 Empty Ability 创建一个空模板应用

编辑你的项目设置(没有特别需求的话修改项目名、包名、保存路径即可)

点击finish即可得到第一个鸿蒙应用
五、目次先容

左边 ArkTest 即项目文件目次

src > main > ets:用于存放ArkTS源码。
src > main > ets > entryability:应用/服务的入口。
src > main > ets > entrybackupability:应用提供扩展的备份规复本领。
src > main > ets > pages:应用/服务包含的页面。
src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。
src > main > module.json5:模块设置文件。主要包含HAP包的设置信息、应用/服务在具体设备上的设置信息以及应用/服务的全局设置信息。具体的设置文件说明,详见module.json5设置文件。
build-profile.json5:当前的模块信息 、编译信息设置项,包括buildOption、targets设置等。
hvigorfile.ts:模块级编译构建任务脚本。
obfuscation-rules.txt:肴杂规则文件。肴杂开启后,在使用Release模式举行编译时,会对代码举行编译、肴杂及压缩处理惩罚,掩护代码资产。详见开启代码肴杂。
oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。
oh_modules:用于存放三方库依赖信息。
build-profile.json5:工程级设置信息,包括签名signingConfigs、产物设置products等。其中products中可设置当前运行环境,默认为HarmonyOS。
hvigorfile.ts:工程级编译构建任务脚本。
oh-package.json5:主要用来描述全局设置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化设置(parameterFile)等。
六、UIAbiliy

在src > main > ets > entryability目次下我们发现新建项目后编译器已经主动给我们天生了EntryAbility.ts文件 打开 EntryAbility.ts 文件可以发现 EntryAbility extends UIAbility。

1、UIAbiliy是什么

UIAbility 组件是一种包含UI的应用组件,UIAbility组件是系统应用中调度的根本单元(最小单元),为应用提供绘制界面的窗口,主要用于和用户交互。一个应用可以包含一个或多个UIAbility组件。 简单点形容打开手机最近任务列表窗口

这里的每一个窗口我们可以明白为一个UIAbility。在开辟中,如果我们盼望在任务视图中看到多个任务,或者须要同时开启多个窗口,就可以创建多个UIAbility。
2、UIAbiliy的设置

由于是编译器帮我们主动创建的EntryAbility.ts类,以是我们可以发现在src > main > module.json5 文件中已经主动帮我们写好了EntryAbility.ts类的名称、入口、标签等相干信息。
以是当我们新建新的UIAbility子类时为使应用能够正常使用我们须要在module.json5设置文件的abilities标签中声明UIAbility子类的相干信息。

3、UIAbiliy的生命周期

在编译器帮我们天生的EntryAbility.ts类中我们可以发现存在onCreate(),onDestroy(),onWindowStageCreate(),onWindowStageDestroy(),onForeground(),onBackground()方法。这些方法即UIAbiliy的生命周期,会在应用的不同状态下触发。
onCreate()
Create状态为在应用加载过程中,UIAbility实例创建完成时触发,系统会调用onCreate()回调。可以在该回调中举行页面初始化操纵,例如变量界说资源加载等,用于后续的UI展示。
onWindowStageCreate()onWindowStageDestroy()
UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI加载、设置WindowStage的事件订阅。
在EntryAbility.ts类的onWindowStageCreate()方法中,已经有通过loadContent()方法设置应用要加载的页面的代码。

在UIAbility实例销毁之前,则会先进入onWindowStageDestroy()回调,可以在该回调中释放UI资源。
onForeground()onBackground()
Foreground和Background状态分别在UIAbility实例切换至前台和切换至背景时触发,对应于onForeground()回调和onBackground()回调。
onForeground()回调,在UIAbility的UI可见之前,如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统须要的资源,或者重新申请在onBackground()中释放的资源。
onBackground()回调,在UIAbility的UI完全不可见之后,如UIAbility切换至背景时候触发。可以在onBackground()回调中释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操纵,例如状态保存等。
onDestroy()
Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中举行系统资源的释放、数据的保存等操纵。
别的我们须要留意当应用的UIAbility实例已创建,且UIAbility设置为singleton启动模式时,再次调用startAbility()方法启动该UIAbility实例时,只会进入该UIAbility的onNewWant()回调,不会进入其onCreate()和onWindowStageCreate()生命周期回调。
七、ArkUI

在src > main > ets > pages目次下存在一个Index.ets文件,这个是编译器为我们创建的第一个页面,通过点击编译器右侧的Previewer按钮会出现当前页面的内容。

这个就是通过HarmonyOS 推出的方舟开辟框架(ArkUI)实现的页面布局。
1、什么是ArkUI

ArkUI 对应的中文名字是方舟开辟框架。 ArkUI为HarmonyOS应用的UI开辟提供了完备的底子设施,来支持开辟者举行可视化界面开辟。 包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及及时界面预览工具等,可以支持开辟者举行可视化界面开辟。
2、根本概念

UI:即用户界面。开辟者可以将应用的用户界面设计为多个功能页面,每个页面举行单独的文件管理,并通过页面路由API完成页面间的调度管理如跳转、回退等操纵,以实现应用内的功能解耦,一个应用的用户界面通常会由多个功能页面组成。
组件:UI构建与表现的最小单位,如列表、网格、按钮、单选框、进度条、文本等。开辟者通过多种组件的组合,构建出满足自身应用诉求的完备界面,ArkUI提供了系统组件和自界说组件。
3、开辟范式

ArkUI提供了两种开辟范式 1.声明式开辟范式(基于ArkTS的声明式开辟范式) 2.类Web开辟范式(兼容JS的类Web开辟范式)
声明式开辟范式:采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制本领。
类Web开辟范式:采用经典的HML、CSS、JavaScript三段式开辟方式,纵然用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理惩罚逻辑。该范式更符合于Web前端开辟者的使用风俗,便于快速将已有的Web应用改造成方舟开辟框架应用。
HarmonyOS保举采用声明式开辟范式来构建UI
声明开辟样式具有以下优点:
开辟服从:声明式开辟范式更靠近自然语义的编程方式,开辟者可以直观地描述UI,无需关心如何实现UI绘制和渲染,开辟高效简洁。
应用性能:如下图所示,两种开辟范式的UI后端引擎和语言运行时是共用的,但是相比类Web开辟范式,声明式开辟范式无需JS框架举行页面DOM管理,渲染更新链路更为精简,占用内存更少,应用性能更佳。
发展趋势:声明式开辟范式后续会作为主推的开辟范式持续演进,为开辟者提供更丰富、更强大的本领。
4、什么是ArkTS

ArkTS 是UI开辟语言,基于TypeScript(简称TS)语言扩展而来,是TS的超集,是HarmonyOS优选的主力应用开辟语言。 扩展本领包含各种装饰器、自界说组件、UI描述机制。 状态数据管理是基于ArkTS的声明式开辟范式的特色。具有开辟服从高,开辟体验好、性能优越、生态轻易快速推进等优点。
后续将继续更新学习条记

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表