【HarmonyOS 5】鸿蒙发展历程一、鸿蒙 HarmonyOS 版本年代记鸿蒙 1.0:2019 年 8 月 9 日,华为在开发者大会上正式发布鸿蒙 1.0 系统,这一版本首次应用于华为荣耀智慧屏产品中 原生鸿蒙正式版也在 2025 年 3 月发布,进一步推动了鸿蒙生态向更纯粹、更自主的方向发展 。鸿蒙PC将在2025年5月发布。 到了 2019 年 5 月 14 日,华为鸿蒙商标获得注册公告,专用权限期从 2019 年 5 月 14 日至 2029 年 5 月 13 日,这为鸿蒙系统的商业化推广与应用提供了品牌保障,也正式拉开了鸿蒙系统在智能终端市场上的探索与发展序幕 三、鸿蒙的未来从当前技术趋势、市场环境和华为的战略布局来看,鸿蒙未来发展潜力巨大。 依托华为在 5G、芯片、物联网等领域的深厚积累,鸿蒙有望主导中国市场的智能家居和车联网标准,巩固万物互联入口地位。开发者生态也将迎来爆发式增长。
【HarmonyOS 5】鸿蒙mPaaS详解一、mPaaS是什么?mPaaS 是 Mobile Platform as a Service 的缩写,即移动开发平台。 鸿蒙 mPaaS 的容器化技术与 Android/iOS 平台的差异:特性 鸿蒙 mPaaS 传统 Android/iOS 例如:通过JS脚本动态修改H5页面的交互逻辑;在原生页面中注入脚本代码,实时调整业务流程。 离线包机制:undefined将常用的H5页面、小程序代码提前下载至本地,减少对网络的依赖,提升页面加载速度,尤其适用于弱网环境。 以下是具体分析:四、鸿蒙中如何接入mPaas?
本文介绍在鸿蒙应用中button组件的基本用法。 增加按钮组件 如下代码中红色部分所示,在布局中增加button组件。 <?xml version="1.0" encoding="utf-8"? /> </DirectionalLayout> <Component ohos:height="0vp" ohos:weight="<em>5</em>" onClick(Component v) { new ToastDialog(getContext()) .setText("你好,鸿蒙 按钮之后,为button组件增加了一段在画面底部显示“你好,鸿蒙!"信息的响应代码。需要注意的是id的格式:ResourceTable.Id_hello_button。 ?
【HarmonyOS 5】鸿蒙应用数据安全详解一、前言大家平时用手机、智能手表的时候,最担心什么?肯定是自己的隐私数据会不会泄露! 二、设备和数据的“安全通行证”1、 设备也有“安全等级”HarmonyOS给设备划分了5个安全等级(SL1-SL5):根据设备是否具备TEE(可信执行环境)、安全存储芯片等能力,将设备分为5个安全等级: 等级安全能力典型设备SL1 低安全 智能穿戴设备SL5 高安全 手机、平板数据跨设备同步时,需满足数据安全标签 ≤ 目标设备安全等级的规则。
【HarmonyOS 5】鸿蒙星闪NearLink详解一、前言鸿蒙星闪NearLink Kit 是 HarmonyOS 提供的短距离通信服务,支持星闪设备间的连接、数据交互。 二、NearLink Kit 的接入与使用:点击跳转官方文档地址鸿蒙星闪(NearLink)的基本接入代码示例,包含设备发现、连接和数据传输的核心流程:// NearLink设备管理服务示例import } catch (error) { console.error(`Failed to release resources: ${error}`); } } }}三、鸿蒙星闪指标对比以下是鸿蒙星闪 、蓝牙和NFC在技术性能、应用场景、成本与生态系统等方面的区别表格:比较项目鸿蒙星闪蓝牙NFC传输速率最高可达2.5Gbps,低功耗模式下峰值速率可达12Mbps蓝牙5.2的传输速率为400Mbps,异步连接允许一个方向的数据传输速率达到
二、MQTT在鸿蒙中怎么使用?在鸿蒙(HarmonyOS)中使用MQTT协议主要通过官方提供的@ohos/mqtt库实现。 https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fmqtt配置依赖:ohpm install @ohos/mqtt或者在oh-package.json5中配置 : "dependencies": { "@ohos/mqtt":"2.0.18", }记得配置网络权限:在module.json5中配置: "requestPermissions
【HarmonyOS 5】鸿蒙实现手写板一、前言实现一个手写板功能,基本思路如下:创建一个可交互的组件,用户在屏幕上触摸并移动手指时,会根据触摸的位置动态生成路径,并使用黑色描边绘制在屏幕上。 该组件的使用思路很简单,如下代码所示: Path() .commands(this.pathCommands) // 设置SVG路径描述字符串 .strokeWidth(5) // 设置路径的描边宽度为 5 .fill("none") // 设置路径的填充颜色为无 .stroke(Color.Black) // 设置路径的描边颜色为黑色 break; // 其他触摸类型,不做处理 default: break; } }5. // 设置路径的描边宽度为 5 .fill("none") // 设置路径的填充颜色为无 .stroke(Color.Black) // 设置路径的描边颜色为黑色
【HarmonyOS 5】鸿蒙应用隐私保护详解一、前言在今天这个手机不离手的时代,我们每天用手机支付、聊天、记录生活,不知不觉中,大量个人信息都存储在了移动设备里。 精准度在米级别大于等于9ohos.permission.LOCATION失败无法获取位置大于等于9ohos.permission.APPROXIMATELY_LOCATION成功获取到模糊位置,精确度为5公里大于等于 同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION成功获取到精准位置,精准度在米级别代码示例:首先在module.json5配置文件中声明权限 photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;photoSelectOptions.maxSelectNumber = 5; 代码示例:以申请相机权限为例,在module.json5配置文件中声明权限:{ "module": { // ...
【HarmonyOS 5】鸿蒙中的UIAbility详解(三)一、前言本文是鸿蒙中的UIAbility详解系列的最终章。主要针对UIAbility的冷启动和热启动,对于want数据的处理。 配置可迁移能力在module.json5中设置continuable: true: { "abilities": [ { "name": "EditorAbility",
【HarmonyOS 5】鸿蒙中的UIAbility详解(二)一、前言今天我们继续深入讲解UIAbility,根据下图可知,在鸿蒙中UIAbility继承于Ability,开发者无法直接继承Ability 在module.json5配置文件中的launchType字段配置为singleton,multiton,specified即可。{ "module": { // ...
一、@State在鸿蒙中是做什么的?@State 是 HarmonyOS ArkTS 框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动 UI 的响应式编程模式。
【HarmonyOS 5】鸿蒙中的UIAbility详解(一)一、UIAbility是什么?Stage模型中的组件类型名,即UIAbility组件,包含UI,提供展示UI的能力,主要用于和用户交互。 5、ForegroundUIAbility切换至前台、UI可见前触发。申请系统资源(如定位、传感器权限)、恢复后台释放的资源。
【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解一、前言目前的鸿蒙开发者,大多数是从前端或者传统移动端开发方向,转到鸿蒙应用开发方向。 今天我们就来分析下鸿蒙中UI适配的规范与小窍门。 二、 鸿蒙中vp、px、fp 是什么? 当前鸿蒙API接口数值不带单位时,默认单位都为vp,可见这是官方推荐的数值单位。2. fp 而fp的概念与vp类似,在鸿蒙系统中也是适用屏幕密度变化,随系统字体大小设置变化。是专门用于字体像素的单位。 而在鸿蒙开发中,为了适配多种设备,不同的屏幕像素密度,也有类似于dp的概念,就是综上所述的vp与fp。因为在鸿蒙应用开发中,与安卓的现状相同,需要适配多种机型,不同的折叠手机。 并且鸿蒙特性之一就是自由流程多端适配。一套代码,需要适配多种类设备显示。所以官方不建议使用屏幕像素单位px进行UI数值的设置。
### 鸿蒙性能优化宝藏:帧率问题实战案例解析**嘿,各位鸿蒙开发者!** 今天分享一个开发中的大发现——鸿蒙官方文档里藏着一堆超实用的性能优化案例! **AppAnalyzer**:检测到滑动卡顿率超标(>5ms/s)。1. **列表性能**: - `LazyForEach`的`cachedCount`预加载数量调优(建议5~10)。 * * ***结语** 这次深扒鸿蒙文档,发现官方其实埋了不少性能优化的“宝藏案例”。实际开发中,帧率问题无非集中在**主线程阻塞、渲染管线过长、GPU过载**三个方向。 欢迎在评论区交流** —— 也记得去鸿蒙开发者社区提问,官方团队回复超及时!**一起卷鸿蒙,做最靓的开发者!**
【HarmonyOS 5】鸿蒙跨平台开发方案详解(一)一、为什么需要鸿蒙跨平台开发方案?2025年是鸿蒙生态迎来关键发展期。 根据前几天的2025 HDC数据显示,鸿蒙原生应用数量已从2024年的2000款增长至5000款,微信鸿蒙版安装量突破1.2亿,公安部交管系统完成全国300城鸿蒙适配。 不过如果是重新开发一个APP,我推荐原生开发鸿蒙,因为坑最少。鸿蒙发展主线支持最好的也是原生开发,这是毋庸置疑。ArkUI-X支持一套代码适配鸿蒙、安卓、iOS多平台。 二、常见的八大鸿蒙跨平台方案以下是将八大鸿蒙跨平台开发方案梳理后的表格呈现,从方案名称、所属主体、核心定位、技术特点及生态/性能亮点五个维度进行分类展示:1、鸿蒙跨平台开发方案对比表方案名称所属主体 需跟踪Flutter官方更新适配,跨平台一致性高但鸿蒙需额外适配React Native使用JavaScript/TypeScript,学习门槛低,社区提供鸿蒙支持,工具链成熟,代码复用率高,需鸿蒙适配
【HarmonyOS 5】鸿蒙跨平台开发方案详解(二)一、Flutter鸿蒙适配作为最早实现鸿蒙适配的跨平台框架,Flutter在社区推动下已形成较完整的技术方案。 通过修改嵌入层实现鸿蒙特有系统服务集成,将窗口管理、输入事件、还有鸿蒙的各种Kit的能力,通过平台通道进行集成实现。 (1) 窗口管理:适配鸿蒙的窗口生命周期管理机制(2) 输入事件:重构触摸事件处理流程以匹配鸿蒙输入系统平台通道:FlutterMethodChannel类似于H5和原生之间的JSBridge。 XComponent:鸿蒙系统提供的跨设备组件,用于获取底层图形资源。OHNativeWindow:鸿蒙系统的原生窗口对象,类似 Android 的ANativeWindow。 UI一致性渲染三、Flutter适配鸿蒙方案演进路径虽然Flutter官方声明"暂无计划原生支持鸿蒙",但社区是有专门的团队在支撑鸿蒙适配的相关代码改造。
鸿蒙并发编程实战指南:解锁ArkTS多线程黑科技 > **嘿,开发者朋友们!** 今天给大家扒一扒鸿蒙官方文档里藏着的并发编程宝藏——**100+实战场景解决方案**! this.inHoverMode = true // 触发画中画逻辑 } } ``` 场景3:生产者-消费者模式——阅读APP预加载 **需求**:翻页时后台预解析后续5页内容 ``` // 生产端:主线程投递解析任务 function onPageTurn() { for (let i=1; i<=5; i++) { const task = new *: ``` [HWASAN] ERROR: heap-use-after-free ``` * * * **五、总结:最佳实践路线图** ``` journey title 鸿蒙并发开发决策树 -> SequenceRunner 依赖管理 --> addDependency 批量处理 --> TaskGroup ``` > **最后唠叨一句**: > 鸿蒙的并发模型是
### 鸿蒙性能优化宝藏指南:让你的应用丝滑如飞! 大家好呀!最近在HarmonyOS文档里挖到一个性能优化的"黄金矿脉"——官方其实藏了超多流畅性设计的实战案例!但很多小伙伴可能没注意到。 今天我就把这些干货整理出来,配上代码示例,让你轻松打造60帧无卡顿的鸿蒙应用! 一、感知流畅性核心原则 官方文档强调:**流畅≠高性能**,而是操作响应、动效、心理预期的完美配合。 看完这些案例是不是发现鸿蒙的性能优化其实有章可循? 如果大家在实战中遇到卡顿难题,欢迎在评论区交流~ 也欢迎关注我,后续会持续分享鸿蒙开发实战技巧! ✨ 希望这篇接地气的总结能帮你避开性能深坑!如果觉得有用,记得点赞收藏哟 下期见!
【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解一、前言:移动开发声明式 UI 框架的技术变革在移动操作系统的发展历程中,UI 开发模式经历了从命令式到声明式的重大变革。 一个常规的鸿蒙应用项目,重点需要关心编码的部分,分为三个:AppScope 设置应用的包名,图标等相关信息entry - src - main - ets 只要编码的所在地。 () { RelativeContainer() { // 这里使用 Index() } .height('100%') .width('100%') }}5. onClick(() => { this.message = 'Welcome';}) // 显示message状态变量的文本组件 Text(this.message)(5)资源文件的管理
以下是根据官方文档整理的鸿蒙平板开发实战指南,结合代码解析和避坑要点,帮你高效实现“一次开发,多端部署”### 一、开篇:为什么平板开发不同?平板三大特性决定开发策略:1. **交互扩展**:支持键鼠 → 需增加悬浮/焦点/快捷键逻辑 **工程配置第一步** 在`module.json5`中声明支持设备类型:```"deviceTypes": ["tablet"] // || ----- | ------- | ----------------------- || 长列表滚动 | 启用组件复用 | `.cachedCount(5) 吃透本文5大布局方案,效率提升50%!” —— 来自踩坑3周的老司机