鸿蒙开发01
一、环境准备
1.1 开发工具下载
HarmonyOS官网 → 一探究竟 → DevEco Studio 下载
地址:https://developer.huawei.com/consumer/cn/
mac版DevEco Studio安装:官网下载对应的安装包,安装。
window版DevEco Studio安装,下载地址:添加链接描述,安装、环境配置时,建议 自定义目录,注意:路径中不要有 中文、特殊字符。
二 ArkTS介绍(一下内容引自华为官网)
ArkTS是简洁且高效的应用开发语言。
ArkTS 在继承 TypeScript 核心语法特性的基础上,构建规范化的类型系统,通过编译期静态检查与分析机制,提升代码健壮性,并实现更好的运行性能,让你能够以更简洁、更自然的方式开发高性能应用。
ArkTS 在保持 TypeScript(简称 TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,并提升运行时性能。
针对 JavaScript(简称JS)/TS 并发能力支持有限的问题,ArkTS 对并发编程 API 和能力进行了增强。
ArkTS 支持与 JS/TS 高效互操作,兼容 JS/TS 生态。
2.1 ArkTS 设计理念
为更好地支持 HarmonyOS 应用的开发和运行,从 Harmony OS NEXT Developer Preview 0 版本开始,ArkTS 在 TS 的基础上,进一步通过规范强化静态检查和分析,这样做有两个好处:1.许多错误在编译时可以被检测出来,不用等到运行时,这大大降低了代码运行错误的风险,有利于程序的健壮性;2.减少运行时的类型检查,从而降低了运行时负载,有助于提升执行性能。
ArkTS 保留了 TS 大部分的语法特性,这可以帮助你更容易上手 ArkTS。同时,对于已有的标准 TS 代码,你仅需对少部分代码进行 ArkTS 语法适配,大部分代码可以直接复用。
ArkTS 支持与标准 JS/TS 的高效互操作,兼容 JS/TS 生态。HarmonyOS 也提供了标准 JS/TS 的执行环境支持,在“更注重已有生态直接复用”的场景下,你可以选择使用标准 JS/TS 进行代码复用或开发,更方便兼容现有生态。
2.2 ArkTS 相比 TS 特性差异
ArkTS 通过规范约束了 TS 中过于灵活而影响开发正确性或者给运行时带来不必要额外开销的特性,下面通过代码片段说明部分约束特性。
-
不支持在运行时更改对象布局
以上 TS 代码片段展示了如何在运行时通过添加和删除某些属性来更改对象的布局。运行时支持此类特性需要大量的性能开销,ArkTS 不支持在运行时更改对象的布局。
在 ArkTS 中,可以使用可选属性和给该属性赋值 undefined 的方式来替代。 -
对象字面量须标注类型
以上 TS 代码片段展示了没有类型的场景。如果编译器不知道变量 point 的确切类型,由于对象布局不能确定,编译器无法深度地优化这段代码,造成性能瓶颈。没有类型也会造成属性的类型缺少限制,例如 point.x 的类型在此时为 number,它也可以被赋值成其他类型,造成额外的运行时检查和开销。
在 ArkTS 中,需要为对象字面量标注类型。
-
不支持structural typing
以上 TS 代码片段展示了 structural typing 特性。在 ArkTS 已经采用了 nominal typing 类型系统的前提下,如果额外支持 structural typing 给语言实现和开发者均会带来不必要的复杂度。在示例中,foo 虽然声明参数类型是 C,但也可以传递类型 D 的变量,这种灵活性可能不符合开发者的意图,容易带来程序行为的正确性问题。另外,由于类型 D 和类型 C 布局不同,那么 foo 中对 c.s 这个属性访问就不能被优化成根据固定偏移量访问的方式,从而给运行时性能造成瓶颈。