![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HarmonyOS NEXT
文章平均质量分 83
兔子不吃饭
这个作者很懒,什么都没留下…
展开
-
HarmonyOS NEXT - 报名申请(HarmonyOS NEXT Beta 版开发者及先锋用户招募(第一期)——先锋用户)
,请您在完成保密协议签署、通过报名答题后,回到本页面填写报名信息。若完成其中一项步骤后报名条件状态未更新,请您刷新本页面后稍作等待。如果您有更多疑问,您也可以通过。导读:此页面用于先锋用户报名申请(具备有应用开发经验的非专业用户,限量招募。下面的链接或者直接点击。,先到先得,招满即止。原创 2024-06-21 17:40:55 · 1904 阅读 · 4 评论 -
HarmonyOS NEXT - 方舟字节码文件格式(6-21)开发者大会更新
方舟字节码文件是ArkTS/TS/JS编译后的二进制产物。本文详细介绍了方舟字节码文件的格式,旨在帮助开发者深入了解构成字节码的各个部分,从而指导开发者进行字节码的分析和修改工作。原创 2024-06-21 15:19:38 · 1247 阅读 · 0 评论 -
HarmonyOS NEXT - 方舟字节码基本原理(6-21)开发者大会更新
方舟字节码(Ark Bytecode),是由方舟编译器编译ArkTS/TS/JS生成的,提供给方舟运行时解释执行的二进制文件,字节码中的主要内容是方舟字节码指令。本文旨在介绍方舟字节码指令相关的设计,将在后续章节中对构成指令的重要概念和具体的指令格式及含义进行说明,帮助开发者了解方舟字节码指令,指导开发者进行指令相关的特性开发工作。一条方舟字节码指令,由操作码(指令的名称)和指令入参列表组成。操作码包含无前缀的操作码和有前缀的操作码两种情况。原创 2024-06-21 15:18:16 · 2279 阅读 · 0 评论 -
HarmonyOS NEXT - @Builder装饰器:自定义构建函数
定义的语法:使用方法:允许在自定义组件内定义一个或多个@Builder方法,该方法被认为是该组件的私有、特殊类型的成员函数。自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。在自定义函数体中,this指代当前所属组件,组件的状态变量可以在自定义构建函数内访问。建议通过this访问自定义组件的状态变量而不是参数传递。定义的语法:使用方法:如果不涉及组件状态变化,建议使用全局的自定义构建方法。原创 2024-06-21 14:06:52 · 416 阅读 · 0 评论 -
HarmonyOS NEXT - 自定义组件冻结功能
自定义组件处于非激活状态时,状态变量将不响应更新,即@Watch不会调用,状态变量关联的节点不会刷新。通过freezeWhenInactive属性来决定是否使用冻结功能,不传参数时默认不使用。支持的场景有:页面路由,TabContent,LazyforEach,Navigation。说明从API version 11开始,支持自定义组件冻结功能。原创 2024-06-20 21:01:14 · 852 阅读 · 0 评论 -
HarmonyOS NEXT - 自定义组件的自定义布局
例如,在本示例中,在onMeasureSize中初始化组件大小size=100,后续的每一个子组件size会加上上一个子组件大小的一半,实现组件大小递增的效果。而在onPlaceChildren中,定义startPos=300,设置每一个子组件的位置为startPos减去子组件自身的高度,所有子组件右下角一致在顶点位置(300,300),实现一个从右下角开始展示组件的类Stack组件。:组件每次布局时触发,计算子组件的尺寸,其执行时间先于onPlaceChildren。原创 2024-06-20 20:57:44 · 285 阅读 · 0 评论 -
HarmonyOS NEXT - 页面和自定义组件生命周期
自定义组件的创建:自定义组件的实例由ArkUI框架创建。初始化自定义组件的成员变量:通过本地默认值或者构造方法传递参数来初始化自定义组件的成员变量,初始化顺序为成员变量的定义顺序。如果开发者定义了aboutToAppear,则执行aboutToAppear方法。在首次渲染的时候,执行build方法渲染系统组件,如果子组件为自定义组件,则创建自定义组件的实例。在首次渲染的过程中,框架会记录状态变量和组件的映射关系,当状态变量改变时,驱动其相关的组件刷新。原创 2024-06-20 20:41:44 · 641 阅读 · 0 评论 -
HarmonyOS NEXT - 自定义组件 - 创建自定义组件
以下示例展示了自定义组件的基本用法。@Componentbuild() {// HelloComponent自定义组件组合系统组件Row和TextRow() {// 状态变量message的改变驱动UI刷新,UI从'Hello, World!'刷新为'Hello, ArkUI!})注意如果在另外的文件中引用该自定义组件,需要使用export关键字导出,并在使用的页面import该自定义组件。原创 2024-06-20 20:38:35 · 805 阅读 · 0 评论 -
HarmonyOS NEXT - UI范式 - 基本语法 - 声明式UI描述
基本语法概述在初步了解了ArkTS语言之后,我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。示例效果图本示例中,ArkTS的基本组成如下所示。ArkTS的基本组成说明自定义变量不能与基础通用属性/事件名重复。装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,表示自定义组件,表示该自定义组件为入口组件,原创 2024-06-20 20:28:02 · 834 阅读 · 0 评论 -
HarmonyOS NEXT - 适配指导案例
本文通过更多应用场景中的案例,提供在ArkTS语法规则下将TS代码适配成ArkTS代码的建议。各章以ArkTS语法规则英文名称命名,每个案例提供适配前的TS代码和适配后的ArkTS代码。原创 2024-06-20 20:14:15 · 1260 阅读 · 0 评论 -
HarmonyOS NEXT - 从TypeScript到ArkTS的适配规则(三)
级别:错误ArkTS不支持通用模块定义(UMD)。因为在ArkTS中没有“脚本”的概念(相对于“模块”)。此外,在ArkTS中,导入是编译时而非运行时特性。改用export和import语法。TypeScript// 脚本中ArkTS// 程序中相关约束不支持在模块名中使用通配符。原创 2024-06-20 17:40:50 · 971 阅读 · 0 评论 -
HarmonyOS NEXT - 从TypeScript到ArkTS的适配规则(二)
在TypeScript中,instanceof运算符的左操作数的类型必须为any类型、对象类型,或者它是类型参数,否则结果为false。在ArkTS中,instanceof运算符的左操作数的类型必须为引用类型(例如,对象、数组或者函数),否则会发生编译时错误。由于在ArkTS中,对象布局在编译时是确定的、并且不能在运行时被改变,所以不支持使用for .. in迭代一个对象的属性。由于在ArkTS中,对象布局在编译时是已知的并且在运行时无法修改,因此,不支持in运算符。在静态语言中,对象的布局是确定的。原创 2024-06-20 15:52:28 · 577 阅读 · 0 评论 -
HarmonyOS NEXT - 从TypeScript到ArkTS的适配规则(一)
本节罗列了ArkTS不支持或部分支持的TypeScript特性。完整的列表以及详细的代码示例和重构建议,请参考约束说明。更多案例请参考适配指导案例。原创 2024-06-19 14:05:53 · 929 阅读 · 0 评论 -
HarmonyOS NEXT - 从TypeScript到ArkTS的适配指导
从API version 10 Release起,ArkTS的语法规则基于上述设计考虑进行了明确定义,同时,SDK增加了在编译流程中对.ets文件的ArkTS语法检查,通过编译告警或编译失败提示开发者适配新的ArkTS语法。一切看起来正常,但是请注意,为了保证该场景下程序的正确性,引擎总是在运行时进行类型检查,执行类似以下的伪代码。现在想象一下,如果函数notify是某些复杂的负载场景中的一部分,而不仅仅是打印日志,那么在运行时执行像__internal_tostring的类型检查将会是一个性能问题。原创 2024-06-17 14:10:56 · 884 阅读 · 0 评论 -
HarmonyOS NEXT - ArkTS语言 - 模块、关键字、空安全
SDK对同一个Kit下的接口模块进行了封装,开发者在示例代码中可通过导入Kit的方式来使用Kit所包含的接口能力。在以下示例中,如果一个Person的实例有不为空的spouse属性,且spouse有不为空的nick属性,则输出spouse.nick。否则,这些语句将在执行模块的其他功能之前执行。每个模块都有其自己的作用域,即,在模块中创建的任何声明(变量、函数、类等)在该模块之外都不可见,除非它们被显式导出。方式三可能会导入过多无需使用的模块,导致编译后的HAP包太大,占用过多资源,请谨慎使用。原创 2024-06-17 14:01:41 · 944 阅读 · 0 评论 -
HarmonyOS NEXT - ArkTS语言 - 接口
泛型类型的类型参数可以绑定。例如,HashMap容器中的Key类型参数必须具有哈希方法,即它应该是可哈希的。这样可以不指定实际的类型实参,而只使用泛型类型名称。在上面的例子中,Key类型扩展了Hashable,Hashable接口的所有方法都可以为key调用。继承接口包含被继承接口的所有属性和方法,还可以添加自己的属性和方法。泛型类型和函数允许创建的代码在各种类型上运行,而不仅支持单一类型。任何一个类的实例只要实现了特定接口,就可以通过该接口实现多态。接口是定义代码协定的常见方式。原创 2024-06-17 13:39:28 · 327 阅读 · 0 评论 -
HarmonyOS NEXT - ArkTS语言 - 类
而实例方法既可以访问静态字段,也可以访问实例字段,包括类的私有字段。具体方法为,为同一个方法写入多个同名但签名不同的方法头,方法实现紧随其后。继承类可以新增定义字段和方法,也可以覆盖其基类定义的方法。重写的方法必须具有与原始方法相同的参数类型和相同或派生的返回类型。包含implements子句的类必须实现列出的接口中定义的所有方法,但使用默认实现定义的方法除外。静态字段属于类本身,类的所有实例共享一个静态字段。public修饰的类成员(字段、方法、构造函数)在程序的任何可访问该类的地方都是可见的。原创 2024-06-17 10:58:15 · 660 阅读 · 0 评论 -
HarmonyOS NEXT - ArkTS语言 - 函数篇
在下例中,z是执行f时创建的g箭头函数实例的引用。函数的最后一个参数可以是rest参数。具体方法为,为同一个函数写入多个同名但签名不同的函数头,函数实现紧随其后。闭包是由函数及声明该函数的环境组合而成的。不需要返回值的函数的返回类型可以显式指定为void或省略标注。如果函数中定义的变量与外部作用域中已有实例同名,则函数内的局部变量定义将覆盖外部定义。如果可以从函数体内推断出函数返回类型,则可在函数声明中省略标注返回类型。函数中定义的变量和其他实例仅可以在函数内部访问,不能从外部访问。原创 2024-06-17 10:15:23 · 1005 阅读 · 0 评论 -
HarmonyOS NEXT - ArkTS语言介绍 - 基本知识{声明、类型、运算符,语句}
ArkTS是一种为构建高性能应用而设计的编程语言。ArkTS在继承TypeScript语法的基础上进行了优化,以提供更高的性能和开发效率。随着移动设备在人们的日常生活中变得越来越普遍,许多编程语言在设计之初没有考虑到移动设备,导致应用的运行缓慢、低效、功耗大,针对移动环境的编程语言优化需求也越来越大。ArkTS是专为解决这些问题而设计的,聚焦于提高运行效率。目前流行的编程语言TypeScript是在JavaScript基础上通过添加类型定义扩展而来的,而ArkTS则是TypeScript的进一步扩展。原创 2024-06-16 21:23:38 · 1800 阅读 · 1 评论 -
HarmonyOS NEXT - 初识ArkTS语言
在UI开发框架中,与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,还可以在应用全局范围内传递或跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。同时,由于所有类型在程序实际运行前都是已知的,编译器可以验证代码的正确性,从而减少运行时的类型检查,有助于性能提升。:ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统组件及其相关的事件方法、属性方法等共同构成了UI开发的主体。原创 2024-06-14 17:32:49 · 294 阅读 · 0 评论 -
HarmonyOS NEXT - 资源分类与访问
应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同的设备或配置中的表现。系统资源:开发者直接使用系统预置的资源定义(即分层参数,同一资源ID在设备类型、深浅色等不同配置下有不同的取值)。原创 2024-06-14 17:31:14 · 732 阅读 · 0 评论 -
HarmonyOS NEXT - module对象内部结构(二)
场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。原创 2024-06-14 17:23:40 · 833 阅读 · 0 评论 -
HarmonyOS NEXT - module对象内部结构(一)
module对象包含HAP的配置信息。属性名称含义数据类型是否可缺省服务中心图标露出的Ability,常驻进程拉起时会启动mainAbility。字符串可缺省,缺省值为空。package标识HAP的包结构名称,在应用内保证唯一性。采用反向域名格式(建议与HAP的工程目录保持一致)。字符串长度为1-127个字节。字符串不可缺省。name标识HAP的类名。采用反向域名方式标识,前缀要与同级的package标签指定的包名一致,也可采用"."开头的命名方式。字符串长度不超过255字节。原创 2024-06-14 15:49:02 · 715 阅读 · 0 评论 -
HarmonyOS NEXT - deviceConfig内部结构
deviceConfig包含设备上的应用配置信息,可以包含default、tv、car、wearable等属性。default标签内的配置适用于所有通用设备,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。原创 2024-06-14 15:41:04 · 769 阅读 · 0 评论 -
HarmonyOS NEXT - app对象内部结构
标识应用程序是否开启asan检测,用于辅助定位buffer越界造成的crash问题。- true:当前工程开启asan检测。- false:当前工程不开启asan检测。Release版本不支持开启asan检测。原创 2024-06-14 15:39:04 · 528 阅读 · 0 评论 -
HarmonyOS NEXT - 应用配置文件概述(FA模型)
每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供描述应用的基本信息。应用配置文件需申明以下内容:应用的软件Bundle名称,应用的开发厂商,版本号等应用的基本配置信息,这些信息被要求设置在app这个字段下。应用的组件的基本信息,包括所有的Ability,设备类型,组件的类型以及当前组件所使用的语法类型。应用在具体设备上的配置信息,这些信息会影响应用在设备上的具体功能。原创 2024-06-14 15:37:30 · 261 阅读 · 0 评论 -
HarmonyOS NEXT - module.json5配置文件(三)
xxxldpi:表示大规模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(480, 640]的设备。- xxldpi:表示大规模的屏幕密度(Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(320,480]的设备。- ldpi:表示大规模的屏幕密度(Large-scale Dots Per Inch),适用于dpi取值为(160,240]的设备。此标签用于支持对元服务的配置。原创 2024-06-14 15:33:52 · 726 阅读 · 0 评论 -
HarmonyOS NEXT - module.json5配置文件(二)
配置规则:entry包可以配置多个具有入口能力的skills标签(配置了ohos.want.action.home和entity.system.home)的ExtensionAbility,其中第一个配置了skills标签的ExtensionAbility中的label和icon作为服务或应用的label和icon。标识快捷方式内定义的目标wants信息集合,每个wants可配置bundleName、moduleName和abilityName三个子标签,并且支持配置其中的一个或多个标签。原创 2024-06-14 15:26:36 · 595 阅读 · 0 评论 -
HarmonyOS NEXT - module.json5配置文件(一)
resource属性值使用“$profile:文件名”的方式指定文件所在位置,$profile表示资源的路径为工程中的/resources/base/profile目录下。在开发视图的resources/base/profile下面定义配置文件main_pages.json,其中文件名"main_pages"可自定义,需要和pages标签指定的信息对应。abilities标签描述UIAbility组件的配置信息,标签值为数组类型,该标签下的配置只对当前UIAbility生效。一个数组元素为一个权限名称。原创 2024-06-14 15:20:32 · 927 阅读 · 0 评论 -
HarmonyOS NEXT - app.json5配置文件
如果使用该属性对wearable设备做了特殊配置,则应用在wearable设备中会采用此处配置的属性值,并忽略在app.json5公共区域配置的属性值。如果使用该属性对default设备做了特殊配置,则应用在default设备中会采用此处配置的属性值,并忽略在app.json5公共区域配置的属性值。如果使用该属性对car设备做了特殊配置,则应用在car设备中会采用此处配置的属性值,并忽略在app.json5公共区域配置的属性值。配置该字段的应用为具有overlay特征的应用。四段式推荐的含义如下所示。原创 2024-06-14 15:13:39 · 343 阅读 · 0 评论 -
HarmonyOS NEXT - 应用配置文件(Stage模型)
在基于Stage模型开发的应用项目代码下,都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。每个应用项目的代码目录下必须包含应用配置文件,这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息。Module的基本配置信息,包含Module名称、类型、描述、支持的设备类型等基本信息。信息,包含UIAbility组件和ExtensionAbility组件的描述信息。应用的全局配置信息,包含应用的Bundle名称、开发厂商、版本号等基本信息。特定设备类型的配置信息。原创 2024-06-14 15:12:25 · 203 阅读 · 0 评论 -
HarmonyOS NEXT - 应用程序包安装卸载与更新
本章节简要介绍应用程序包的安装卸载流程、以及应用程序包的两种更新方式。原创 2024-06-14 13:05:54 · 218 阅读 · 0 评论 -
HarmonyOS NEXT - 动态import
应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入。当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。当被导入的模块,在加载时并不存在,需要异步获取。当被导入的模块说明符,需要动态构建。(静态导入只能使用静态说明符)当被导入的模块有副作用(这里的副作用,可以理解为模块中会直接运行的代码),这些副作用只有在触发了某些条件才被需要时。原创 2024-06-14 11:30:14 · 885 阅读 · 0 评论 -
HarmonyOS NEXT - 应用程序包开发与使用 - HSP
HSP(Harmony Shared Package)是动态共享包,可以包含代码、C++库、资源和配置文件,通过HSP可以实现应用内的代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。说明仅支持应用内HSP,不支持应用间HSP。原创 2024-06-14 11:08:40 · 888 阅读 · 0 评论 -
HarmonyOS NEXT - 应用程序包开发与使用 - HAR
HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。原创 2024-06-13 19:44:38 · 849 阅读 · 0 评论 -
HarmonyOS NEXT - 应用程序包开发与使用 - HAP
HAP(Harmony Ability Package)是应用安装和运行的基本单元。HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry和feature。应用程序包可以只包含一个基础的entry包,也可以包含一个基础的entry包和多个功能性的feature包。原创 2024-06-13 19:33:34 · 769 阅读 · 0 评论 -
HarmonyOS NEXT - 应用程序包结构 - FA模型应用程序包结构
pack.info是Bundle中用于描述每个HAP属性的文件,例如app中的bundleName和versionCode信息、module中的name、type和abilities等信息,由IDE工具构建Bundle包时自动生成。assets是HAP所有的资源文件、库文件和代码文件的集合,内部可以分为entry和js文件夹。FA模型与Stage模型不同之处在于HAP内部文件存放位置不同,FA模型将所有的资源文件、库文件和代码文件都放在assets文件夹中,在文件夹内部进一步区分。原创 2024-06-13 19:16:18 · 218 阅读 · 0 评论 -
HarmonyOS NEXT - 应用程序包结构 - Stage模型应用程序包结构
为了让开发者能对应用程序包在不同阶段的形态更有清晰的认知,分别对开发态、编译态、发布态的应用程序结构展开介绍。原创 2024-06-13 16:36:28 · 1024 阅读 · 0 评论 -
HarmonyOS NEXT - 开发基础知识 - 应用程序包基础知识
在基于开发应用之前,开发者需要了解应用的设计机制、应用程序包结构等基础知识。原创 2024-06-13 16:05:25 · 917 阅读 · 0 评论 -
HarmonyOS NEXT - 构建第一个ArkTS应用(Stage模型)
,在main_pages.json文件中的“src”下配置第二个页面的路由“pages/Second”。页面路由router根据页面url找到目标页面,从而实现跳转。在默认页面基础上,我们添加一个Button组件,作为按钮响应用户点击,从而实现跳转到另一个页面。参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。在第一个页面中,跳转按钮绑定onClick事件,点击按钮时跳转到第二页。在第二个页面中,返回按钮绑定onClick事件,点击按钮时返回到第一页。配置第二个页面的路由。原创 2024-06-13 11:23:16 · 1276 阅读 · 0 评论