- 博客(569)
- 收藏
- 关注
原创 鸿蒙中 蓝牙服务开发(一)
本文介绍了蓝牙技术原理及鸿蒙系统蓝牙开发要点。蓝牙分为传统蓝牙(BR/EDR)和低功耗蓝牙(BLE),前者适用于音频传输,后者适合物联网设备。在鸿蒙开发中,需配置蓝牙访问权限,并实现状态管理功能,包括状态监听、开启/关闭蓝牙等核心操作。开发时需注意权限申请、状态转换处理、超时机制等技术细节,建议遵循规范的设备发现、连接管理和数据传输流程。文章还提供了完整的代码示例,展示如何在鸿蒙系统中实现蓝牙功能开发。
2025-12-06 06:30:00
333
原创 Flutter 的渲染流程
本文详细介绍了Flutter的渲染流程,主要分为三个阶段:声明式UI构建、渲染管线和引擎处理。在Dart框架层,Widget树和Element树负责轻量级的配置和生命周期管理;核心渲染层通过RenderObject树处理布局、绘制和合成;C++引擎层完成光栅化和上屏显示。文章还分析了性能优化机制,如增量更新和复用策略,并解答了常见问题,解释了Flutter高效流畅的原因在于其自绘引擎、单一语言栈和严格的Vsync信号控制。整体而言,Flutter通过分层架构实现了从配置到像素的完整控制,确保了跨平台一致的性
2025-12-05 18:00:00
1068
原创 鸿蒙生态职位链:为何冲锋陷阵的,总是外包工程师?
鸿蒙生态采用"职位链"分工模式:华为核心团队负责顶层设计,外包工程师承担具体开发任务。这种结构源于三大考量:华为聚焦尖端研发、外包模式灵活高效、降低企业运营风险。对开发者而言,需警惕陷入低价值重复工作,应把握外包项目中的技术提升机会,向价值链上游迁移。在生态演进中,展现技术深度的开发者将获得更大发展空间。
2025-12-05 06:30:00
297
原创 鸿蒙中 元服务开发流程(二)
本文详细介绍了元服务工程的创建与开发流程。首先说明了工程创建步骤,包括选择模板、账号登录、APPID配置等关键环节,并解析了工程目录结构。接着讲解了页面构建方法,包括基本结构、布局组件选择和页面间跳转实现。然后介绍了元服务卡片的创建、开发实现和规格适配。最后强调了开发注意事项,包括账号认证要求、开发规范限制和性能优化建议。整个流程涵盖了从工程初始化到页面开发、卡片实现以及发布准备的全套开发指引。
2025-12-04 18:00:00
1220
原创 鸿蒙中 跨HAP包页面的跳转
HarmonyOS多HAP开发中,跨包页面跳转需通过startAbility机制实现。由于各HAP路径隔离,无法直接使用Router/Navigation。具体方案:1)源HAP调用startAbility,指定目标bundleName和abilityName;2)目标HAP需配置exported:true允许外部调用;3)参数通过Want对象传递,支持基本类型和可序列化对象。相比HAR/HSP跳转,HAP间跳转耦合度低但性能开销较大,适用于独立功能模块的场景。开发时需注意参数限制、错误处理和模块划分合理性
2025-12-04 06:30:00
1352
原创 Flutter 的渲染机制之setState
本文通过Flutter代码示例分析了状态管理与界面更新的关系。文章指出:直接修改变量值会立即改变内存状态,但必须调用setState()才能触发界面重建;build方法会在下一帧读取最新变量值重建Widget树;验证实验表明修改后立即输出新值但界面未更新;独立组件需自身调用setState更新;最后给出推荐做法:在setState回调中同时完成变量修改,避免先修改后调用空setState或只修改不调用setState的情况。全文阐明了Flutter中状态变化与界面更新的核心机制。
2025-12-03 18:00:00
395
原创 鸿蒙中 的元服务(一)
本文介绍了HarmonyOS中的元服务特性。元服务是一种轻量级、免安装的应用形态,与传统应用并列成为鸿蒙生态的两种主要程序形式。其核心特征包括秒开直达、账号同步、智能提醒等,具有开发成本低、分发渠道多等优势。文章对比了元服务与传统应用的差异,阐述了元服务的技术架构和使用场景,如服务卡片和跨设备协同。开发者需遵循API限制、Stage模型等规范,同时根据业务需求选择独立开发或并行开发策略。元服务将为用户提供更便捷的体验,为开发者降低门槛,助力构建智能服务网络。
2025-12-03 06:30:00
1061
原创 鸿蒙中 自动签名和手动签名
本文详细介绍了HarmonyOS应用开发中的调试签名机制。调试签名分为自动签名和手动签名两种方式:自动签名适用于一般调试场景,包含关联注册和未关联注册两种模式;手动签名适用于复杂调试场景和发布场景,需要开发者自行管理密钥、证书等文件。文章对比了两种签名方式的适用场景、权限管理和证书管理差异,并分别给出了详细的操作流程。特别强调了自动签名的时间同步要求、权限申请注意事项,以及手动签名的文件配套、密码一致等关键点。最后指出调试签名与发布签名的区别,提醒开发者发布时必须使用手动签名。
2025-12-02 18:00:00
1462
原创 鸿蒙中的 APP、HAP、HSP、HAR包
本文介绍了HarmonyOS开发中的四种核心包类型及其关系:HAR(静态共享包)用于代码复用,编译时集成到HAP/HSP中;HSP(动态共享包)实现运行时共享,减少应用体积;HAP是应用功能模块,分为主模块和功能模块;APP是最终发布形态。文章详细说明了各类包的构建步骤、应用场景和核心区别,并提供了场景选择指南:通用组件用HAR、减少重复代码用HSP、功能模块化用FeatureHAP、发布应用需构建APP包。四种包形成从代码到应用分发的完整关系链。
2025-12-02 06:30:00
1334
原创 flutter中 extension类方法拓展
Dart扩展方法语法详解 本文介绍了Dart语言中的扩展方法功能,主要包括: 基本语法:通过extension关键字为现有类型添加新功能 扩展类型:实例方法、Getter和操作符扩展的实现方式 泛型扩展:支持泛型类型的扩展方法 命名与冲突解决:如何命名扩展及处理成员冲突 使用限制:包括不能添加实例变量、访问私有成员等约束 通过示例代码展示了如何为String、int、List等类型添加实用功能,如字符串反转、数字格式化、列表分块等。扩展方法能增强代码可读性,同时需注意其静态解析特性。
2025-12-01 18:00:00
492
原创 鸿蒙中 UIAbility是什么东东?
包含 UI 的应用组件,主要用于用户交互系统调度的基本单元,为应用提供绘制界面的窗口清晰的模块边界:不同功能对应不同的 Ability灵活的任务管理:支持多任务并行和分屏协作高效的资源利用:按需加载和调度应用组件良好的用户体验:直观的任务切换和窗口管理。
2025-12-01 06:30:00
556
原创 鸿蒙 使用本地真机运行应用
摘要:本文详细介绍了在HarmonyOS NEXT系统上运行应用的操作指南。内容包括运行前的系统版本要求、开发者选项开启方法、应用签名要求;USB连接方式的详细步骤与运行方法;设备连接问题排查流程;以及无线调试的网络准备、设备设置和连接方式。重点说明了通过DevEco Studio的三种启动方式(菜单栏、工具栏图标、快捷键)运行应用,并提供了连接失败时的解决方案,包括使用设备连接助手和重启HDC服务等排查方法。
2025-11-30 18:00:00
800
原创 鸿蒙中 HAR/HSP 共享包的引用方式
本文介绍了OpenHarmony三方库(HAR/HSP)的多种引用方式和管理方法:1)支持远程仓库、本地模块源码和本地HAR/HSP包三种安装方式;2)提供命令行、可视化界面和手动配置三种依赖管理方法;3)详细说明了本地模块和HAR/HSP包的引用配置步骤;4)介绍了生命周期钩子管理和OpenHarmony开源中心仓的可视化功能;5)强调了注意事项,包括依赖声明位置、HSP包生成方式等。系统提供了灵活的多源支持和全面的依赖管理功能,满足不同开发场景需求。
2025-11-30 06:30:00
713
原创 鸿蒙 共享包HAR的发布
OpenHarmony三方库中心仓HAR包发布指南:1)准备HAR模块时必须包含README.md、CHANGELOG.md和LICENSE文件;2)编译HAR需注意版本号规范;3)需配置RSA加密密钥对,公钥上传至中心仓;4)通过ohpm命令发布HAR包,发布前需设置私钥路径和发布码。关键点包括:文档完整性、版本控制、密钥安全及发布流程验证。发布后可在中心仓查看并使用该HAR包。
2025-11-29 18:00:00
953
原创 鸿蒙 开发动态共享包
HSP(HarmonySharedPackage)是HarmonyOS的动态共享包,支持功能按需下载和资源共享。分为应用内HSP(绑定特定应用)和集成态HSP(通用型)。开发要求包括API10+、Stage模型和模块化编译。创建时选择SharedLibrary模板,可配置C++支持。编译会同时生成HSP(运行时加载)和HAR(开发态接口)。发布需切换release模式生成.tgz包上传私仓。HSP适用于模块化设计和功能动态加载场景,相比HAR更具灵活性。
2025-11-29 06:30:00
2154
原创 Flutter中的 标题栏组件AppBar
Flutter的AppBar组件是Material Design风格的应用顶部栏,提供丰富的定制选项。主要特性包括:1) 固定高度布局,包含leading、title、actions区域;2) 支持底部TabBar和灵活空间;3) 提供多种外观定制属性(颜色、高度、形状等)。通过Scaffold的appBar属性使用,可设置导航按钮、标题、操作图标等。高级功能包括灵活空间背景、系统界面样式控制和滚动交互。典型应用场景包含带标签页的导航栏、带搜索功能的工具栏等。AppBar可与Drawer、TabBarVie
2025-11-28 18:00:00
512
原创 鸿蒙 开发静态共享包
HAR(HarmonyArchive)是HarmonyOS的静态共享包,用于模块间共享ArkUI组件、C++库和资源。其工程结构包含代码目录、资源文件和配置文件,支持C++代码编译为.so文件。创建HAR模块需在DevEco Studio中选择StaticLibrary模板,配置名称、设备类型和C++版本。编译后生成.har文件,可被其他模块引用或发布至ohpm仓库。注意事项包括C++代码处理方式、资源索引生成和本地依赖打包。HAR适用于封装通用组件和底层能力,实现代码复用。
2025-11-28 06:30:00
2191
原创 flutter中 数据流Stream
Flutter中的Stream是处理异步数据流的核心工具,相比Future能持续产生多个值。文章介绍了三种创建Stream的方法:async*生成器、StreamController和Future列表转换。重点讲解了Stream的监听订阅机制,包括listen方法的使用和状态管理,以及各种转换操作如where、map、take等。同时详细说明了StreamBuilder的实践应用,包括不同连接状态的处理和UI构建。最后强调了使用注意事项,如高频流控制、避免重复计算和及时取消订阅等。这些内容为Flutter开
2025-11-27 18:00:00
267
原创 鸿蒙中 模块的添加/删除方式
摘要:本文介绍了HarmonyOS开发中模块的基本概念与操作方法。模块是应用的基本功能单元,包含entry、feature、har和shared四种类型。详细说明了创建模块的步骤、配置选项及注意事项,包括模块命名规则、类型选择和设备类型配置等。同时介绍了导入模块的两种方式(ImportModule和srcPath引用)以及删除模块的方法。开发者在操作时需注意模块类型限制、路径规范及模型兼容性等问题,这些功能为HarmonyOS应用开发提供了灵活的组织管理方式。
2025-11-27 06:30:00
764
原创 android中 jetpack组件使用
本文介绍了Android开发中常用的Jetpack组件及其核心功能,重点讲解了ViewModel、LiveData、Room和WorkManager的使用方法。ViewModel与LiveData配合可管理UI数据并实现生命周期感知;Room简化了SQLite数据库操作,包含Entity、DAO和Database三部分;WorkManager则用于可靠的后台任务管理。文章提供了详细的代码示例和依赖配置,帮助开发者快速掌握这些组件的使用方式,提升开发效率。
2025-11-26 18:00:00
1458
原创 鸿蒙 混淆后崩溃堆栈信息还原工具-hstack
摘要:hstack是HarmonyOS开发中用于解析混淆后崩溃堆栈的工具,支持将混淆的方法名、文件路径等信息还原为源码信息。该工具支持Windows/Mac/Linux平台,可解析ArkTS/JS和C++堆栈。使用前需配置Node.js环境及路径变量,通过命令行参数指定输入文件/字符串、输出目录及符号表文件。工具通过三步解析过程还原堆栈信息:路径解析、跨模块解析和方法名还原。建议在发布前备份sourcemap、nameCache等调试文件,并确保版本匹配。hstack能有效提升生产环境崩溃问题的定位效率。
2025-11-26 06:30:00
1143
原创 ArkGuard混淆的开启(二)
摘要:ArkGuard是HarmonyOS平台的源码混淆工具,用于保护应用代码安全。通过配置build-profile.json5启用混淆,并在obfuscation-rules.txt中设置混淆选项(如属性名、文件名混淆)和保留规则(白名单)。模块开发需区分obfuscation-rules.txt(模块级规则)和consumer-rules.txt(依赖规则)。混淆仅在Release模式生效,可通过nameCache.json和sourceMaps.map文件还原错误堆栈。建议分步开启混淆功能,精准配置
2025-11-25 18:00:00
1299
原创 鸿蒙中 自定义构建参数
摘要:本文详细介绍了HarmonyOS开发中的自定义构建参数功能,涵盖HAP/HSP/HAR三种模块类型的参数配置与使用方法。重点讲解了构建参数的生成路径、代码调用方式、默认参数列表、自定义配置方法以及工程级参数设置,并提供了环境差异化配置、构建信息展示等典型应用场景。文章还给出了命名规范、类型安全等最佳实践建议,并强调了配置优先级规则和注意事项。通过灵活使用构建参数,开发者可以实现不同环境和设备的差异化配置,提升开发效率。
2025-11-25 06:30:00
843
原创 鸿蒙 冷启动优化-延迟加载
本文介绍了延迟加载(lazy import)机制在提升应用冷启动性能中的应用。该机制通过在import前添加lazy关键字,使模块在首次使用时才同步加载,避免冷启动时加载未执行模块。文章详细说明了其特性、使用方式(包括文件识别和语法规则)、支持版本(API12+)以及注意事项(如避免重复导入导出)。与动态导入相比,延迟加载采用同步方式,仅支持静态路径。最后强调需结合业务场景合理使用,避免同步加载带来的阻塞风险,并推荐使用检测工具精准定位可优化文件。
2025-11-24 18:00:00
419
原创 ArkGuard混淆功能解析(一)
ArkGuard是HarmonyOS平台上的源码混淆工具,主要用于保护ArkTS/TS/JS代码安全。它通过名称重命名、代码压缩和注释删除等基础混淆功能增加逆向工程难度。支持ArkTS/TS/JS语言,但不支持C/C++等其他文件类型。混淆功能包括变量名、类名等基础混淆,但不支持控制流混淆等高级功能。可通过配置文件开启不同级别的混淆选项,并提供白名单机制保留关键名称。工具与构建流程深度集成,支持模块间规则合并,随着API版本迭代持续增强功能。开发者需注意合理配置保留选项,避免过度混淆影响功能。
2025-11-24 06:30:00
1632
原创 Binder 中回调管理RemoteCallbackList 解析
本文详细介绍了Android跨进程通信中RemoteCallbackList的设计原理与使用场景。针对普通List在管理回调时存在的并发修改异常、内存泄漏等问题,RemoteCallbackList通过内部维护数组+Binder死亡通知的智能结构提供了解决方案。其核心机制包括:注册回调时自动绑定Binder死亡通知、采用快照机制实现无锁遍历、通过位图标记活跃状态实现延迟清理等。文章还提供了完整的服务端和客户端实现示例,展示了如何正确使用beginBroadcast/getBroadcastItem/fini
2025-11-23 18:00:00
910
原创 鸿蒙中 性能优化-动态导入
动态导入是HarmonyOS中按需加载模块的机制,支持HSP/HAR/OHPM/Native库/系统API等多种模块类型。它适用于低频使用、异步获取或需动态构建模块的场景,能提升加载速度并减少内存占用。实现方式包括常量导入(编译时识别)和变量导入(需runtimeOnly配置)。动态导入还支持反射调用,并可通过依赖转移解决HAR模块间的循环依赖问题。使用限制包括变量导入需配置runtimeOnly、不支持HSP循环依赖等。该机制通过条件加载、反射调用等功能,有效优化性能并增强开发灵活性。
2025-11-23 06:30:00
812
原创 kotlin 协程的使用和原理(下)
本文系统介绍了Kotlin协程的核心概念与应用,包括:协程与线程的轻量级差异;主要组件如作用域、构建器、调度器的使用;挂起函数原理与结构化并发特性;取消、超时等异常处理机制;通道和Flow的数据流处理方式;以及在Android开发中的实践应用,如ViewModel集成、数据库操作和网络请求优化。重点对比了协程与传统线程的优势,并提供了大量可落地的代码示例,帮助开发者构建高效异步程序。
2025-11-22 18:00:00
493
原创 鸿蒙中的 GC垃圾回收
垃圾回收,指识别并释放内存中不再使用的对象,回收内存空间核心目标:自动管理内存,避免内存泄漏和内存溢出基于对象追踪:避免循环引用问题分代收集:针对不同生命周期对象优化混合算法:结合复制、整理、清扫优势并发并行:减少STW时间,提升性能智能触发:Smart GC保护敏感场景性能共享堆:优化多线程内存使用。
2025-11-22 06:30:00
1392
原创 鸿蒙 Worker和宿主线程的通信
本文详细介绍了ArkTS中Worker线程的通信机制,主要包含两种交互模式:异步消息传递和同步方法调用。Worker线程具有长生命周期、状态保持和双向通信能力,适用于复杂任务处理。文章通过具体代码示例展示了Worker与宿主线程的交互实现,包括消息队列机制、异步等待处理以及同步调用宿主方法的完整流程。技术要点包括postMessage/onmessage异步通信、registerGlobalCallObject方法注册和callGlobalCallObjectMethod同步调用。这两种机制共同构成了Wor
2025-11-21 18:00:00
565
原创 鸿蒙中 TaskPool与宿主线程通信解析
本文介绍了TaskPool线程通信的实现机制和应用场景。通过taskpool.Task.sendData()方法在任务线程中发送数据,配合task.onReceiveData()回调在宿主线程接收数据,实现任务进度监控、分段结果返回等功能。详细说明了数据模型定义、消息处理函数实现、任务函数编写等步骤,并提供了图片处理的完整示例代码。文章还分析了通信机制的技术细节,包括数据类型支持、回调配置时机等注意事项。这种通信方式相比传统方案更适合复杂长任务场景,能够实现实时状态更新和中间结果获取。
2025-11-21 06:30:00
433
原创 鸿蒙 TaskPool如何多个任务并行执行
/ 实现同上...TaskPool 的特点:提升响应性:将耗时任务移出主线程,避免UI卡顿充分利用多核:自动利用设备多核CPU并行处理简化开发:无需手动管理线程,专注业务逻辑灵活任务管理:支持独立任务和任务组两种模式选择:简单任务→ 使用独立 Task复杂任务→ 使用 TaskGroup 拆分并行处理需要聚合结果→ 使用 TaskGroup 统一返回。
2025-11-20 18:00:00
551
原创 kotlin Coroutines协程的使用(上)
本文介绍了协程在Android开发中的应用。协程作为轻量级线程,通过挂起和恢复机制简化异步编程,避免了回调地狱。重点讲解了lifecycleScope的优势:自动绑定Activity生命周期,防止内存泄漏;对比了GlobalScope的危险性。文章详细解析了协程三大组件:作用域、构建器和调度器(Main/IO/Default)。通过MVVM架构示例,展示了ViewModel层使用viewModelScope、UI层使用lifecycleScope的最佳实践,实现了线程切换、错误处理和生命周期感知的异步操作。
2025-11-20 06:30:00
785
原创 鸿蒙中 ets和ts文件de区别?
本文对比了HarmonyOS开发中.ets和.ts文件的区别。.ets文件是ArkTS定制语言,专为HarmonyOS UI和系统能力设计,强制静态类型检查,确保并发安全,支持声明式UI和原生API调用;而.ts文件遵循标准TypeScript语法,更灵活但缺乏UI支持,适用于非UI业务逻辑。二者可实现单向调用,推荐UI开发使用.ets,通用逻辑使用.ts。开发时应根据功能需求选择合适文件类型,兼顾性能与灵活性。
2025-11-19 18:00:00
428
原创 鸿蒙应用的运行机制和代码执行流程
本文同步发表于我的,微信搜索程语新视界即可关注,每个工作日都有文章更新鸿蒙应用的运行机制和代码执行流程是一套高度优化的体系,涉及编译、调度、渲染和分布式能力等多个层面。开发者提交的.hap包包含ArkTS/JS代码、资源文件(图片/布局)和Native库。安装时系统将资源部署到应用沙盒目录,确保文件系统隔离。方舟编译器(Ark Compiler)将ArkTS代码转换为字节码(.abc文件),高频代码(如UI渲染)进一步编译为机器码,提升执行效率。
2025-11-19 06:30:00
553
原创 鸿蒙中 线程通信-Sendable对象
本文介绍了ArkTS中的Sendable对象机制,这是一种优化跨线程通信性能的技术方案。Sendable对象通过引用传递实现跨线程共享,避免拷贝开销,支持基础类型、标准库容器、系统对象等数据类型。文中详细阐述了Sendable协议、ISendable接口、@Sendable装饰器的使用规范,以及内存模型和生命周期管理机制。Sendable类和方法需遵循特定限制,如属性显式初始化、禁用闭包变量等。该技术在大数据传输场景中性能优势显著,100KB数据效率提升约20倍,1MB提升约100倍。为保障线程安全,提供了
2025-11-18 18:00:00
695
原创 ArkTS中的并发
本文介绍了ArkTS的两种并发处理方式:异步并发和多线程并发。异步并发通过Promise和async/await实现,适合单次I/O操作;多线程并发使用TaskPool和Worker,分别处理短时任务和长时任务。文章还讲解了线程通信方式(拷贝传输和共享内存)及不同场景的适用方案,包括CPU密集型、I/O密集型和常驻任务等,帮助开发者优化应用性能,避免阻塞UI线程。
2025-11-18 06:30:00
1018
原创 Kotlin委托的使用以及实现原理
Kotlin委托模式分为类委托和属性委托两种形式。类委托通过by关键字将接口实现自动委派给其他对象,避免了手动转发方法;属性委托则通过by将属性访问逻辑委托给其他对象处理。Kotlin提供内置委托如lazy(延迟初始化)、observable(属性变更监听)和vetoable(属性变更拦截),也支持自定义委托。该模式在配置管理、Android开发等场景应用广泛,能有效减少样板代码,提升代码复用性。编译时,委托会被转换为标准的接口方法调用或属性访问逻辑。
2025-11-17 18:00:00
404
原创 鸿蒙 多线程并发-Worker
本文介绍了Worker线程的核心概念和使用方法。Worker通过独立线程处理耗时操作,避免阻塞主线程。其运作基于消息传递机制,支持序列化、引用传递等数据传输方式。使用时需注意:最多64个Worker并发,单次数据传输限制16MB;只能使用线程安全库,禁止UI相关操作;API18+推荐使用onAllErrors捕获异常。生命周期管理包括创建、销毁和内存优化,建议合理复用Worker。文章还详细说明了多级Worker管理、跨HAR包使用及优先级设置(API18+)等高级用法,并指出应用挂起时Worker会暂停运
2025-11-17 06:30:00
1545
原创 鸿蒙 多线程并发-TaskPool
摘要: ArkTS的TaskPool提供简化的多线程管理机制,通过自动扩缩容(最大线程数由设备核数决定)优化性能。任务需用@Concurrent装饰器标记,支持序列化参数/返回值,执行时长限制3分钟。关键约束包括:禁止UI操作、使用线程安全模块、数据传输量≤16MB。适用于CPU密集型/I/O异步短任务,长任务推荐Worker。@Concurrent函数规范严格,支持Promise,跨线程类需@Sendable修饰。系统动态调度线程,空闲30秒触发缩容,确保资源高效利用。
2025-11-16 18:00:00
1268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅