- 博客(284)
- 收藏
- 关注
原创 鸿蒙中 线程间通信
鸿蒙系统提供多种线程实现方案:TaskPool适用于CPU密集型任务,Worker适合长时间后台任务。线程间通信支持消息传递、共享内存和事件通知三种方式,其中共享内存需配合Atomics API使用。开发时应根据任务类型选择方案:短时任务用TaskPool,耗时任务用Worker,高性能计算推荐Native线程+共享内存。注意事项包括正确处理Worker文件路径、优化通信性能(减少次数/使用共享内存)等。这些方案为不同场景提供了灵活的并发处理能力,同时确保线程安全和性能优化。
2025-07-14 06:30:00
412
原创 鸿蒙中 合理使用状态管理
鸿蒙状态管理实践精要 在鸿蒙应用开发中,状态管理需遵循四大原则:单一数据源、最小化状态、单向数据流和合理作用域。根据场景差异,推荐采用分层方案:组件内状态用@State,父子共享用@Prop/@Link,全局状态用AppStorage/@Provide,复杂逻辑用@Observed类。性能优化需注意三点:通过@ObjectLink实现精准刷新、分片管理大状态对象、异步处理批量更新。典型避坑点包括:对象属性修改需整体赋值、跨页面状态需持久化存储。开发时可参考决策树:先判断状态范围(组件/父子/全局),再选择对
2025-07-13 18:00:00
207
原创 鸿蒙中 ui的刷新机制
ArkUI框架采用响应式最小化刷新机制,仅当组件依赖的状态变量(@State、@Link等)变化时触发局部刷新。验证表明:1) 子组件不依赖的父状态变化不会触发子组件刷新;2) 共享状态变化仅影响依赖它的子组件。特殊情况下可通过this.update()强制全局刷新,或通过布局变化引发组件树重建。优化建议:使用@Observed/@ObjectLink精准绑定对象属性,隔离高频变化组件。该机制有效避免了不必要的全局渲染,提升了性能表现。
2025-07-13 06:30:00
171
原创 鸿蒙中 Tabs吸顶效果实现
摘要:鸿蒙开发中实现Tabs吸顶效果需结合Scroll容器与双Tabs布局。核心方案包括:1)用Scroll监听滚动位置;2)设置固定定位的吸顶Tabs(默认隐藏)和隐藏占位的占位Tabs;3)当滚动超过占位Tabs位置时显示吸顶组件。关键点在于动态计算滚动阈值、使用position:fixed固定位置,并通过zIndex确保层级。需注意版本兼容性和动态内容高度适配,可添加阴影增强视觉效果。该方案实现了Tabs滚动到顶部时自动固定,同时避免页面跳动。
2025-07-12 18:00:00
311
原创 鸿蒙开发中 数据库的种类
鸿蒙系统提供三种数据持久化方案:1)关系型数据库(RDB)适合结构化数据,支持SQL操作;2)键值数据库(KVStore)适用于简单配置存储;3)对象关系映射(ORM)简化复杂对象操作。RDB需创建表结构并执行CRUD操作,KVStore通过键值对快速存取,ORM通过注解定义实体类。开发时需注意:敏感数据加密、批量操作使用事务、正确处理ResultSet结果集。KVStore还支持跨设备同步,RDB需处理版本迁移。三种方式各有适用场景,开发者应根据数据类型和复杂度选择合适方案。
2025-07-12 06:30:00
423
原创 鸿蒙开发中 布局优化
《ArkUI布局优化指南》摘要:本文提供ArkUI布局优化全方案,包含核心目标(减少层级、降低复杂度、组件复用、按需加载)和六大实用技巧:1)选用Flex/Grid高效布局容器;2)clip裁剪避免过度绘制;3)@Reusable复用高频组件;4)LazyForEach动态加载长列表;5)条件渲染代替visibility减少DOM节点;6)离屏绘制与GPU加速技术。配套ArkUI Inspector性能分析工具和开发规范(如build()避免耗时操作),有效解决列表卡顿、内存泄漏等常见问题。150字
2025-07-11 18:00:00
787
原创 鸿蒙(HarmonyOS)中,设备间如何数据传递?
鸿蒙OS通过分布式软总线技术实现设备间高效数据传输,支持数据库同步、远程能力调用和文件共享三种方式。关键技术包括自动设备发现、统一数据管理及分布式任务调度,并内置安全加密和性能优化机制。典型应用场景如同账号设备间的配置同步、跨设备任务流转和大文件传输,开发者可通过标准化API快速集成,实现低延迟、高可靠的分布式协同体验。
2025-07-11 06:30:00
798
原创 OpenHarmony和HarmonyOS区别
摘要:OpenHarmony与HarmonyOS是华为推出的两款操作系统。OpenHarmony为开源项目,采用微内核设计,适用于物联网设备;HarmonyOS为商用闭源系统,基于OpenHarmony扩展并兼容安卓应用(4.0及之前版本),主要应用于华为消费级产品。两者技术同源但定位不同:OpenHarmony推动跨厂商合作,HarmonyOS聚焦华为生态。未来HarmonyOS NEXT将完全独立,与OpenHarmony共建纯鸿蒙生态。开发者需根据开源定制或商业应用需求选择相应系统。(150字)
2025-07-10 18:00:00
215
原创 鸿蒙中 文本的展开与折叠实现
鸿蒙(HarmonyOS)开发中实现文本展开/折叠功能的要点:1. 基础实现通过maxLines和textOverflow控制文本显示行数与省略号;2. 高级功能包括animateTo动画效果、TextMetrics动态计算高度;3. 优化方案含分页加载和测量结果缓存;4. 完整案例展示了带动画和渐变遮罩的交互效果;5. 常见问题涉及高度计算、动画性能等;6. 建议设计规范为折叠保留2-3行文本并使用明确按钮文案。该方案适用于新闻、评论等需要控制文本显示的场景。
2025-07-10 06:30:00
443
原创 鸿蒙中 组件复用方式有哪些?
鸿蒙开发组件复用指南 本文系统介绍了HarmonyOS开发中组件复用的核心方法。基础层面通过@Component创建自定义组件,配合@Prop/@Link实现数据传递;进阶复用采用@BuilderParam插槽机制和HAR静态包的逻辑混入(Mixins)。系统级复用包括ServiceAbility跨应用调用和UIAbility路由复用。文章详细解析了核心API(如@Styles样式复用)、工具函数封装,并给出表格组件实战案例。性能优化建议使用@Link减少深拷贝开销,推荐结合mediaQuery多设备适配。
2025-07-09 17:27:06
716
原创 鸿蒙开发中 如何屏幕适配
鸿蒙(HarmonyOS)屏幕适配方案摘要 鸿蒙开发通过自适应布局(Flex弹性容器、百分比尺寸)、响应式设计(断点媒体查询、栅格系统)和资源分级(按设备类型提供差异化资源)实现多端适配。核心方法包括: 弹性布局:使用Flex容器和layoutWeight分配空间; 响应式断点:通过mediaQuery监听屏幕宽度切换布局; 资源管理:在resources/目录下按设备(如mobile/、tablet/)配置专属资源; 单位适配:采用虚拟像素(vp)自动缩放。 开发流程需结合多尺寸设计稿、动态布局构建(@B
2025-07-09 06:30:00
791
原创 鸿蒙(HarmonyOS)的 “一次开发,多端部署”
摘要: 鸿蒙系统(HarmonyOS)通过“一次开发,多端部署”技术实现跨终端适配。其核心包括:1) 统一开发范式(ArkUI声明式开发、类Web开发);2) 分层工程结构(公共层、功能层、设备定制层);3) 自适应与响应式布局(占比/断点/资源分级);4) 分布式能力抽象(统一API、数据共享)。开发流程涵盖环境配置、工程分层、差异化适配(UI/功能兼容性检查)及多端编译部署。实战案例(如视频应用)展示了手机、平板等设备的布局优化与功能复用。常见问题(性能、UI偏差)可通过懒加载、多设备模拟器等解决,显著
2025-07-08 18:00:00
1134
原创 鸿蒙(HarmonyOS)开发中,模块化架构设计
鸿蒙系统模块化开发指南:通过HAP、HAR和HSP实现高效功能解耦 摘要: 鸿蒙系统采用三级模块化方案实现功能解耦与复用:HAP作为可独立运行的部署单元,HAR提供静态共享代码,HSP支持运行时动态共享。开发时需遵循高内聚低耦合原则,通过oh-package.json5配置依赖关系。典型实现包括HAR的公共工具类封装、HSP的跨模块服务共享,以及Want/emitter等通信机制。模块化设计可提升60%以上的代码复用率,减少30%安装包体积,并支持团队并行开发。关键点在于合理划分功能边界、规范依赖管理,并利
2025-07-08 06:30:00
719
原创 鸿蒙(HarmonyOS)开发中分层架构设计
《鸿蒙(HarmonyOS)分层架构开发指南》详细介绍了采用三层架构的设计方法:表现层负责UI渲染,领域层处理业务逻辑,数据层管理数据获取与存储。文章通过具体代码示例展示了各层实现,包括数据层使用关系型数据库和网络请求API,领域层封装业务用例,表现层应用状态管理和响应式布局。特别强调了鸿蒙特性适配,如多设备UI资源分级和跨设备服务调用。最后提供了项目结构示例和调试建议,帮助开发者构建可维护、可扩展的鸿蒙应用架构。
2025-07-07 17:59:56
648
原创 鸿蒙中Ability的合法性校验机制
鸿蒙系统(HarmonyOS)通过多层防护机制确保Ability调用的安全性,包括签名校验、权限控制、Want参数验证及进程隔离。签名校验验证目标应用的证书合法性;权限控制分为静态声明和动态申请;Want参数过滤确保精确匹配;底层系统服务与沙箱机制提供额外保护。开发者可通过调试工具验证签名和权限,常见错误包括签名不匹配(201)、权限不足(202)等。建议发布前全面测试、遵循最小权限原则,并对敏感数据加密。该机制有效保障了应用间的安全交互。
2025-07-07 06:30:00
756
原创 鸿蒙app打包流程解析
本文详细解析了鸿蒙应用打包流程,主要内容包括: 打包全流程分解为6个阶段:环境检查、资源处理、代码编译、HAP组装、签名对齐、多模块合并 关键资源处理过程:扫描适配设备资源、编译优化(webp转换/LZ4压缩)、生成二进制索引文件 代码编译环节:ArkTS转换为方舟字节码、C/C++编译为动态库 问题排查指南和高级配置方法,如资源过滤、分阶段打包等 各阶段使用的核心工具和输出路径说明 全文系统梳理了从源代码到最终HAP文件的完整转换过程,重点关注资源优化和模块化打包机制。
2025-07-06 18:31:46
828
原创 鸿蒙中 Ability的启动过程
摘要:鸿蒙系统Ability启动流程包括:1)应用层调用startAbility传递Want对象;2)NAPI桥接至Native层处理;3)通过IPC通信由AMS协调资源;4)目标Ability初始化并触发生命周期回调。系统支持Standard、Singleton等启动模式,通过module.json配置。跨进程启动涉及IAppMgr接口和AbilityThread等核心类,源码路径主要位于ability_runtime目录。启动方式包含显式(精确指定)和隐式(action匹配)两种。(150字)
2025-07-06 06:30:00
536
原创 鸿蒙中常见的内存泄漏有哪些?
鸿蒙开发中内存泄漏问题及解决方案摘要:常见内存泄漏包括未释放资源(如文件句柄)、全局变量引用、未取消事件监听等。排查工具有DevEco Studio内存分析器、HiLog日志和内存快照工具。预防措施包括:在生命周期回调中释放资源、使用WeakRef弱引用、封装资源管理类。高级技巧含压力测试、对象追踪和@Track装饰器标记可疑对象。典型问题如页面返回内存未释放需检查事件监听清理,内存持续增长应排查定时器,频繁GC则建议使用对象池优化。
2025-07-05 18:00:00
1069
原创 鸿蒙开发中的锁机制
本文介绍了鸿蒙开发中的四种锁机制:1. 运行锁(RunningLock)用于保持系统唤醒,需声明权限;2. 文件锁控制文件并发访问,支持阻塞/非阻塞模式;3. 异步锁(AsyncLock)保护ArkTS共享容器;4. 线程同步锁(TaskPool/Worker)协调多线程任务。文章对比了各锁的特点,并提供了代码示例和开发建议,强调要控制锁粒度、避免死锁及进行性能监控。这些锁机制是保障鸿蒙多线程安全的核心工具,开发者需根据具体场景合理选用。
2025-07-05 06:30:00
439
原创 鸿蒙中 @kit.BasicServicesKit 工具包
摘要:鸿蒙系统(HarmonyOS)的@kit.BasicServicesKit基础服务工具包提供设备管理、错误处理、事件通信等核心功能。主要包含:1)DeviceInfo获取设备型号、系统版本;2)BusinessError标准化错误处理;3)Emitter实现事件通知;4)Pasteboard管理剪贴板;5)Capability检测系统能力。开发时需注意权限申请和性能优化,如高频事件使用节流控制。该工具包为鸿蒙应用开发提供了设备交互、错误处理和跨组件通信等基础支持。
2025-07-04 18:00:00
262
原创 鸿蒙开发 代码混淆加固
鸿蒙系统开发中的代码混淆加固技术通过重命名符号、控制流混淆和数据加密等手段保护应用安全。配置需在build-profile.json5中开启混淆,并指定规则文件路径,支持ArkTS、JS等文件类型。规则文件可自定义混淆范围和保留项,如保留关键类或方法。混淆后需验证效果,调试时可通过工具还原堆栈。高级场景需注意多模块规则合并和性能权衡,推荐使用ArkGuard等工具进行优化。合理配置混淆规则能有效提升应用安全性。
2025-07-04 06:30:00
746
原创 鸿蒙中 @Reusable实现组件复用
摘要:鸿蒙ArkUI框架的@Reusable装饰器用于优化组件复用性能,通过缓存组件实例减少重复创建开销。核心特点包括:1)标记可复用组件;2)通过aboutToReuse()方法处理复用时的初始化;3)适用于列表项和动态渲染场景。使用时需注意状态隔离和合理使用,避免简单组件的不必要复用。典型应用包括列表滚动优化和动态条件渲染,可显著提升应用性能。
2025-07-03 18:00:00
647
原创 鸿蒙 LazyForEach实现按需加载
摘要:鸿蒙系统中的IDataSource接口是数据源管理核心,为列表组件提供标准化数据访问和动态更新能力。主要功能包括:①数据抽象与UI解耦;②支持数据变化自动刷新;③结合LazyForEach优化性能。开发流程包括实现自定义数据源类、注册监听器、UI绑定等步骤,特别适合处理动态数据的长列表场景。该接口通过按需加载机制显著提升性能,优于直接数组绑定和@State管理方式。使用时需注意在页面销毁时取消监听,大数据集优先采用LazyForEach渲染。(148字)
2025-07-03 06:30:00
510
原创 鸿蒙中 错误日志和崩溃日志上报
鸿蒙系统提供了完善的错误日志上报机制:1. 通过errorManager捕获未处理异常,支持自定义回调;2. faultLogger记录Native崩溃日志;3. HiLog系统分类记录调试日志。建议实现全局异常捕获工具类,自动持久化日志并支持断网缓存。需配置READ_CRASH_LOG和INTERNET权限,注意敏感数据脱敏和HTTPS加密传输。系统还提供LTSViewer等可视化工具辅助日志分析。
2025-07-02 18:00:00
451
原创 鸿蒙中 手势解锁 PatternLock组件
摘要:鸿蒙HarmonyOS的PatternLock组件提供九宫格图案密码锁功能,支持用户通过连接圆点输入密码。组件包含核心属性配置(尺寸、颜色等)和事件回调(密码完成、点连接等),可通过控制器重置状态或验证结果。典型应用场景包括密码设置与验证流程,可结合Preferences持久化存储密码。新版本支持动态样式和多端适配,开发时需注意API版本兼容性(最低APIVersion9)。该组件适用于需要图形密码验证的移动应用场景。
2025-07-02 06:30:00
478
原创 鸿蒙Ability跳转:应用内与应用间跳转
本文介绍了HarmonyOS中Ability跳转的实现方法。主要分为应用内跳转(显式/隐式Want)和应用间跳转(系统/第三方应用),并详细说明了参数传递与接收方式。文章还提供了常见系统Ability跳转示例(如拨打电话、打开地图等),并强调了跳转时的注意事项:包括权限控制、错误处理、兼容性检查和返回结果获取等。通过代码示例展示了startAbility和startAbilityForResult的使用方法,为开发者实现Ability跳转提供了完整的技术指导。
2025-07-01 18:00:00
372
原创 鸿蒙中 组件开发并发布到三方仓库
本文详细介绍了OpenHarmony组件开发与发布的完整流程。首先从组件开发规范入手,说明如何在DevEco Studio中创建独立模块、编写组件代码和导出接口。接着讲解组件元信息配置方法,包括oh-package.json5配置和类型声明。随后重点介绍四种发布方式:OHPM中心仓(需审核)、NPM仓库、本地文件共享和私有OHPM仓库,并对比了各方式的适用场景和特点。最后强调了版本管理、文档编制等注意事项,以及持续集成等扩展功能。文章提供了从开发到发布的全流程技术指导。
2025-07-01 06:30:00
783
原创 鸿蒙 相册选择图片并上传功能实现
鸿蒙OS图片上传功能实现指南 摘要:在HarmonyOS开发中,通过相册选择图片并上传需结合文件选择器(Picker)和HTTP模块。流程包括:权限申请→相册选择→URI获取→格式转换→网络上传。关键代码步骤:1) 配置READ_MEDIA和INTERNET权限;2) 使用PhotoViewPicker选择图片;3) 通过fileIo将URI转为二进制数据;4) 用FormData封装后通过@ohos.net.http上传。优化点:处理URI权限问题、大文件分块上传、兼容不同URI格式。对比@ohos.re
2025-06-30 18:00:00
242
原创 鸿蒙@Trace 装饰器的深度监听
鸿蒙状态管理V2新增的@Trace装饰器实现了细粒度状态监听,与@ObservedV2配合使用可精准控制UI更新。@Trace主要特点包括:1)属性级监听,仅更新依赖变化的UI组件;2)支持嵌套对象和数组元素的深度监听;3)相比V1版本显著提升性能。使用时需将@Trace标记在@ObservedV2装饰的类属性上,避免与@State混用。典型应用场景包括表单数据、用户信息等需要响应式更新的对象属性,通过最小化渲染范围优化应用性能。
2025-06-30 06:30:00
573
原创 鸿蒙应用性能优化全面指南
本文系统介绍了鸿蒙应用性能优化的关键技术,涵盖八大核心方面:1)渲染优化:通过组件树扁平化、LazyForEach优化列表;2)内存管理:资源压缩、对象池复用;3)启动加速:任务拆分、分包加载;4)网络优化:请求合并、智能缓存及HTTP/2应用;5)线程管理:Worker线程与任务优先级调度;6)存储优化:数据库索引和分批文件IO;7)功耗控制:传感器采样间隔调节;8)性能监控:Trace跟踪和内存泄漏检测。这些方法通过减少资源消耗、提升执行效率来优化用户体验,开发者需结合场景选择合适策略并持续监控优化效果
2025-06-29 18:00:00
679
原创 鸿蒙开发中 分包加载
鸿蒙开发中的分包加载技术通过模块化拆分(EntryHAP、FeatureHAP、HSP等)优化应用性能,实现按需加载。核心包括模块配置(module.json5定义类型与加载策略)、动态加载流程(checkAbilityInstall/requestAbilityInstall)以及预加载优化。该技术可减少安装包体积(主模块≤2MB)、提升启动速度,并支持多设备适配。关键实现需注意模块拆分原则(功能独立、避免循环依赖)、资源共享机制(HSP动态库)及异常处理(超时中断、降级策略)。典型应用场景包括电商支付模
2025-06-29 06:30:00
1446
原创 鸿蒙Web组件与H5通信的高级方式
摘要:文章介绍了鸿蒙系统中Web组件与H5页面通过postMessage实现通信的方法。主要内容包括:1)基本通信流程,推荐使用消息端口实现;2)双向通信实现方案,包含端口建立和消息监听;3)高级应用场景如传感器数据实时传输;4)安全注意事项,包括来源验证和域名限制;5)常见问题解决方法。该方法适合大数据量和频繁通信场景,提供了完整的代码示例和调试建议。
2025-06-28 18:00:00
282
原创 鸿蒙中 泛型的约束方式
TypeScript/JavaScript(ArkUI框架)中的泛型约束主要通过extends、keyof和交叉类型实现,包括类型范围限制、属性键约束和多重约束。虽无Java的super约束,但可通过联合类型模拟类似功能。ArkUI开发中提供灵活的约束方式,开发者可根据需求选择联合类型或交叉类型等方案,满足不同场景的类型安全要求。
2025-06-28 06:30:00
228
原创 鸿蒙中 const 和 readonly区别
鸿蒙开发中const与readonly的区别:const用于编译时常量,必须在声明时初始化,类型自动推断为字面量;readonly用于运行时常量,可在构造函数初始化,保留原始类型。const限制变量引用但对象属性可变,readonly完全禁止修改。建议:简单值用const,对象属性用readonly,深度不变性可结合Readonly<T>。常见误区包括误认const能冻结对象和在非构造函数中修改readonly属性。
2025-06-27 18:00:00
557
原创 鸿蒙中 @ohos.file.fs 和 @ohos.fileio 模块使用
本文主要介绍了HarmonyOS文件操作的核心API与功能实现。包括:1)通过UIAbilityContext获取各类沙箱路径;2)基础同步文件操作API如openSync/readSync/writeSync等;3)完整示例代码展示文件读写、GBK编码处理和目录操作;4)高级功能如异步操作和文件选择器;5)注意事项包括权限配置、沙箱隔离和性能优化建议;6)错误处理机制。文章提供了从基础到进阶的文件管理方案,覆盖了路径获取、数据读写、编码转换等常见场景,并强调了开发中的权限与性能要点。
2025-06-27 06:30:00
466
原创 鸿蒙中 @ohos.promptAction 模块下有哪些常用API
文章摘要:本文介绍了ArkUI框架中四种弹窗组件及其用法:1)showToast文本提示框,支持自定义文本、颜色和位置;2)showDialog对话框,提供同步/异步两种返回结果方式;3)showActionMenu底部操作菜单,支持多选项滚动;4)openCustomDialog自定义弹窗,可构建复杂UI布局。同时提出了封装工具类的高级用法,包括生成唯一ID、链式调用等优化方案。注意事项包括调用上下文限制、错误处理和版本兼容性要求。这些组件适用于不同交互场景,从简单提示到复杂自定义弹窗均可实现。
2025-06-26 18:00:00
737
原创 鸿蒙开发中 高级类型之交叉类型
摘要:鸿蒙开发中的交叉类型(IntersectionTypes)是TypeScript/ArkTS的一种重要特性,通过&符号将多个类型合并为新类型,要求同时具备所有原类型的成员。主要应用于混入模式(Mixins)和接口组合场景,如UI组件属性和事件监听器的结合。使用时需注意同名属性类型冲突,与联合类型(|)的区别在于交叉类型要求同时满足所有类型条件。在鸿蒙开发中,该特性常用于复杂组件设计和状态管理,可通过extend函数实现对象的功能扩展。
2025-06-26 06:30:00
342
原创 鸿蒙开发 如何加载pdf文件(PdfView组件使用)
摘要:鸿蒙PdfView组件是用于预览PDF文档的核心控件,支持本地/网络文件加载(5.0.0+版本需导入@kit.PDFKit模块)。通过PdfController实现文档加载、页面跳转和交互监听,可配置单/双页布局、缩放模式等参数。典型应用包括本地文件加载(需处理沙箱路径)、网络PDF请求(需INTERNET权限)及加密文档解密。开发时需注意模块导入准确性(避免@hms误用)、文件路径处理及大文件性能优化(分页加载)。高级功能涵盖自定义工具栏、页面渲染监听,Web组件可作为替代方案实现更灵活的PDF参数
2025-06-25 18:00:00
312
原创 HarmonyOS中 Enum 和 Const Enum 的区别
在鸿蒙应用开发中,枚举和常量枚举有以下核心区别:枚举(Enum)会生成真实对象,支持运行时访问和数字枚举的反向映射,适用于动态访问场景;常量枚举(ConstEnum)则直接内联替换为字面量,无运行时对象,性能更优但无法动态访问。实际开发中,需要运行时访问或跨模块共享时用Enum,性能敏感场景建议用ConstEnum。鸿蒙案例显示ApiStatus适合用Enum处理多种状态,DeviceType这类固定值更适合ConstEnum以优化性能。
2025-06-25 06:30:00
386
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人