登录社区云,与社区用户共同成长
邀请您加入社区
摘要:本文介绍了Flutter开发中不可变对象状态管理的痛点及解决方案——copy_with_extension_gen库。该工具通过代码生成自动创建类型安全的copyWith方法,避免了手动编写大量重复代码的问题。文章详细解析了其核心原理(基于Extension Method)、基础配置与进阶用法(包括空值处理和字段忽略),并展示了在OpenHarmony应用开发中的实战应用场景(如复杂表单状态
也是C/C++库鸿蒙化的核心,该文件定义了:库的基础元信息、源码下载地址、交叉编译环境配置、编译构建逻辑、打包安装路径、测试准备、环境清理等所有核心流程。的定义,所有适配工作均围绕「固定6个文件」展开,无任何额外开发工作,所有C/C++库的适配流程、文件结构完全一致。这是本次指南的核心内容,鸿蒙的底层能力、三方库生态均依赖C/C++库的支撑,官方对C/C++库的鸿蒙化适配做了。,统一采用「交叉编译
本文摘要: 介绍了一种利用TypeScript生成mavlink消息并发送的实现方法。通过mavlink生成工具直接生成TS代码,避免了手动创建和编码每条消息的繁琐过程。作者展示了如何创建自定义降落消息(CommandLong),通过LinkMsgManager静态方法构造消息对象。在NDK层实现了mavLinkObject2buffer函数,将TS对象转换为二进制数据包,并使用mavlink_m
本文详细介绍了在鸿蒙开发中如何通过C代码调用ArkTS类的方法。首先需要创建NDK工程和ArkTS类并暴露SayHello方法,然后在C代码中实现对该方法的调用及对外暴露。关键步骤包括:在.cpp文件中编写调用逻辑、在Index.d.ts中导出方法、在ArkTS中进行测试验证,尤其是必须在build-profile.json5中配置ArkTS导出类。文章还提供了相关代码示例和参考链接,帮助开发者解
FFRT框架支持两种任务依赖构建方式:任务依赖和数据依赖。任务依赖通过任务句柄建立明确执行顺序,适用于流程控制场景;数据依赖通过数据签名建立生产者-消费者关系,适用于数据驱动的并行计算。框架自动处理三种数据依赖关系:读写、写读和写写依赖。示例展示了流媒体视频处理的任务依赖编排和斐波那契数列的数据依赖计算,体现了FFRT在动态构建任务依赖图和高并行度计算方面的优势。
本文介绍了在鸿蒙NDK开发中如何通过C语言调用ArkTS方法。关键使用napi_call_function函数实现C与ArkTS的交互,详细说明了函数参数及实现步骤:获取参数、验证参数类型、创建参数数组后调用JS函数。提供了完整的C代码示例,包括模块初始化和错误处理,并展示了如何在JS层调用该原生方法。最后提到需要将C接口暴露给TS层,为开发者解决了C/ArkTS互调问题。
本文系统性地介绍了操作系统中断机制的核心概念,包括中断源、中断控制器和CPU的协同工作,以及中断处理流程中的关键环节。通过生动的"海公公"比喻,阐释了中断控制器作为CPU与外设之间仲裁者的重要作用。文章详细讲解了中断的硬件架构、中断源分类(外部/内部)、中断类型(PPI/SGI/SPI)以及中断处理过程中的优先级管理、中断请求触发机制等核心概念。最后提及中断向量表作为中断服务程
鸿蒙系统调用全流程解析:从用户态到内核态的七段代码追踪 本文通过一张流程图和七段代码详细剖析了鸿蒙操作系统从用户态到内核态的系统调用全过程。关键环节包括: 应用程序通过mq_open发起系统调用 库函数将调用号存入R7寄存器,参数存入R0-R3 SVC指令触发模式切换至内核态 汇编处理程序_osExceptSwiHdl保存用户现场 内核根据调用号执行注册函数SysMqOpen 处理完成后恢复用户现
鸿蒙的HAP包中的C调用HSP包中的C
本文介绍了鸿蒙系统(HarmonyOS)中器件驱动的移植方法,主要包括LCD、触摸屏(TP)和WLAN三种设备的驱动开发流程。 对于LCD驱动移植,需要在panel目录中创建驱动文件,通过RegisterPanel接口注册模型实例,并在device_info.hcs配置文件中添加相应模块信息。 触摸屏驱动移植需要在touchscreen目录创建驱动文件,实现ChipDevice模型的初始化、检测、
本文介绍了在鸿蒙Niobe Wifi IoT开发板上使用CMSIS 2.0接口进行定时器开发的方法。文章首先分析了osTimerNew()和osTimerStart()两个核心API的功能和使用要点,然后详细讲解了软件设计思路:通过创建两个周期性定时器(1秒和3秒间隔),分别触发对应的回调函数打印日志。编译调试部分说明了如何修改BUILD.gn文件将示例代码加入编译,最后展示了运行结果:定时器1每
FFRT串行队列基于协程调度模型,提供高效消息队列功能,支持异步通信、流量削峰等场景。主要功能包括队列创建销毁、任务延迟、串行调度、任务取消/等待/优先级设置等。通过异步日志系统示例展示了FFRT的使用方式:主线程提交日志任务到队列,后台线程处理写入文件操作,既保证日志顺序性又避免阻塞主线程。关键接口包括ffrt_queue_create、ffrt_queue_destroy和ffrt_queue
这篇文章介绍了鸿蒙全栈开发中的GPIO接口使用指南。主要内容包括: GPIO接口概述:定义了操作GPIO管脚的标准方法集合,如设置方向、读写电平、中断配置等。 接口分类说明:详细列出了初始化、方向配置、读写操作、中断配置等各类接口的功能描述。 使用指导: 提供了GPIO使用流程图 强调需要结合开发板电路图确定GPIO管脚号 包含开发板电路原理图示例 注意事项: 方向暂不支持高阻态 电平值可为低电平
FFRT并发队列通过设置任务优先级和队列并发度实现高效并行处理。银行服务系统示例展示了VIP用户优先处理机制,通过设置并发度控制窗口数量、优先级区分用户等级。主要接口包括队列创建/销毁、任务提交/取消/等待等。使用需注意属性初始化/释放、合理设置并发度等约束。该机制有效平衡系统资源利用与任务优先级管理,适合需要高效并发的应用场景。
本文包含两部分内容:鸿蒙开发系列文章推荐和内核技术要点解析。 鸿蒙开发系列文章探讨了移动开发行业前景、鸿蒙应用与系统开发比较、嵌入式开发转型、大前端开发者转鸿蒙等问题,并提供了鸿蒙全栈学习笔记。 内核技术解析重点讲述了: 任务(线程)是CPU执行指令的基本单位,内核通过任务调度管理CPU资源 多线程的实现机制,包括main函数和新线程的入口处理 定时器是通过高优先级系统任务实现的 Percpu结构
鸿蒙内核互斥锁机制解析 本文深入剖析了鸿蒙内核中的互斥锁实现机制。互斥锁主要用于解决线程间共享内存竞争问题,与自旋锁形成互补。鸿蒙默认采用递归锁设计,允许同一线程多次加锁。文章详细解读了互斥锁的数据结构、初始化流程和三种申请模式(无阻塞、永久阻塞、定时阻塞),并重点分析了核心函数OsMuxPendOp的实现逻辑。当高优先级任务等待低优先级任务释放锁时,系统会临时提升低优先级任务的优先级,确保锁能及
本文介绍了在HarmonyOS中发布自定义公共事件的方法。开发者可通过OH_CommonEvent_Publish和OH_CommonEvent_PublishWithInfo接口发布事件,并可选携带数据。开发步骤包括:引入头文件、添加动态链接库、创建公共事件属性对象(设置int/long/double/boolean/char等类型数据)、设置事件属性(如bundleName、permissio
本文通过拆解一个简单C程序的汇编代码,帮助读者理解鸿蒙内核汇编语言的基本原理。文章首先强调汇编语言的本质是数据搬运,主要发生在内存和寄存器之间。然后以square、fp和main三个函数为例,详细分析其对应的汇编指令执行过程,包括栈空间分配、参数传递、函数调用和循环控制等核心概念。通过对比C代码和汇编代码,展示了高级语言到机器指令的转换过程,为后续理解鸿蒙系统的6个核心汇编文件打下基础。文章指出,
本文介绍了如何取消订阅公共事件的操作步骤。首先需要引用相关头文件并在CMake脚本中添加动态链接库。然后通过调用OH_CommonEvent_UnSubscribe接口,传入订阅者对象即可完成退订操作。该方法适用于订阅者在完成业务需求后主动取消订阅的场景,执行后会返回操作结果码。开发者需注意正确引用所需的动态库和接口文件。
本文主要分析了鸿蒙设备认证模块中客户端接收PAKE协议end响应的处理流程。首先通过parse_pake_server_confirm函数解析响应消息负载,提取kcfData字段;然后receive_pake_end_response函数接收响应并验证消息有效性;最后parse_end_response_data函数完成验证对端proof数据并生成服务密钥的关键操作。整个流程涉及JSON解析、状态
本文介绍了鸿蒙(HarmonyOS)设备认证中PAKE协议启动过程的源码分析。重点剖析了start_pake函数启动PAKE模块的流程,包括参数检查、构建PAKE客户端对象等关键步骤。文章展示了如何通过build_object函数构建HiChain子对象,并深入解析了build_pake_client_object函数的具体实现,涉及PIN码验证、参数有效性检查等安全机制。该过程标志着协议状态从P
本文提供了丰富的鸿蒙开发学习资源,包含北向/南向开发知识点、职业发展分析和面试经验等多篇推文链接。在技术层面,重点分析了HiChain接收数据后的错误通知处理流程: 错误处理逻辑:接收数据时若出现错误,会进入inform阶段,通过encap_inform_message函数封装错误码到消息负载 消息构造机制:build_send_data_by_struct函数根据消息类型调用相应的构造方法,包括
本文分析了OpenHarmony设备认证模块中构建本端长期密钥对的build_self_lt_key_pair函数后续流程,重点解读了generate_service_id和sha256两个关键函数。generate_service_id通过SHA256哈希算法结合HC包名称和服务类型生成服务ID,而sha256函数则是对HKS哈希接口的封装实现。文章详细说明了函数参数、返回值、处理逻辑及关键数据
摘要:本文介绍了在弱网环境下通过Network Boost Kit实现网络连接平滑迁移的方法。系统提供HMS_NetworkBoost_RegisterHandoverChangeCallback和UnregisterHandoverChangeCallback接口,允许应用注册/注销网络切换回调。开发步骤包括:1)导入相关模块;2)添加依赖库;3)注册回调接收网络切换开始/完成事件;4)适时注销