【鸿蒙心迹】从疑惑到热爱:我的鸿蒙开发启蒙
第一次认真了解鸿蒙系统,是在之前选修课上。老师展示了一段视频:用手机拍摄的照片,随手一拖就传到了平板;平板上编辑到一半的文档,又能在智慧屏上继续操作。这种设备间行云流水般的协作让我看得目瞪口呆——原来操作系统可以这样智能!
初识鸿蒙:从"另一个安卓"到真正的分布式认知
在此之前,我和身边大多数同学一样,以为鸿蒙只是"另一个安卓"。直到那个演示视频,才彻底打破了我的认知。课后我立即跑去问老师:"这是怎么实现的?我们需要学什么才能开发这样的应用?"
老师告诉我:"首先要忘记安卓的开发思维,鸿蒙是真正的分布式操作系统。"
后来我才知道鸿蒙和安卓的异同
各自优势
鸿蒙:
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');
当看到文字从一个设备同步到另一个设备的瞬间,我激动地从椅子上跳了起来。那种成就感,至今记忆犹新。
学习建议:
-
从简单的功能开始,不要贪多。
-
多看社区里的案例分享,能少走弯路。
-
一定要提前测试真机,模拟器和真机效果差很多。