热门 最新 精选 话题 上榜
AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。 AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。
首选项无法保证进程并发安全,会有文件损坏和数据丢失的风险,不支持在多进程场景下使用。 Key键为string类型,要求非空且长度不超过1024个字节。 如果Value值为string类型,请使用UTF-8编码格式,可以为空,不为空时长度不超过16MB。 当存储的数据中包含非UTF-8格式的字符串时,请使用Uint8Array类型存储,否则会造成持久化文件出现格式错误造成文件损坏。 当调用removePreferencesFromCache或者deletePreferences后,订阅的数据变更会主动取消订阅,重新getPreferences后需要重新订阅数据变更。 不允许deletePreferences与其他接口多线程、多进程并发调用,否则会发生不可预期行为。 内存会随着存储数据量的增大而增大,所以存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。
原创 6月前
190阅读
HarmonyOS:通过preferences (用户首选项)实现数据持久化
Remote Communication Kit中的@hms.collaboration.rcp(后续简称RCP)指的是远程通信平台(remote communication platform),RCP提供了网络数据请求功能,相较于Network Kit中HTTP请求能力,RCP更具易用性,且拥有更多的功能。在开发过程中,如果有些场景使用Network Kit中HTTP请求能力达不到预期或无法实现,那么就可以尝试使用RCP中的数据请求功能来实现。
原创 6月前
120阅读
HarmonyOS:基于RCP的网络请求开发实践
使用克魔监控iOS游戏帧率(FPS)的完整指南一、功能简介克魔(Keymob)提供精准的iOS游戏帧率(Frames Per Second, FPS)监控能力,支持实时追踪渲染性能,帮助开发者快速定位卡顿、掉帧等问题。通过本教程,您将掌握:FPS基础概念与数据解读方法标准60Hz设备与**ProMotion高刷设备(120Hz)**的监控差异帧率优化与性能调优实战技巧二、FPS指标核心解析1. 基
声明接口调用所需要的权限:ohos.permission.GET_NETWORK_INFO。 此权限级别为normal,在申请权限前,请保证符合权限使用的基本原则。然后参考访问控制-声明权限声明对应权限。 从@kit.NetworkKit中导入connection命名空间。 调用createNetConnection方法,指定网络能力、网络类型和超时时间(可选,如不传入代表默认网络;创建不同于默认网络时可通过指定这些参数完成),创建一个NetConnection对象。 调用该对象的on()方法,传入type和callback,订阅关心的事件。 调用该对象的register()方法,订阅指定网络状态变化的通知。 当网络可用时,会收到netAvailable事件的回调;当网络不可用时,会收到netUnavailable事件的回调。 当不使用该网络时,可以调用该对象的unregister()方法,取消订阅。
@LocalBuilder只能在所属组件内声明,不允许全局声明。 @LocalBuilder不能被内置装饰器和自定义装饰器使用。 自定义组件内的静态方法不能和@LocalBuilder一起使用。
ArkUI提供了一种轻量的UI元素复用机制@Builder,其内部UI结构固定,仅与使用方进行数据传递,开发者可以将重复使用的UI元素抽象成一个方法,在build方法里调用。
@Reusable适用自定义组件,与@Component结合使用,标记为@Reusable的自定义组件从组件树上被移除时,组件和其对应的JSView对象都会被放入复用缓存中,后续创建新自定义组件节点时,会复用缓存区中的节点,节约组件重新创建的时间。
原创 6月前
115阅读
HarmonyOS:@Reusable装饰器:组件复用
@Require是校验@Prop、@State、@Provide、@BuilderParam和普通变量(无状态装饰器修饰的变量)是否需要构造传参的一个装饰器。 当@Require装饰器和@Prop、@State、@Provide、@BuilderParam、普通变量(无状态装饰器修饰的变量)结合使用时,在构造该自定义组件时,@Prop、@State、@Provide、@BuilderParam和普通变量(无状态装饰器修饰的变量)必须在构造时传参。 @Require装饰器仅用于装饰struct内的@Prop、@State、@Provide、@BuilderParam和普通变量(无状态装饰器修饰的变量)。
不变的变量推荐使用const声明。 number类型变量避免整型和浮点型混用; 循环中常量提取,减少属性访问次数, 在循环中会大量进行一些常量的访问操作,如果该常量在循环中不会改变,可以提取到循环外部,减少属性访问的次数。
@AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的属性。在动画执行过程时,通过逐帧回调函数修改不可动画属性值,让不可动画属性也能实现动画效果。也可通过逐帧回调函数修改可动画属性的值,实现逐帧布局的效果。 可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值可以使animation属性的动画效果生效,这个属性称为可动画属性。比如height、width、backgroundColor、translate属性,和Text组件的fontSize属性等。 不可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值不能使animation属性的动画效果生效,这个属性称为不可动画属性。比如Polyline组件的points属性等。
原创 6月前
122阅读
HarmonyOS:@AnimatableExtend装饰器:定义可动画属性
stateStyles是属性方法,可以根据UI内部状态来设置样式,类似于css伪类,但语法不同。ArkUI提供以下五种状态: focused:获焦态。 normal:正常态。 pressed:按压态。 disabled:不可用态。 selected10+:选中态。
@ObjectLink和@Observed类装饰器用于在涉及嵌套对象或数组的场景中进行双向数据同步: 被@Observed装饰的类,可以被观察到属性的变化; 子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class object中的属性,这个属性同样也需要被@Observed装饰。 @Observed用于嵌套类场景中,观察对象类属性变化,要配合自定义组件使用(示例详见嵌套对象),如果要做数据双/单向同步,需要搭配@ObjectLink或者@Prop使用(示例详见@Prop与@ObjectLink的差异)。
TaskPool和Worker均支持多线程并发能力。由于TaskPool的工作线程会绑定系统的调度优先级,并且支持负载均衡(自动扩缩容),而Worker需要开发者自行创建,存在创建耗时以及不支持设置调度优先级,故在性能方面使用TaskPool会优于Worker,因此大多数场景推荐使用TaskPool。
使用@Styles用于样式的重用,在@Styles的基础上,使用@Extend扩展原生组件样式。 和@Styles不同,@Extend支持封装指定组件的私有属性、私有事件和自身定义的全局方法。 和@Styles不同,@Extend装饰的方法支持参数,开发者可以在调用时传递参数,调用遵循TS方法传值调用。
原创 6月前
137阅读
HarmonyOS:@Extend装饰器:定义扩展组件样式
@Styles装饰器 可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过@Styles装饰器可以快速定义并复用自定义样式。
px 屏幕物理像素单位。 vp 屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,当数值不带单位时,默认单位vp。 说明: vp与px的比例与屏幕像素密度有关。 fp 字体像素,与vp类似适用屏幕密度变化,随系统字体大小设置变化。 lpx 视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度(通过designWidth配置)的比值,designWidth默认值为720。当designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。
原创 6月前
110阅读
HarmonyOS:像素单位
Scroll(){ } .align(Alignment.TopStart) .edgeEffect(EdgeEffect.Spring)//设置边缘滑动效果。
创建Worker时,有手动和自动两种创建方式,手动创建Worker线程目录及文件时,还需同步进行相关配置,详情请参考创建Worker的注意事项。 使用Worker能力时,构造函数中传入的Worker线程文件的路径在不同版本有不同的规则,详情请参见文件路径注意事项。 Worker创建后需要手动管理生命周期,且最多同时运行的Worker子线程数量为64个,详情请参见生命周期注意事项。 由于不同线程中上下文对象是不同的,因此Worker线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用。 序列化传输的数据量大小限制为16MB。 使用Worker模块时,需要在宿主线程中注册onerror接口,否则当Worker线程出现异常时会发生jscrash问题。 不支持跨HAP使用Worker线程文件。 引用HAR/HSP前,需要先配置对HAR/HSP的依赖,详见引用共享包。 不支持在Worker工作线程中使用AppStorage。
任务池(TaskPool)作用是为应用程序提供一个多线程的运行环境,降低整体资源的消耗、提高系统的整体性能,且您无需关心线程实例的生命周期。 任务函数在TaskPool工作线程的执行耗时不能超过3分钟(不包含Promise和async/await异步调用的耗时,例如网络下载、文件读写等I/O任务的耗时),否则会被强制退出。 Promise不支持跨线程传递,如果TaskPool返回pending或rejected状态的Promise,会返回失败;对于fulfilled状态的Promise,TaskPool会解析返回的结果,如果结果可以跨线程传递,则返回成功。 不支持在TaskPool工作线程中使用AppStorage。
原创 6月前
109阅读
HarmonyOS:多线程并发-TaskPool
ArkUI提供了Grid容器组件和子组件GridItem,用于构建网格布局。Grid用于设置网格布局相关参数,GridItem定义子组件相关特征。Grid组件支持使用条件渲染、循环渲染、懒加载等方式生成子组件。
原创 6月前
122阅读
HarmonyOS:使用Grid构建网格
Swiper组件提供滑动轮播显示的能力。Swiper本身是一个容器组件,当设置了多个子组件后,可以对这些子组件进行轮播显示。通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。 通过loop属性控制是否循环播放,该属性默认值为true。
import { http } from '@kit.NetworkKit' function getNetData() { // 创建数据请求对象 let httpRequest = http.createHttp() }
原创 6月前
106阅读
HarmonyOS:使用HTTP访问网络
并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发模型作为基于消息通信并发模型的典型代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用。 当前ArkTS提供了TaskPool和Worker两种并发能力,TaskPool和Worker都基于Actor并发模型实现。 Actor并发模型和内存共享并发模型的具体对比请见多线程并发模型。
Promise和async/await提供异步并发能力,是标准的JS异步语法。异步代码会被挂起并在之后继续执行,同一时间只有一段代码执行,适用于单次I/O任务的场景开发,例如一次网络请求、一次文件读写等操作。无需另外启动线程执行。 异步语法是一种编程语言的特性,允许程序在执行某些操作时不必等待其完成,而是可以继续执行其他操作。
Emitter主要提供线程间发送和处理事件的能力,包括对持续订阅事件或单次订阅事件的处理、取消订阅事件、发送事件到事件队列等。
@Provide和@Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,@Provide和@Consume摆脱参数传递机制的束缚,实现跨层级传递。 其中@Provide装饰的变量是在祖先组件中,可以理解为被“提供”给后代的状态变量。@Consume装饰的变量是在后代组件中,去“消费(绑定)”祖先组件提供的变量。
根据授权方式的不同,权限类型可分为system_grant(系统授权)和user_grant(用户授权)。 system_grant指的是系统授权类型,在该类型的权限许可下,应用被允许访问的数据不会涉及到用户或设备的敏感信息,应用被允许执行的操作对系统或者其他应用产生的影响可控。 user_grant指的是用户授权类型,在该类型的权限许可下,应用被允许访问的数据将会涉及到用户或设备的敏感信息,应用被允许执行的操作可能对系统或者其他应用产生严重的影响。
系统根据应用的APL等级设置进程域和数据域标签,并通过访问控制机制限制应用可访问的数据范围,从而实现在机制上消减应用数据泄露的风险。 不同APL等级的应用能够申请的权限等级不同,且不同的系统资源(如:通讯录等)或系统能力(如:访问摄像头、麦克风等)受不同的应用权限保护。通过严格的分层权限保护,有效抵御恶意破坏,确保系统安全可靠。
原创 6月前
59阅读
HarmonyOS:访问控制概述
应用沙箱是一种以安全防护为目的的隔离机制,避免数据受到恶意路径穿越访问。在这种沙箱的保护机制下,应用可见的目录范围即为“应用沙箱目录”。
原创 6月前
135阅读
HarmonyOS:应用沙箱