
HarmonyOs
csdn_Levy
这个作者很懒,什么都没留下…
展开
-
Stage模型开发概述
目前ExtensionAbility组件有用于卡片场景的FormExtensionAbility,用于输入法场景的InputMethodExtensionAbility,用于闲时任务场景的WorkSchedulerExtensionAbility等多种派生类,这些派生类都是基于特定场景提供的。同时用户可以通过返回键返回到瀑布流页面。UIAbility组件和各种ExtensionAbility组件的派生类都有各自不同的Context类,他们都继承自基类Context,但是各自又根据所属组件,提供不同的能力。原创 2024-12-02 14:30:21 · 334 阅读 · 0 评论 -
HarmonyOS 应用模型
应用模型是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。应用模型的构成要素包括:应用组件应用组件是应用的基本组成单位,是应用的运行入口。用户启动、使用和退出应用过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数,开发者通过应用组件的生命周期回调感知应用的。原创 2024-12-02 14:17:22 · 398 阅读 · 0 评论 -
Ability Kit
Ability Kit(程序框架服务)提供了应用程序开发和运行的应用模型,是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。原创 2024-12-02 13:55:04 · 323 阅读 · 0 评论 -
HarmonyOS 状态管理(V1稳定版)
ArkUI状态管理V1提供了多种装饰器,通过使用这些装饰器,状态变量不仅可以观察在组件内的改变,还可以在不同组件层级间传递,比如父子组件、跨组件层级,也可以观察全局范围内的变化。根据状态变量的影响范围,将所有的装饰器可以大致分为:管理组件拥有状态的装饰器:组件级别的状态管理,可以观察组件内变化,和不同组件层级的变化,但需要唯一观察同一个组件树上,即同一个页面内。管理应用拥有状态的装饰器:应用级别的状态管理,可以观察不同页面,甚至不同UIAbility的状态变化,是应用内全局的状态管理。原创 2024-11-17 18:00:06 · 567 阅读 · 0 评论 -
HarmonyOS的状态管理机制
在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。自定义组件拥有变量,变量必须被装饰器装饰才可以成为状态变量,状态变量的改变会引起UI的渲染刷新。如果不使用状态变量,UI只能在初始化时渲染,后续将不会再刷新View(UI):UI渲染,指将build方法内的UI描述和@Builder装饰的方法内的UI描述映射到界面。原创 2024-11-17 16:54:01 · 265 阅读 · 0 评论 -
多线程实现方式TaskPoll和Worker的区别?
TaskPool和Worker均支持多线程并发能力。由于TaskPool的工作线程会绑定系统的调度优先级,并且支持负载均衡(自动扩缩容),而Worker需要开发者自行创建,存在创建耗时以及不支持设置调度优先级,故在性能方面使用TaskPool会优于Worker,因此大多数场景推荐使用TaskPool。 TaskPool偏向独立任务维度,该任务在线程中执行,无需关注线程的生命周期,超长任务(大于3分钟且非长时任务)会被系统自动回收;而Worker偏向线程的维度,支持长时间占据线程执行,需要主动管理线程生命周原创 2024-10-30 12:17:59 · 187 阅读 · 0 评论 -
优化内存有哪些方法?
使用onMemoryLevel监听内存变化。原创 2024-10-30 12:17:06 · 151 阅读 · 0 评论 -
显示 want 和 隐式 want 的区别?
显式Want:在启动目标应用组件时,调用方传入的want参数中指定了abilityName和bundleName,称为显式Want。 显式Want通常用于应用内组件启动,通过在Want对象内指定本应用Bundle名称信息(bundleName)和abilityName来启动应用内目标组件。当有明确处理请求的对象时,显式Want是一种简单有效的启动目标应用组件的方式。 例如:打开其他窗口 隐式Want:在启动目标应用组件时,调用方传入的want参数中未指定abilityName,称为隐式Want。 当需要处原创 2024-10-30 12:14:31 · 290 阅读 · 0 评论 -
如何启动一个 ability?
通过 context 对象的 startAbility 方法。原创 2024-10-30 12:13:52 · 252 阅读 · 0 评论 -
鸿蒙常用的装饰器有哪些?
@State 定义状态,当前组件能使用 @Prop 父子组件通信(特点:子组件数据不能修改) @Link 父子组件通信(特点:子组件数据可以修改) @Observed 和 @ObjectLink 父子组件通信(特点:嵌套第二层数据修改可以达到响应式,之前方案不行) @Provide 和 @Consume 祖孙组件通信 @Builder 和 @BuilderParam 父子组件通信,通信组件数据 @Watch 监视数据的变化(第一次不会触发)原创 2024-10-30 12:13:13 · 149 阅读 · 0 评论 -
hap、har、hsp三者的区别?
。原创 2024-10-30 12:12:35 · 372 阅读 · 0 评论 -
H5如何与HarmonyOS应用(webView)进行通信?
使用Web组件将应用侧代码注册到前端页面中,注册完成之后,前端页面中使用注册的对象名称就可以调用应用侧的函数,实现在前端页面中调用应用侧方法。注册应用侧代码有两种方式,一种在Web组件初始化调用,使用。方法异步调用前端页面的JavaScript相关函数,并通过Promise方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。另外一种在Web组件初始化完成后调用,使用。原创 2024-10-30 12:06:23 · 220 阅读 · 0 评论 -
UIAbility组件启动模式
的启动模式是指UIAbility实例在启动时的不同呈现状态。原创 2024-10-30 12:04:27 · 802 阅读 · 0 评论 -
UIAbility的生命周期有哪些?
UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。原创 2024-10-30 11:58:47 · 1123 阅读 · 0 评论 -
ForEach和LazyForEach的区别?
ForEach和LazyForEach都是用于渲染列表的装饰器,它们的区别在于:原创 2024-10-30 11:52:06 · 226 阅读 · 0 评论 -
@Prop和@ObjectLink装饰器有什么区别?
【代码】@Prop和@ObjectLink装饰器有什么区别?原创 2024-10-30 11:51:04 · 295 阅读 · 0 评论 -
@Provider和@Consumer vs @Provide和@Consume的区别?
原创 2024-10-30 11:50:11 · 150 阅读 · 0 评论 -
ArkTs是什么?
ArkTS是HarmonyOS优选的主力应用开发语言。保持了TypeScript的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。原创 2024-10-29 09:55:58 · 289 阅读 · 0 评论 -
如何获取屏幕的安全区域?
【代码】如何获取屏幕的安全区域?原创 2024-10-29 09:55:14 · 178 阅读 · 0 评论 -
如何实现应用的沉浸式模式?
沉浸式模式是指应用界面呈现出沉浸式的全屏模式,不留任何系统UI,用户只能看到应用内容。在沉浸式模式下,应用的UI元素会被覆盖,但系统状态栏、导航栏、键盘等系统UI依然可见。原创 2024-10-29 09:54:27 · 385 阅读 · 0 评论 -
Router.replace()方法的作用是什么?和Router.pushUrl()方法有什么区别?
Router.replace()方法用于替换当前路由,并将目标路由压入栈顶。与Router.pushUrl()方法不同,Router.replace()方法不会保留当前路由,而是直接替换掉当前路由。原创 2024-10-29 09:53:48 · 172 阅读 · 0 评论 -
LazyForEach的工作原理是什么
LazyForEach 的工作原理通常是基于用户的滚动位置来动态地创建和销毁列表项的组件实例。当用户滚动到列表的某个部分时,LazyForEach 会加载并渲染那些即将进入视图的列表项,同时可能会卸载那些滚出视图的列表项,以节省内存和计算资源。原创 2024-10-29 09:53:03 · 138 阅读 · 0 评论 -
LazyForEach是什么?
LazyForEach 是一个用于高效渲染列表的组件或功能,它允许开发者在用户滚动列表时才加载和渲染列表项,而不是一次性渲染整个列表。这种按需渲染的方式可以显著提高应用的性能,特别是在处理大量数据时。原创 2024-10-29 09:52:25 · 131 阅读 · 0 评论 -
HarmonyOS中的权限管理模型是怎样的?
权限声明:应用在config.json中声明所需的权限。 权限申请:在应用运行时,根据需要动态申请权限。 权限检查:在执行敏感操作前,检查是否已获得相应权限。 权限分组:系统将权限分为不同的组,便于管理和申请。原创 2024-10-29 09:51:39 · 142 阅读 · 0 评论 -
如何优化应用的性能?
内存管理:合理分配和释放内存,避免内存泄漏。 后台优化:合理使用后台服务和定时任务,避免不必要的后台运行。 UI渲染优化:使用轻量级的UI组件,减少布局复杂度,优化渲染性能。 资源优化:压缩图片和媒体资源,减少应用的体积和加载时间。原创 2024-10-29 09:50:52 · 313 阅读 · 0 评论 -
分布式数据库是如何实现数据同步的?
分布式事务:确保跨设备的数据库操作具有原子性、一致性、隔离性和持久性。 数据版本控制:为数据添加版本号,确保同步时数据的一致性。 冲突解决策略:定义冲突解决策略,处理并发操作导致的数据冲突。 网络状态感知:根据网络状态智能同步数据,优化同步效率和流量使用。原创 2024-10-29 09:50:08 · 144 阅读 · 0 评论 -
如何实现应用的多语言支持?
资源文件:为每种语言创建资源文件(如string.json),并在里面定义所有可本地化的字符串。 资源引用:在代码中使用资源ID引用字符串,而不是硬编码文本。 系统设置:应用会自动根据系统设置的语言环境加载相应的资源文件。 动态切换:支持在应用运行时切换语言,并动态更新UI。原创 2024-10-29 09:49:25 · 165 阅读 · 0 评论 -
Ability是如何与用户交互的?
界面显示:Ability可以包含一个或多个AbilitySlice,用于显示UI界面并与用户进行交互。 事件处理:Ability可以处理用户的输入事件,如触摸、按键等。 数据绑定:Ability可以使用数据绑定机制,将UI组件与数据模型绑定,实现数据的自动更新和交互。 通知:Ability可以通过系统通知机制向用户发送通知,即使应用不在前台运行。原创 2024-10-29 09:48:54 · 125 阅读 · 0 评论 -
跨设备通信的方式有哪些?
HarmonyOS支持多种跨设备通信方式,包括:原创 2024-10-29 09:48:15 · 189 阅读 · 0 评论 -
ArkUI框架有哪些特点?
ArkUI框架是鸿蒙(HarmonyOS)中的一个重要组件框架,具有以下几个特点:原创 2024-10-29 09:47:31 · 305 阅读 · 0 评论 -
什么是Ability?
此外,Ability是Ability模块的基类,提供系统配置更新回调和系统内存调整回调。Ability的继承关系包括UIAbility和ExtensionAbility等具体类.总之,Ability是鸿蒙系统中用于管理应用能力的核心组件,通过不同类型的Ability可以实现不同的功能需求。是应用/服务所具备的能力的抽象,一个Module可以包含一个或多个。生命周期、上下文环境等调用管理的能力,包括。创建、销毁、转储客户端信息等。原创 2024-10-29 09:46:53 · 365 阅读 · 0 评论 -
HarmonyOS与Android和iOS有什么区别?
HarmonyOS 是华为开发的一个开源、分布式的操作系统。它设计用于多种设备,包括智能手机、平板电脑、智能电视和物联网设备。链接:https://juejin.cn/post/7406173972739112987。商业转载请联系作者获得授权,非商业转载请注明出处。作者:前端转全栈ing。原创 2024-10-29 09:46:19 · 266 阅读 · 0 评论 -
Navigation组件跳转和router跳转有什么区别?
则提供了更基础的路由跳转功能,适合简单的路由需求。开发者可以根据应用的具体需求和设计选择最合适的路由方案。组件在功能上更具丰富性和灵活性,特别是在处理复杂的导航结构、动效和路由管理方面。原创 2024-10-28 18:24:17 · 391 阅读 · 0 评论 -
如何实现页面间的通信?
【代码】如何实现页面间的通信?原创 2024-10-28 18:23:14 · 227 阅读 · 0 评论 -
兄弟组件如何通信?
通过公共父组件传递 如果两个组件是同一个父组件的子组件,可以通过父组件来传递数据或事件。父组件可以作为中介,将一个子组件的数据或事件传递给另一个子组件。 使用全局状态管理 使用全局状态管理(如 AppStorage、LocalStorage)来存储共享数据。兄弟组件可以独立地读取和更新这个全局状态,从而实现通信原创 2024-10-28 18:20:48 · 160 阅读 · 0 评论 -
父子组件如何通信?
【代码】父子组件如何通信?原创 2024-10-28 18:20:12 · 192 阅读 · 0 评论 -
LocalStorage在应用重启后数据会消失吗?
会,因为LocalStorage 是一种用于页面或组件级别的数据存储方式,它允许开发者在页面或组件的生命周期内存储和检索数据。LocalStorage 的数据存储在内存中,因此它的读写速度相对较快。但是,当应用重启后,LocalStorage 中的数据会丢失。原创 2024-10-28 18:19:31 · 362 阅读 · 0 评论 -
如何进行全局状态管理?
【代码】如何进行全局状态管理?原创 2024-10-28 18:18:50 · 275 阅读 · 0 评论 -
如何进行数据持久化?
用户首选项(Preferences):这是一种轻量级的配置数据持久化方式,适用于保存应用配置信息、用户偏好设置等。它通过文本形式保存数据,并且数据会全量加载到内存中,因此访问速度快,但不适合存储大量数据。 键值型数据库(KV-Store):适用于存储结构简单的数据,如商品名称和价格、员工工号和出勤状态等。键值型数据库以“键值对”的形式组织数据,适合数据关系不复杂的场景。 关系型数据库(RelationalStore):基于SQLite,适用于存储包含复杂关系的数据,如学生信息、雇员信息等。关系型数据库提原创 2024-10-28 18:18:14 · 238 阅读 · 0 评论 -
页面和自定义组件生命周期有哪些?
【代码】页面和自定义组件生命周期有哪些?原创 2024-10-28 18:17:41 · 222 阅读 · 0 评论