华为鸿蒙开发学习
这是拿来抽奖用的文章,为copy的https://juejin.cn/post/7539857687720804415
一、鸿蒙自学规划与准备
1.1 学习前的自我评估
在开始鸿蒙学习前,建议先评估自己的技术基础,以便制定合适的学习计划:
必备基础:
- 基本编程概念(变量、函数、循环等)
- 面向对象思想(类、对象、继承等)
- 简单的前端知识(HTML/CSS 基础,有助于理解 ArkUI)
技能自测:
- 能否用 Java 或 JavaScript 写出简单的计算器程序?
- 是否了解 JSON 数据格式和基本网络请求概念?
- 有没有 UI 界面开发经验?
学习心态:
- 耐心:鸿蒙开发涉及新概念,需要循序渐进
- 动手:每周至少 20 小时实际编码练习
- 坚持:遇到问题不要轻易放弃,社区和文档是你的好帮手
1.2 高效学习时间规划
根据学习目标不同,推荐两种时间规划方案:
方案一:业余学习(每天 2-3 小时)
- 周一至周五:每天学习一个核心知识点,周末进行项目实践
- 第一周:开发环境搭建 + ArkTS 基础语法
- 第二周:ArkUI 组件与布局
- 第三周:状态管理与页面路由
- 第四周:综合项目实战
方案二:集中学习(每天 6-8 小时)
- 前 3 天:基础语法与开发环境
- 4-7 天:UI 开发与状态管理
- 8-10 天:分布式能力与数据存储
- 11-15 天:完整项目开发与优化
学习节奏建议:
- 每学习 45 分钟休息 10 分钟
- 每周安排半天复习时间,整理笔记和错题
- 每月完成一个阶段性项目,检验学习成果
二、核心知识笔记整理
2.1 鸿蒙开发核心概念图解
鸿蒙系统架构:
1 | 体验AI代码助手 代码解读复制代码┌─────────────────────────────────┐ |
南向开发 vs 北向开发:
| 维度 | 南向开发 | 北向开发 |
|---|---|---|
| 开发目标 | 硬件驱动、内核优化 | 应用开发、用户界面 |
| 技术栈 | C/C++、驱动框架 HDF | ArkTS、ArkUI、JavaScript |
| 工具 | DevEco Device Tool | DevEco Studio |
| 应用场景 | 智能硬件、物联网设备 | 手机应用、跨设备应用 |
2.2 关键技术难点解析
状态管理装饰器对比:
@State:组件内部状态,修改会触发 UI 刷新@Prop:父子组件单向数据传递@Link:父子组件双向数据绑定@Provide/@Consume:跨组件层级数据共享
使用原则:
- 局部状态用
@State - 父子通信优先用
@Prop+ 事件回调 - 深层嵌套组件通信才用
@Provide/@Consume - 全局状态考虑用
AppStorage
分布式能力核心:
- 软总线:设备发现与通信通道
- 分布式数据:跨设备数据同步
- 任务调度:多设备协同完成任务
实现步骤:
1 | markdown 体验AI代码助手 代码解读复制代码1. 设备发现:DeviceManager.discoverDevices() |
2.3 易混淆知识点辨析
Stage 模型 vsFA 模型:
- Stage 模型(推荐):
- 单进程多 Ability
- 支持 Ability 内多页面
- 内存占用更低,性能更好
- FA 模型(旧版):
- 多进程架构
- 每个 Page 单独进程
- 适合简单应用
开发选择:新项目优先使用 Stage 模型,旧项目可逐步迁移
ArkTS 与 TypeScript:
- 相同点:基础语法一致,支持 TypeScript 大部分特性
- 差异点:
- ArkTS 增加状态管理装饰器
- 支持声明式 UI 语法
- 提供更严格的静态检查
三、高效笔记整理方法
3.1 结构化笔记模板
推荐模板:
1 | markdown 体验AI代码助手 代码解读复制代码# 【主题】鸿蒙状态管理 |
使用技巧:
- 每个知识点单独成页,便于后续整理
- 使用 #标签分类,如 #状态管理、# 布局组件
- 重要内容用
**加粗,重点突出
3.2 思维导图学习法
核心知识脑图结构:
1 | 体验AI代码助手 代码解读复制代码鸿蒙开发 |
推荐工具:XMind、MindNode、FreeMind
使用建议:
- 每周学习结束后绘制知识脑图,检验知识体系完整性
- 用不同颜色区分已掌握和待巩固知识点
- 定期更新脑图,添加新学到的内容
3.3 错题集与问题跟踪
错题集格式:
1 | perl 体验AI代码助手 代码解读复制代码## 问题描述 |
问题跟踪表:
| 日期 | 问题描述 | 解决方法 | 相关知识点 |
|---|---|---|---|
| 2025.3.15 | 模拟器启动失败 | 开启 BIOS 虚拟化支持 | 开发环境配置 |
| 2025.3.18 | 状态变量未触发 UI 更新 | 创建新数组替换原数组 | @State 装饰器 |
| 2025.3.22 | 分布式数据同步失败 | 添加分布式权限并申请授权 | 分布式能力 |
四、学习资源精选推荐
4.1 官方资源(首选)
文档与教程:
- 《HarmonyOS 应用开发白皮书》:生态全景介绍
- [HarmonyOS 第一课]:视频课程
代码示例:
- HarmonyOS Samples:官方示例代码库
- Codelabs:交互式编程练习
4.2 第三方优质资源
视频课程:
社区与博客:
- 鸿蒙开发者社区:经验分享与问题解答
- 掘金:鸿蒙开发专栏
- 知乎:鸿蒙技术话题讨论
书籍推荐:
- 《鸿蒙应用开发实战》:适合入门
- 《ArkTS 语言开发详解》:深入语言特性
- 《鸿蒙分布式应用开发》:特色能力详解
4.3 学习资源使用策略
资源筛选原则:
- 优先选择官方资源和最新内容(2024 年后)
- 视频课程与文档结合学习,视频学操作,文档学原理
- 每个知识点至少参考两个不同来源的资料
资源管理方法:
- 使用 Notion 建立资源库,分类整理优质链接
- 收藏重要网页时立即添加简短笔记,记录推荐理由
- 定期清理过期资源,保持资源库时效性
五、实战项目笔记范例
5.1 项目规划与需求分析
待办事项应用规划:
- 核心功能:添加 / 删除 / 修改待办、标记完成状态、数据持久化
- 技术点:
- ArkUI 布局(List、Button、TextInput)
- 状态管理(@State、@Prop)
- 数据存储(Preferences)
- 页面路由(router 模块)
项目结构:
1 | less 体验AI代码助手 代码解读复制代码entry/src/main/ets/ |
5.2 开发过程中的问题与解决方案
问题 1:长列表滑动卡顿
- 现象:待办项超过 20 条时滑动不流畅
- 原因:使用 ForEach 渲染所有列表项,未做懒加载
- 解决方案:改用 LazyForEach 实现列表项懒加载
1 | scss 体验AI代码助手 代码解读复制代码// 优化前 |
问题 2:数据持久化失败
- 现象:应用重启后数据丢失
- 原因:Preferences 未正确调用 flush () 方法
- 解决方案:
1 | javascript 体验AI代码助手 代码解读复制代码// 保存数据 |
5.3 项目总结与经验提炼
开发心得:
- 组件化思想:将 UI 拆分为小组件,提高复用性
- 状态管理:合理规划状态作用域,避免状态混乱
- 错误处理:所有异步操作必须添加 try-catch
- 性能优化:列表使用 LazyForEach,图片使用缓存
待优化点:
- 添加待办分类功能
- 实现待办搜索
- 添加数据备份与恢复
- 支持待办优先级设置
六、学习工具与效率提升
6.1 笔记软件推荐
Notion:
- 优势:支持 Markdown、数据库功能、多设备同步
- 适用场景:知识体系构建、学习计划管理
- 模板推荐:学习笔记模板、项目管理看板
Obsidian:
- 优势:本地存储、双向链接、知识图谱
- 适用场景:构建个人知识库、深度笔记整理
- 插件推荐:思维导图、标签管理、图表生成
OneNote:
- 优势:自由排版、手写笔记支持、Office 集成
- 适用场景:课堂笔记、会议记录
- 使用技巧:利用分区功能组织不同学习阶段内容
6.2 开发效率工具
DevEco Studio 插件:
- CodeGenie:AI 辅助编程,生成代码和注释
- HarmonyOS Theme:主题美化,减少视觉疲劳
- ArkTS Code Snippets:代码片段,快速插入常用代码
效率提升工具:
- HDC 命令行工具:设备调试和日志查看
- Ohpm 包管理器:鸿蒙第三方库管理
- 鸿蒙模拟器:多设备同时调试
6.3 社区与学习伙伴
推荐社区:
七、自学常见问题与解决方法
7.1 技术难点突破
问题:声明式 UI 思维转变困难
- 表现:习惯了命令式编程,难以适应声明式 UI
- 解决方法:
- 先画 UI 草图,再用声明式语法描述
- 从简单页面开始,逐步复杂
- 分析官方示例,模仿写法
问题:分布式能力理解困难
- 解决方法:
- 用生活例子类比:把设备看作团队成员,软总线看作沟通工具
- 从简单设备发现开始,逐步尝试数据共享
- 参考官方 Codelabs 分布式案例
7.2 学习动力维持
动力不足的解决策略:
- 目标分解:将 “学会鸿蒙开发” 分解为小目标,如 “本周实现登录功能”
- 进度可视化:使用 GitHub 贡献图记录每日学习时间
- 成果展示:定期将项目部署到真机,体验成就感
- 社区激励:在技术社区分享学习心得,获得反馈和鼓励
避免 burnout:
- 设定合理学习时间,不要熬夜编程
- 每周安排一天完全休息,避免疲劳积累
- 参与线下技术 meetup,结交同好
7.3 学习效率提升
番茄工作法应用:
- 25 分钟专注学习 + 5 分钟休息
- 每完成 4 个番茄钟,休息 15-20 分钟
- 使用 Forest 等 APP 记录专注时间
知识巩固方法:
- 学习后 24 小时内复习一次
- 用自己的话重述知识点
- 给他人讲解学到的内容
- 制作思维导图,梳理知识体系
结语:我的鸿蒙自学心得
经过三个月的自学,我从零基础成长为能够独立开发简单鸿蒙应用的开发者。回首这段学习历程,最深的体会是:坚持比天赋更重要。鸿蒙开发涉及不少新概念,但只要按照合理的学习路径,每天积累一点,终能掌握。
作者:用户100810713938
链接:https://juejin.cn/post/7539857687720804415
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。