
harmonyOS
文章平均质量分 93
普通网友
这个作者很懒,什么都没留下…
展开
-
HarmonyOS 应用开发之页面栈及任务链
单个UIAbility组件可以实现多个页面,并在多个页面之间跳转,这种UIAbility组件内部的页面跳转关系称为“页面栈”,由ArkUI框架统一管理,如下图中的UIAbility1的Page1->Page2->Page3和UIAbility2的PageA->PageB->PageC。原创 2024-08-28 14:54:41 · 777 阅读 · 0 评论 -
HarmonyOS 应用开发之任务(Mission)与启动模式
如前文所述,一个UIAbility实例对应一个任务。UIAbility实例个数与UIAbility配置的启动模式有关。在FA模型下,通过config.json配置文件中的“launchType”属性配置;在Stage模型下,通过 module.json5配置文件 中的“launchType”属性配置。任务与singleton模式任务与multiton模式任务与specified模式每个UIAbility实例都对应了一个最近任务列表中看到的Mission(任务)。原创 2024-08-28 14:09:26 · 556 阅读 · 0 评论 -
HarmonyOS 应用开发之任务(Mission)管理场景
任务的管理由系统应用(如桌面应用)负责,三方应用无法管理任务。用户通过最近任务列表进行任务的相关交互。当创建任务后,用户可以对最近任务列表进行如下操作原创 2024-08-28 13:44:55 · 1109 阅读 · 0 评论 -
HarmonyOS 应用开发之线程模型
Stage模型下的线程主要有如下三类:EventHub 提供了线程内发送和处理事件的能力,包括对事件订阅、取消订阅、触发事件等。以UIAbility组件与UI之间的数据同步为例,具体使用方法可以参考 UIAbility组件与UI的数据同步。总是有很多小伙伴反馈说:鸿蒙开发不知道学习哪些技术?不知道需要重点掌握哪些鸿蒙应用开发知识点? 为了解决大家这些学习烦恼。在这准备了一份很实用的鸿蒙(HarmonyOS NEXT)学习路线与学习文档给大家用来跟着学习。针对一些列因素,整理了一套纯血版鸿蒙(HarmonyO原创 2024-08-27 21:18:01 · 742 阅读 · 0 评论 -
HarmonyOS 应用开发之进程模型
系统的进程模型如下图所示。进程模型示意图hdc shellps -ef在上述模型基础上,对于系统应用可以通过申请多进程权限(如下图所示),为指定HAP配置一个自定义进程名,该HAP中的UIAbility、DataShareExtensionAbility、ServiceExtensionAbility就会运行在自定义进程中。不同的HAP可以通过配置不同的进程名运行在不同进程中。多进程示意图:多用于一对多的通信场景,公共事件发布者可能存在多个订阅者同时接收事件。为了解决大家这些学习烦恼。原创 2024-08-27 20:32:04 · 618 阅读 · 0 评论 -
勇闯鸿蒙开发岗位面试之旅
通过这次鸿蒙开发岗位的面试,我深刻体会到了鸿蒙操作系统的发展潜力和对人才的需求。原创 2024-08-27 17:48:15 · 640 阅读 · 0 评论 -
HarmonyOS 订阅系统环境变量的变化
系统环境变量是指:在应用程序运行期间,终端设备的系统设置(例如系统的语言环境、屏幕方向等)发生变化。原创 2024-08-27 16:29:04 · 704 阅读 · 0 评论 -
HarmonyOS 应用开发之多端协同
在发起端设置目标组件参数,调用startAbilityForResult()接口启动目标端UIAbility,异步回调中的data用于接收目标端UIAbility停止自身后返回给调用方UIAbility的信息。在设备A上通过应用提供的启动按钮,启动设备B上指定的UIAbility,当设备B上的UIAbility退出后,会将返回值发回设备A上的发起端应用。在设备A上通过发起端应用提供的启动按钮,启动设备B上指定的UIAbility与ServiceExtensionAbility。原创 2024-08-27 15:58:38 · 1089 阅读 · 0 评论 -
HarmonyOS 应用开发之跨端迁移保姆级教程
在用户使用设备的过程中,当使用情境发生变化时(例如从室内走到户外或者周围有更适合的设备等),之前使用的设备可能已经不适合继续当前的任务,此时,用户可以选择新的设备来继续当前的任务,原设备可按需决定是否退出任务,这个就是跨端迁移的场景。常见的跨端迁移场景实例:在平板上播放的视频,迁移到智慧屏继续播放,从而获得更佳的观看体验;平板上的视频应用退出。在应用开发层面,跨端迁移指在A端运行的UIAbility迁移到B端上,完成迁移后,B端UIAbility继续任务,而A端UIAbility可按需决定是否退出。原创 2024-08-27 15:20:59 · 1134 阅读 · 0 评论 -
HarmonyOS 应用组件跨设备交互(流转)
随着全场景多设备的生活方式不断深入,用户拥有的设备越来越多,不同设备都能在适合的场景下提供良好的体验,例如手表可以提供及时的信息查看能力,电视可以带来沉浸的观影体验。但是,每个设备也有使用场景的局限,例如在电视上输入文本相对移动设备来说是非常糟糕的体验。当多个设备通过分布式操作系统能够相互感知、进而整合成一个超级终端时,设备与设备之间就可以取长补短、相互帮助,为用户提供更加自然流畅的分布式体验。跨多设备的分布式操作可以统称为流转;根据使用场景的不同,流转又分为 跨端迁移 两种具体场景。原创 2024-08-27 14:41:50 · 1512 阅读 · 0 评论 -
HarmonyOS 应用开发之组件启动规则(Stage模型)
启动组件是指一切启动或连接应用组件的行为:启动UIAbility、ServiceExtensionAbility、DataShareExtensionAbility,如使用startAbility()、startServiceExtensionAbility()、startAbilityByCall()等相关接口。原创 2024-08-27 14:12:37 · 949 阅读 · 0 评论 -
HarmonyOS 应用开发之使用隐式Want打开网址
以打开浏览器为例,假设设备上安装了一个或多个浏览器应用。为了使浏览器应用能够正常工作,需要在 module.json5配置文件 进行配置,具体配置如下:原创 2024-08-27 13:46:36 · 895 阅读 · 0 评论 -
HarmonyOS 应用开发之显式Want与隐式Want匹配规则
在启动目标应用组件时,会通过显式 Want 或者隐式 Want 进行目标应用组件的匹配,这里说的匹配规则就是调用方传入的 want 参数中设置的参数如何与目标应用组件声明的配置文件进行匹配。原创 2024-08-26 22:04:34 · 836 阅读 · 0 评论 -
HarmonyOS 应用开发之Want的定义与用途
Want 是一种对象,用于在应用组件之间传递信息。原创 2024-08-26 21:02:13 · 707 阅读 · 0 评论 -
HarmonyOS 应用开发之应用上下文Context
Context 是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area(文件分区)等,以及应用的一些基本方法,例如createBundleContext()、getApplicationContext()等。UIAbility组件和各种ExtensionAbility派生类组件都有各自不同的Context类。原创 2024-08-26 20:34:26 · 909 阅读 · 0 评论 -
HarmonyOS 应用开发之AbilityStage组件容器
AbilityStage是一个 Module 级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。原创 2024-08-26 17:38:22 · 841 阅读 · 0 评论 -
HarmonyOS 应用开发之ExtensionAbility组件
ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等)提供的应用组件,以便满足更多的使用场景。原创 2024-08-26 16:44:22 · 1257 阅读 · 0 评论 -
HarmonyOS 应用开发之UIAbility组件间交互(设备内)
一个UIAbility可以对应多个页面,在不同的场景下启动该UIAbility时需要展示不同的页面,例如从一个UIAbility的页面中跳转到另外一个UIAbility时,希望启动目标UIAbility的指定页面。UIAbility的启动分为两种情况:UIAbility冷启动和UIAbility热启动。UIAbility冷启动:指的是UIAbility实例处于完全关闭状态下被启动,这需要完整地加载和初始化UIAbility实例的代码、资源等。原创 2024-08-26 16:14:08 · 886 阅读 · 0 评论 -
HarmonyOS 应用开发之UIAbility组件与UI的数据同步
在基类Context中,提供了EventHub对象,可用于在UIAbility组件实例内通信。使用EventHub实现UIAbility与UI之间的数据通信需要先获取EventHub对象,本章节将以此为例进行说明。原创 2024-08-26 15:20:52 · 761 阅读 · 0 评论 -
HarmonyOS 应用开发之UIAbility组件基本用法
应用中的UIAbility在启动过程中,需要指定启动页面,否则应用启动后会因为没有默认加载页面而导致白屏。可以在UIAbility的onWindowStageCreate()生命周期回调中,通过 WindowStage 对象的loadContent()方法设置启动页面。原创 2024-08-26 14:44:00 · 794 阅读 · 0 评论 -
OpenHarmony中的LLDB高性能调试器
LLDB(Low Lever Debugger)是新一代高性能调试器。详细说明参考 LLDB官方文档 。当前OpenHarmony中的LLDB工具是在 llvm15.0.4 基础上适配演进出来的工具,是HUAWEI DevEco Studio工具中默认的调试器,支持调试C和C++应用。原创 2024-08-25 21:16:02 · 873 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之NetConnection开发
## 场景介绍NetConnection模块提供了常用网络信息查询的能力。## 接口说明NetConnection常用接口如下表所示,| 接口名 | 描述 || --- | --- || OH_NetConn_HasDefaultNet(int32_t *hasDefaultNet) | 检查默认数据网络是否被激活,判断设备是否有网络连接,以便在应用程序中采取相应的措施。 || OH_NetConn_GetDefaultNet(NetConn_NetHandle *netHandle)原创 2024-08-25 20:44:02 · 932 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之NativeBundle开发
开发者可以通过本指导了解在OpenHarmony应用中,如何使用Native Bundle接口获取应用自身相关信息。原创 2024-08-25 20:08:34 · 959 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之USB DDK开发
USB DDK(USB Driver Develop Kit)是为开发者提供的USB驱动程序开发套件,支持开发者基于用户态,在应用层开发USB设备驱动。提供了一系列主机侧访问设备的接口,包括主机侧打开和关闭接口、管道同步异步读写通信、控制传输、中断传输等。原创 2024-08-25 19:46:53 · 878 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之purgeable内存管理机制
OpenHarmony提供Purgeable Memory内存管理机制,开发者可以使用相关接口创建PurgeableMemory对象,从而管理purgeable内存。开发者可以通过本指导了解在OpenHarmony应用中,如何使用Native层相关接口操作purgeable内存。功能包括purgeable内存的申请、释放等。通过该机制提供的NAPI接口申请管理PurgeableMemory对象,并将数据内容写入该对象。使用完毕后释放。原创 2024-08-24 22:09:24 · 971 阅读 · 0 评论 -
鸿蒙HarmonyOS APP开发之FFRT 开发
Function Flow编程模型是一种基于任务和数据驱动的并发编程模型,允许开发者通过任务及其依赖关系描述的方式进行应用开发。FFRT(Function Flow运行时)是支持Function Flow编程模型的软件运行时库,用于调度执行开发者基于Function Flow编程模型开发的应用。通过Function Flow编程模型和FFRT,开发者可专注于应用功能开发,由FFRT在运行时根据任务依赖状态和可用执行资源自动并发调度和执行任务。原创 2024-08-24 21:13:20 · 1475 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之Rawfile开发
开发者可以通过本指导了解在OpenHarmony应用中,如何使用Native Rawfile接口操作Rawfile目录和文件。功能包括文件列表遍历、文件打开、搜索、读取和关闭Rawfile。原创 2024-08-24 20:45:00 · 1270 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之Node-API常见问题
若JS侧导入模块的形式为: import xxx from ‘@ohos.yyy.zzz’,则该so将在/system/lib/module/yyy中找libzzz.z.so或libzzz_napi.z.so,若so不存在或名称无法对应,则报错日志中会出现dlopen相关日志。发生异常时,可以选择走异常分支, 确保不再走多余的Native逻辑 ,直接返回到ArkTS层。Node-API接口正常执行后,会返回一个napi_ok的状态枚举值,若napi接口返回值不为napi_ok,可从以下几个方面进行排查。原创 2024-08-24 20:08:42 · 695 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之使用扩展的Node-API接口在异步线程中运行和停止事件循环
开发者在自己创建的ArkTS运行环境中调用异步的ArkTS接口时,可以通过使用Node-API中的扩展接口napi_run_event_loop和napi_stop_event_loop来运行和停止ArkTS实例中的事件循环。原创 2024-08-24 18:53:04 · 1021 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之使用NAPI接口在主线程中进行模块加载
Node-API中的napi_load_module接口的功能是在主线程中进行模块的加载,当模块加载出来之后,可以使用函 napi_get_property获取模块导出的变量,也可以使用napi_get_named_property获取模块导出的函数,目前支持以下场景:原创 2024-08-23 22:02:02 · 701 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之使用Node-API接口创建ArkTs运行时环境
开发者通过pthread_create创建新线程后,可以通过napi_create_ark_runtime来创建一个新的ArkTs基础运行时环境,并通过该运行时环境加载ArkTs模块,目前仅支持在ArkTs模块中使用console接口打印日志,使用timer定时器功能。当使用结束后,开发者需要通过napi_destroy_ark_runtime来销毁所创建的ArkTs基础运行时环境。原创 2024-08-23 21:31:17 · 963 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之在非ArkTS线程中回调ArkTS接口
ArkTS是单线程语言,通过NAPI接口对ArkTS对象的所有操作都须保证在同一个ArkTS线程上进行。本示例将介绍通过napi_get_uv_event_loop和uv_queue_work实现在非ArkTS线程中通过NAPI接口回调ArkTS函数。原创 2024-08-23 21:03:59 · 556 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之Native与ArkTS对象绑定
通过napi_wrap将ArkTS对象与Native的C++对象绑定,后续操作时再通过napi_unwrap将ArkTS对象绑定的C++对象取出,并对其进行操作。原创 2024-08-23 20:20:31 · 881 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之使用Node-API接口进行线程
napi_create_threadsafe_function是Node-API接口之一,用于创建一个线程安全的JavaScript函数。主要用于在多个线程之间共享和调用,而不会出现竞争条件或死锁。例如以下场景:原创 2024-08-23 17:39:35 · 690 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之使用Node-API接口进行异步任务开发
napi_create_async_work是Node-API接口之一,用于创建一个异步工作对象。可以在需要执行耗时操作的场景中使用,以避免阻塞主线程,确保应用程序的性能和响应性能。例如以下场景:文件操作:读取大型文件或执行复杂的文件操作时,可以使用异步工作对象来避免阻塞主线程。网络请求:当需要进行网络请求并等待响应时,使用异步工作对象可以确保主线程不被阻塞,从而提高应用程序的响应性能。原创 2024-08-23 17:08:02 · 814 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之使用Node-API实现跨语言交互开发流程
使用Node-API实现跨语言交互,首先需要按照Node-API的机制实现模块的注册和加载等相关动作。:实现C++方法的调用。代码比较简单,import一个对应的so库后,即可调用C++方法。:.cpp文件,实现模块的注册。需要提供注册lib库的名称,并在注册回调方法中定义接口的映射关系,即Native方法及对应的JS/ArkTS接口名称等。此处以在ArkTS/JS侧实现add()接口、在Native侧实现Add()接口,从而实现跨语言交互为例,呈现使用Node-API进行跨语言交互的流程。原创 2024-08-23 16:21:49 · 858 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之Node-API开发
当传入napi_get_cb_info的argv不为nullptr时,argv的长度必须大于等于传入argc声明的大小。当argv不为nullptr时,napi_get_cb_info会根据argc声明的数量将JS实际传入的参数写入argv。如果argc小于等于实际JS传入参数的数量,该接口仅会将声明的argc数量的参数写入argv;而当argc大于实际参数数量时,该接口会在argv的尾部填充undefined。原创 2024-08-23 15:41:01 · 904 阅读 · 0 评论 -
鸿蒙(HarmonyOS)应用开发之Node-API支持的数据类型和接口
接口功能说明创建一个异步资源上下文环境(暂不支持与async_hook相关能力)。在异步资源上下文环境中回调JS函数(暂不支持与async_hook相关能力)。销毁先前创建的异步资源上下文环境(暂不支持与async_hook相关能力)。创建一个回调作用域(暂不支持与async_hook相关能力)。关闭先前创建的回调作用域(暂不支持与async_hook相关能力)。原创 2024-08-23 15:10:16 · 986 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之Node-API简介
OpenHarmony Node-API是基于Node.js 8.x LTS的 Node-API 规范扩展开发的机制,为开发者提供了ArkTS/JS与C/C++模块之间的交互能力。它提供了一组稳定的、跨平台的API,可以在不同的操作系统上使用。本文中如无特别说明,后续均使用Node-API指代OpenHarmony Node-API能力。OpenHarmony Node-API与Node.js 8.x LTS的Node-API规范的接口异同点,详见 Node-API参考。原创 2024-08-23 14:30:23 · 1001 阅读 · 0 评论 -
鸿蒙HarmonyOS应用开发之C/C++标准库机制
OpenHarmony NDK提供业界标准库 libc标准库、 C++标准库 ,本文用于介绍C/C++标准库在OpenHarmony中的机制,开发者了解这些机制有助于在NDK开发过程中避免相关问题。原创 2024-08-23 14:10:07 · 1160 阅读 · 0 评论