当前位置: 首页 > news >正文

【鸿蒙心迹】从疑惑到热爱:我的鸿蒙开发启蒙

第一次认真了解鸿蒙系统,是在之前选修课上。老师展示了一段视频:用手机拍摄的照片,随手一拖就传到了平板;平板上编辑到一半的文档,又能在智慧屏上继续操作。这种设备间行云流水般的协作让我看得目瞪口呆——原来操作系统可以这样智能!

初识鸿蒙:从"另一个安卓"到真正的分布式认知

在此之前,我和身边大多数同学一样,以为鸿蒙只是"另一个安卓"。直到那个演示视频,才彻底打破了我的认知。课后我立即跑去问老师:"这是怎么实现的?我们需要学什么才能开发这样的应用?"

老师告诉我:"首先要忘记安卓的开发思维,鸿蒙是真正的分布式操作系统。"

后来我才知道鸿蒙和安卓的异同

各自优势
鸿蒙:

1、系统稳定性更高:宏内核架构中,内核负责所有系统功能,因此内核的任何错误都可能会导致整个系统崩溃。微内核架构中,内核只负责提供最核心的功能,因此内核的错误影响范围更小。
2、系统安全性更高:宏内核架构中,内核负责所有系统功能,因此内核的漏洞更容易被攻击者利用。微内核架构中,内核只负责提供最核心的功能,因此内核的漏洞影响范围更小。
3、系统可扩展性更强:宏内核架构中,内核的功能是固定的,因此很难扩展内核的功能。微内核架构中,内核的功能是模块化的,因此可以根据需要扩展内核的功能。
 

安卓:

1、系统效率更高:宏内核架构中,内核直接与硬件进行交互,因此系统效率更高。微内核架构中,内核与硬件之间需要通过服务层进行交互,因此系统效率会有所降低。
2、系统开发更简单:宏内核架构中,内核负责所有系统功能,因此开发者只需要关注应用程序的开发,而不需要考虑内核的开发。微内核架构中,内核只负责提供最核心的功能,因此开发者需要了解内核的功能和架构,这增加了开发的复杂性。
 

 

开始尝试鸿蒙,接触DevEco Studio

经过了解了鸿蒙之后,怀着好奇,我下载了DevEco Studio。(官网地址:DevEco Studio-鸿蒙应用集成开发环境(IDE)-华为开发者联盟)

安装过程就给了我一个下马威——需要单独配置SDK、安装模拟器插件,还要申请开发者证书。整整一个下午,我都在各种配置和下载中度过。

当终于创建第一个工程时,面对陌生的项目结构,我有点懵。src/main目录下没有熟悉的java文件夹,而是ets(Extended TypeScript);resources目录结构也完全不同。还好有点Java基础,过多的了解之后也是慢慢熟悉了这个开发工具。

// 页面路由配置
"routes": [{"name": "MainPage","page": "pages/MainPage"},{"name": "DetailPage", "page": "pages/DetailPage"}
]

第一个"Hello World"的挫折

照着教程写第一个页面,我就遇到了问题:

@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%')}.height('100%')}
}

代码看起来很简单,但运行后模拟器一直白屏。后来在社区提问才知道,是因为没有正确配置权限。这种细节上的差异,让我意识到鸿蒙开发需要更严谨的态度。

艰难的适应期

最初两周,我每天都在和各种"小问题"作斗争:

  • 为什么样式写法这么奇怪?

  • 如何实现页面间传值?

  • 分布式API该怎么用?

最让我头疼的是当时资料太少。CSDN上几乎找不到ArkTS的教程,Stack Overflow也没有相关讨论。只能硬着头皮啃官方文档,一遍遍看鸿蒙官网API说明。

转折点:第一次成功跑通分布式Demo

经过很久的学习,我终于实现了第一个分布式功能——手机和平板之间传输文本:

// 简单的分布式数据同步
import { distributedData } from '@ohos.data.distributedData';// 创建分布式数据库
const kvManager = distributedData.createKVManager(config);
const kvStore = await kvManager.getKVStore('myStore');// 同步数据到其他设备
await kvStore.put('key', 'value');

当看到文字从一个设备同步到另一个设备的瞬间,我激动地从椅子上跳了起来。那种成就感,至今记忆犹新。

学习建议:

  1. 从简单的功能开始,不要贪多。

  2. 多看社区里的案例分享,能少走弯路。

  3. 一定要提前测试真机,模拟器和真机效果差很多。

http://www.dtcms.com/a/363931.html

相关文章:

  • Java消息中间件(RocketMQ)
  • Linux 文本处理实战手册
  • 【专栏升级】大模型应用实战并收录RAG专题,Agent专题,LLM重构数据科学流程专题,端侧AI专题,累计63篇文章
  • Redis 哨兵 (基于 Docker)
  • YOLO 目标检测:YOLOv5网络结构、Focus、CSP、自适应Anchor、激活函数SiLU、SPPF、C3
  • 3.2-C++基础组件
  • Kafka面试精讲 Day 5:Broker集群管理与协调机制
  • 深度学习-----通过本地数据实现图片识别的训练
  • PS痕迹检测器:基于深度学习的图像篡改检测
  • 撤销修改 情况⼀:对于⼯作区的代码,还没有 add
  • 浏览器内存 (JavaScript运行时内存)存储的优劣分析
  • linux(cut,sort,uniq ,tr,sed,awk)命令介绍
  • 贝叶斯定理:理解概率更新与实际场景应用
  • 在VS Code中直接操控浏览器
  • 预算紧张?这5款低代码平台免费还好用!
  • 光储充一体化智慧能源平台助力某能投公司绿色能源转型
  • 【面试场景题】如何理解设计模式
  • three.js手机端的4种旋转方式
  • 有鹿巡扫机器人:智慧清洁时代的多面手
  • (四)Python控制结构(条件结构)
  • MMORPG 游戏战斗系统架构
  • 2025互联网大厂Java后端面试:3-5年经验必问核心考点解析
  • 机器学习辅助的Backtrader资产配置优化策略
  • 【vue2】vue2.7x的项目中集成tailwind.css真的不要太香
  • Python 类的方法类型详解
  • 企业如何实现零工用工零风险?盖雅全自动化合规管控
  • 望获实时Linux:亚微秒级系统响应的实现方法
  • Qt中字节对齐问题和数据的序列化和反序列化的问题
  • springboot2.x集成swagger api(springdoc-openapi-ui)
  • 开源企业级快速开发平台(JeecgBoot)