我的鸿蒙学习之旅:探索万物互联的新宇宙
在科技飞速发展的今天,操作系统领域的创新层出不穷。华为鸿蒙系统的出现,犹如一颗璀璨的新星,照亮了万物互联的未来之路。怀着对新技术的好奇与渴望,我踏上了学习鸿蒙的征程,这段经历充满了挑战与惊喜,也让我对未来的科技发展有了更深的理解。
一、鸿蒙初印象:兴趣的种子萌芽
起初,我只是在科技新闻中频繁听到 “鸿蒙” 这个名字。了解到它是华为自主研发的面向万物互联时代的分布式操作系统,能实现多设备之间的无缝协同,让手机、平板、智能手表、智能家居等设备像一个整体一样工作,这一理念深深吸引了我。它打破了传统操作系统设备孤立的局面,构建起一个互联互通的智能世界,这让我意识到,鸿蒙或许将引领下一个科技浪潮,一颗学习鸿蒙的种子就此在我心中种下。
二、基础奠基:搭建知识的基石
- 编程语言的学习:学习鸿蒙开发,编程语言是第一步。鸿蒙支持多种语言,考虑到其应用开发中 Java 的广泛使用,我先从 Java 入手。通过在线课程、专业书籍以及编程练习网站,我系统学习了 Java 的基本语法、数据类型、面向对象编程等核心知识。每掌握一个新的语法点,就像是为我的编程大厦添上一块砖,逐渐构建起扎实的编程基础。在学习过程中,我也遇到了不少困难,比如复杂的类和对象关系理解、多态性的灵活运用等,但通过不断查阅资料、向他人请教,这些问题都一一得到了解决。
- 开发环境的搭建:当我对 Java 有了初步掌握后,便开始搭建鸿蒙开发环境。华为的 DevEco Studio 是鸿蒙开发的官方集成开发环境(IDE),从华为开发者官网下载安装过程还算顺利,但在配置环境变量、安装 SDK 等环节还是遇到了一些小波折,比如版本兼容性问题导致某些功能无法正常使用。好在通过仔细阅读官方文档和在开发者社区搜索解决方案,最终成功搭建好了开发环境,看到 DevEco Studio 中新建的鸿蒙项目成功运行出第一个简单界面时,那种成就感难以言表。
三、深入探索:掌握鸿蒙开发的精髓
- 鸿蒙系统架构剖析:深入学习鸿蒙,必须了解其系统架构。鸿蒙采用分层架构,从下往上依次为内核层、系统服务层、框架层和应用层。内核层的轻量级微内核设计,提供了高效的任务调度和资源管理;系统服务层丰富的系统服务,如设备管理、电源管理等,为上层应用提供了强大的支持;框架层的应用框架和 UI 框架,让开发者能够便捷地构建应用;应用层则直接面向用户,提供丰富多样的应用体验。通过阅读官方文档、观看技术讲座视频,我逐步理解了各层之间的关系和交互机制,这为后续的应用开发打下了坚实的理论基础。
- 应用开发实战:理论学习是为了更好地实践。我开始尝试开发一些简单的鸿蒙应用,从基本的界面布局开始,学习使用 ArkUI 声明式 UI 开发方式来构建用户界面。通过各种布局组件,如容器、文本、按钮等,我学会了如何设计出美观、易用的界面。同时,学习如何处理用户交互事件,如点击、滑动等,让应用能够响应用户操作。在这个过程中,我深刻体会到了鸿蒙开发的便捷性和高效性,同时也遇到了一些布局适配问题,不同设备的屏幕尺寸和分辨率需要进行针对性的调整,通过查阅官方的布局适配指南和不断尝试,我逐渐掌握了应对方法。
四、进阶之路:分布式能力与性能优化
- 分布式技术的学习:鸿蒙的分布式能力是其核心优势之一,也是我学习的重点方向。学习分布式软总线技术,让我了解到不同设备之间如何实现高速、稳定的数据传输;分布式数据管理,使我能够在多设备之间实现数据的同步和共享;分布式任务调度,让任务可以在不同设备上灵活迁移和协同执行。通过官方提供的分布式应用开发示例和相关教程,我动手实践了多个分布式应用场景,如手机与平板之间的协同办公、智能手表与手机之间的数据同步等,深刻感受到了鸿蒙分布式技术为用户带来的便捷体验。
- 性能优化的探索:随着应用开发的深入,性能优化成为了关键。我学习了如何使用性能分析工具,如 DevEco Studio 自带的性能分析插件,对应用的 CPU、内存、帧率等性能指标进行监测和分析。通过分析结果,我发现了应用中存在的性能瓶颈,如某些算法的复杂度较高导致计算时间过长、内存泄漏等问题。针对这些问题,我运用所学的知识进行优化,如优化算法、合理管理内存、异步加载数据等,经过不断的优化和测试,应用的性能得到了显著提升。
五、社区交流:汲取众人的智慧
在学习鸿蒙的过程中,我深刻体会到了开发者社区的重要性。鸿蒙开发者社区汇聚了来自世界各地的开发者,大家在这里分享经验、交流心得、解决问题。我经常在社区中浏览各种技术文章和问答,从其他开发者的实践中汲取灵感和经验。遇到问题时,我也会积极在社区中提问,往往能得到热心开发者的帮助和建议。同时,我还参与了一些社区组织的开源项目,与其他开发者一起合作开发,不仅提升了自己的技术能力,还结识了许多志同道合的朋友,共同推动鸿蒙生态的发展。
六、展望未来:持续学习与创新
经过这段时间的学习,我对鸿蒙开发有了较为深入的理解和掌握,也成功开发出了几个具有一定功能的鸿蒙应用。但我深知,鸿蒙技术还在不断发展和演进,新的特性和功能不断推出,万物互联的时代才刚刚开始。未来,我将继续保持学习的热情,关注鸿蒙的最新动态,不断提升自己的技术水平。我希望能够参与到更多更有挑战性的项目中,为鸿蒙生态的繁荣贡献自己的一份力量,同时也期待着鸿蒙系统在未来能够创造更多的可能性,真正实现万物互联的美好愿景。
相关文章:
我的鸿蒙学习之旅:探索万物互联的新宇宙
在科技飞速发展的今天,操作系统领域的创新层出不穷。华为鸿蒙系统的出现,犹如一颗璀璨的新星,照亮了万物互联的未来之路。怀着对新技术的好奇与渴望,我踏上了学习鸿蒙的征程,这段经历充满了挑战与惊喜,也让…...
Java 引入和使用jcharset,支持UTF-7字符集
一、背景说明 Java标准库不直接支持UTF-7字符集,但通过我们可以使用第三方库jcharset方便地处理UTF-7编码的数据。 二、引入说明 JDK8及以下版本,我们将jcharset.jar并将其放到${JAVA_HOME}/jre/lib/ext/下即可完成引入。 JDK17及以后版本,对…...
如何在Window计算机本地部署DeepSeek-r1模型
如何在Window计算机本地部署DeepSeek-r1模型 安装Ollama配置GPU加速(可选)部署DeepSeek-r1模型1.5b模型效果演示 本文介绍了如何使用Ollama在Windows计算机本地部署DeepSeek-r1模型。 安装Ollama 访问Ollama官网下载对应操作系统的安装包(支…...
取消和确认按钮没有显示的问题
取消和确认按钮没有显示的问题<template #footer> <template #footer> <!-- 使用插槽名称 #footer --> <span class"dialog-footer"> <el-button click"dialogVisible false">取消</el-button> …...
Python 操作列表(元组)
在本章中,你将学习如何遍历 整个列表,这只需要几行代码,无论列表有多长。循环让你能 够对列表的每个元素都采取一个或一系列相同的措施,从而高效地处理任何长度的列表,包括包含数千乃至数百万个元素的列表。 元组 列表…...
跳跃注意力模块(Skip Attention Module, SAM)详解及代码复现
定义与原理 跳跃注意力模块(Skip Attention Module, SAM)是一种创新的深度学习技术,旨在解决传统注意力机制在处理长序列数据时面临的挑战。它通过引入多跳机制,实现了对输入数据更全面、更细致的特征表示,从而提高了模型的性能。 定义 跳跃注意力模块是一种将多跳上下…...
搭建集成开发环境PyCharm
1.下载安装Python(建议下载并安装3.9.x) https://www.python.org/downloads/windows/ 要注意勾选“Add Python 3.9 to PATH”复选框,表示将Python的路径增加到环境变量中 2.安装集成开发环境Pycharm http://www.jetbrains.com/pycharm/…...
国防科大:双目标优化防止LLM灾难性遗忘
📖标题:How to Complete Domain Tuning while Keeping General Ability in LLM: Adaptive Layer-wise and Element-wise Regularization 🌐来源:arXiv, 2501.13669 🌟摘要 🔸大型语言模型(LLM…...
NacosRce到docker逃逸实战
NacosRce到docker逃逸实战 1、Nacos Derby Rce打入内存马 这个漏洞的原理大家应该都知道, 2.3.2 < Nacos < 2.4.0版本默认derby接口未授权访问,攻击者可利用未授权访问执行SQL语句加载构造恶意的JAR包导致出现远程代码执行漏洞。 在日常的漏洞挖…...
解释 Java 中的 HashMap 和 ConcurrentHashMap 的区别,以及 HashMap 的线程不安全性 ?
Java中的HashMap和ConcurrentHashMap的区别 HashMap 和 ConcurrentHashMap 是Java中两种常用的Map实现,它们在多线程环境下的表现有很大的不同。 HashMap HashMap 是非线程安全的,这意味着在多线程环境下使用 HashMap 可能会导致数据不一致或其他并发…...
在Vue3 + Vite 项目中使用 Tailwind CSS 4.0
文章目录 首先是我的package.json根据官网步骤VS Code安装插件验证是否引入成功参考资料 首先是我的package.json {"name": "aplumweb","private": true,"version": "0.0.0","type": "module","s…...
【戒抖音系列】短视频戒除-2-(移动端)定时关闭抖音等短视频
视频会影响人的潜意识。某种情况下,短视频已经成为了一种毒药,会让人上瘾的毒药。 短视频会让人上瘾,但是音频就太容易引起上瘾。因为没有图像传入到大脑当中,也就不会分泌更多的“多巴胺”,就不会影响到大脑。 如果抖…...
C语言基础系列【2】开发环境搭建
选择合适的编译器 在C语言或者C这种编译型语言开发中,编译器是必不可少的工具。它将C语言源代码转换为机器代码,使程序能够在计算机上运行。 常见的C语言编译器包括GCC(GNU Compiler Collection,GNU编译器套件)、Cla…...
vs 编译错误 error C4996
编译出错:error C4996: Json::Reader::Reader: Use CharReader and CharReaderBuilder instead : 参见“Json::Reader::Reader”的声明 新版本已经标志Json::Reader::Reader为废弃接口,编译情况下可能会出错提示,根据编译器的不同ÿ…...
扣子平台的选择器节点:让智能体开发更简单,扣子免费系列教程(17)
欢迎来到涛涛聊AI。今天,我们来聊聊一个非常实用的工具——扣子平台的选择器节点。即使你不是计算机专业人员,但对计算机操作比较熟悉,这篇文章也能帮你快速上手。我们会从基础知识讲起,一步步带你了解选择器节点的使用方法和应用…...
使用Nuxt.js实现服务端渲染(SSR):提升SEO与性能的完整指南
使用Nuxt.js实现服务端渲染(SSR):提升SEO与性能的完整指南 使用Nuxt.js实现服务端渲染(SSR):提升SEO与性能的完整指南1. 服务端渲染(SSR)核心概念1.1 CSR vs SSR vs SSG1.2 SSR工作原…...
java 进阶教程_Java进阶教程 第2版
第2版前言 第1版前言 语言基础篇 第1章 Java语言概述 1.1 Java语言简介 1.1.1 Java语言的发展历程 1.1.2 Java的版本历史 1.1.3 Java语言与C/C 1.1.4 Java的特点 1.2 JDK和Java开发环境及工作原理 1.2.1 JDK 1.2.2 Java开发环境 1.2.3 Java工作原理 1.…...
shell编程(2)——shell脚本执行、传参、变量定义、注释
1、执行shell脚本 执行方式举例shsh xx.shsourcesource xx.sh点号.. xx.sh直接使用命令解释器bash xx.sh使用绝对路径或者相对路径./xx.sh daizhixin:shell$ sh test.sh hell0 world! daizhixin:shell$ source test.sh hell0 world! daizhixin:shell$ . test.sh hell0 wor…...
享元模式——C++实现
目录 1. 享元模式简介 2. 代码示例 1. 享元模式简介 享元模式是一种结构型模式。 享元模式用于缓存共享对象,降低内存消耗。共享对象相同的部分,避免创建大量相同的对象,减少内存占用。 享元模式需要将对象分成内部状态和外部状态两个部分…...
c++ Base64编码
介绍 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 需要注意的是:标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“”字符变为形如“…...
SSRF 漏洞利用 Redis 实战全解析:原理、攻击与防范
目录 前言 SSRF 漏洞深度剖析 Redis:强大的内存数据库 Redis 产生漏洞的原因 SSRF 漏洞利用 Redis 实战步骤 准备环境 下载安装 Redis 配置漏洞环境 启动 Redis 攻击机远程连接 Redis 利用 Redis 写 Webshell 防范措施 前言 在网络安全领域࿰…...
react的antd表格自定义图标
将原版的加号换成箭头 自定义图标 安装图标包: npm install --save ant-design/icons 引入: import { RightOutlined, DownOutlined } from ant-design/icons; 参数是一个函数 <Table columns{columns} dataSource{data} indentSize{20}expandIc…...
Games104——游戏引擎Gameplay玩法系统:基础AI
这里写目录标题 寻路/导航系统NavigationWalkable AreaWaypoint NetworkGridNavigation Mesh(寻路网格)Sparse Voxel Octree Path FindingDijkstra Algorithm迪杰斯特拉算法A Star(A*算法) Path Smoothing Steering系统Crowd Simu…...
Java 2024年面试总结(持续更新)
目录 最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。 面试问题(答案是我自己总结的,不一定正确): 总结: 最近趁着金三银四面了五六家公…...
亚博microros小车-原生ubuntu支持系列:22 物体识别追踪
背景知识 跟上一个颜色追踪类似。也是基于opencv的,不过背后的算法有很多 BOOSTING:算法原理类似于Haar cascades (AdaBoost),是一种很老的算法。这个算法速度慢并且不是很准。MIL:比BOOSTING准一点。KCF:速度比BOOST…...
JAVA异步的TCP 通讯-客户端
一、客户端代码示例 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.CompletionHandler; import java.util.concurrent.ExecutorService; impo…...
python:递归函数与lambda函数
递归函数:1.函数内调用自己 2.有一个出口 1.递归 一.有出口时 def sum(num):if num1:return 1return numsum(num-1) asum(3) print(a) #num3 3sum(2) #num2 2sum(1) #num1是返回1 #即3sum(2)即32sum(1)即321运行结果 6 二.无出口时 def sum(num)…...
G1相对于CMS的的优势
1.G1在压缩空间方面有优势。 2.G1通过将内存空间分成区域(Region)的方式避免内存碎片问题 3.Eden、Survivor、Old区不再固定,在内存使用率上来说更灵活 4.G1可以通过设置预期停顿时间(Pause Time)来控制垃圾收集时间…...
java进阶之并发编程一ReentrantLock的实际应用和线程中断EXAMPLE
引言:继上一篇ReentrantLock的介绍来做俩个小demo。 实现3个线程分别打印指定数字和线程死锁进行线程中断。 上一篇:<<java进阶之并发编程一ReentrantLock同步锁的学习和syncthronized的区别>> **demo1:**ReentrantLock搭配三个线程分别打印指定的数字,直接上代…...
消费kafka消息示例
以下是使用 Java 结合 Spring Kafka 框架来监听 updated-topic-test 这个 Kafka Topic 的详细实现步骤及代码示例,用于捕获人员信息变更的事件。 1. 添加依赖 在 pom.xml 文件中添加 Spring Kafka 相关依赖: <dependencies><!-- Spring Boot…...
