作为一个开发者,如何更好的学习鸿蒙?

Posted 懂你的大海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作为一个开发者,如何更好的学习鸿蒙?相关的知识,希望对你有一定的参考价值。

在 HarmonyOS社区「极客Show」先行者说栏目里,鸿蒙的先行者们为我们对关鸿蒙的一些问题做出了详细解答,这里对其中老师的回复做出了相关整理,希望能对大家有所帮助。

作为一个开发者,如何更好的学习鸿蒙,持续的跟进鸿蒙相关技术,有什么建议?

朱有鹏老师表示,鸿蒙的学习是比较系统化的,对于大部分人来说,应该去试图整体的了解鸿蒙,在了解过后再根据自己的职场定位去制作自己个人的发展规划。

在这里朱老师以鸿蒙的系统层开发为例,举出鸿蒙的系统层开发是典型的嵌入式开发,和传统的 Linux 系统开发是非常接近的。

在 Linux 中这一块分为驱动开发和应用开发,驱动开发是指系统级开发,目标是开发 Linux 内核。

当然在 Linux 内核的诸多组件中我们选用的是驱动组件,对于以上述的嵌入式开发,在同样开发鸿蒙驱动中也同样有很多针对于内核开发者和驱动开发者关于移植的需求。

鸿蒙的机会远不止于此,再例如基于 C,C++ 传统的应用开发,基于 JS 语言鸿蒙系统的 SDK API 纯应用层,基于 Java,C++ 对应的传统的安卓 APP 开发等等。

对于上述的所说的需求,我们需要基于自己本身的定位寻找适合自己的机会去做针对性的学习。

一个新的系统爆发肯定会出现一个短暂的人才窗口期,根据历史规律,每过一段时间都会产生新的技术诞生出新的机会。

在之前的安卓,ios,Linux 驱动开发者们都享受过相对应的红利,所以大家如果能找准方向,结合自己的优势选择性的学习,培养自己的技能,可能是能找到一些个人的提升机会。

李宁老师表示,鸿蒙的开发可以参考安卓,从大方向两者都分为北向和南向,北向为 APP 开发,南向主要为系统,以及涉及两边的 Framework,Framework一部分为 Java 制作还有一部分为 C 和 C++ 制作,在分类上可以算为中层。

鸿蒙现在分为轻鸿蒙和富鸿蒙,在这个基础下又各有北,中,南三个方向,所以一共 6 个方向,一般选择一个方向学习就可以了。

在方向确定后,肯定是要学习相关的技术,通过相关文档进行学习,如果想快速入门的同学,也可以上 腾讯课堂 来学习相关的课程,书籍和视频。

这些课程是根据官方的文档和相关实战的案例来进行准备的,从而来帮助人们对鸿蒙进行更好的学习。

随后李宁老师也介绍了自己的课程主要分为轻鸿蒙和富鸿蒙,从课程的具体内容将会分为纯 APP 开发,以及和智能硬件结合的开发来进行讲解。

张荣超老师表示,在学习鸿蒙方面,有些学习者的基础比较薄弱,比如英语不行无法阅读文档等问题,时间长了就会丧失对学习的信心。

为了帮助大家更好的入门以及深入的学习鸿蒙的课程,几位老师老师都会录制相应的课程来帮助大家学习,从而降低学习的成本,让大家在学习完后再去阅读相关的文档和做一些 APP 的开发会感到非常的容易和轻松。

随后张荣超老师谈到自身的方向主要侧重于北向一些应用开发的课程,将会以项目的形式带领大家从零开始手把手把完整的代码敲出来,并对每一行代码进行讲解,同时也会跟随鸿蒙产品的发布节奏来录制相关视频和图书。

朱有鹏老师随后指出了鸿蒙系统中的根技术一词,比如 APP 开发就是根的枝叶,而操作系统就是根的根基,没有操作系统,APP 自然就无法使用。

朱老师表示自己的课程为南向,也就是所谓的底层课程,如何在课程中用根技术的思维去做根课程,让课程去培养学习者们的一些根能力。

比如如何学会自己学习,如何去做一些编译器相关的工作,如何去学习操作系统的底层以及组件相关的工作,将会是一个发展方向,同时鸿蒙作为第一个国产的操作系统,肯定会需要这样相关的人才。

鸿蒙朱老师表示,这肯定不是最后一个国产操作系统,因为操作系统的分区是非常明显的。

比如服务器肯定不适合用鸿蒙在上面运行,我们需要其他的操作系统的来对服务器进行支持,而制作这些操作系统就需要大量的开发人员。

所以朱老师表示在后续的课程中能否融入相关的设计和内容,让大家能具备这种开发能力,成为为产业的工程师,将会是朱老师主要的努力方向。

李宁老师也建议大家先从 Linux 操作系统进行研究,先用 Linux 内核和文件系统搭建一个不考虑性能的操作系统,来了解整个 Linux 系统的运作,然后研究 Linux 的代码和鸿蒙的代码,并不太建议直接阅读鸿蒙的源码,以免入门过于困难。

鸿蒙作为一个新技术,肯定有许多我们还不够了解的技术,独自一人摸爬滚打是非常吃力的,而且效率并不高,所以我在这里拿出来我收藏的笔记:点击这里免费下载获取!点击这里免费自取!!

 

 

除开这份大牛的鸿蒙学习笔记之外,还有其他大佬绘制的鸿蒙学习路线图,在这里也拿出来给大家:

 

架构师筑基必备技能

目前android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

JAVA知识要点:
1、 Java序列化、泛型与反射
2、虚拟机底层原理
3、Android内存原理
4、 Java高级并发原理详解
5、 编译时技术掌握与实战
6、JDK高级动态代理
7、高级数据结构与算法
8、 Java IO操作
9、
。。。。

image

Android R FrameWork源码与UI

在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。

UI其实并不是单纯指用户看到的效果。因为在Android开发中,每个控件背后都有一套深层次的体系在支撑,自然而然,会UI不单纯指的是会自定义控件,我们还应该知道自定义控件背后的执行流程,包括从Activity的创建,XML的解析,到每个控件的测量、布局、绘制。当然在中间还夹杂着比如动画、事件分发机制、嵌套滑动机制等知识点。还有谷歌提供的一些UI框架也使我们要掌握的对象,比如Jetpack组件库、Material Design等。

知识要点:
1、 FrameWork源码解析(SDK 30)
2、Android常用组件深入解析
3、JetPack全家桶
4、Android R新特性解析
。。。。。

image

大厂内部APP调优方案

性能优化是一个项目必须要经历的过程,你的应用好与坏都是在用户使用的过程中反映出来的,如果性能优化没有做好,对于你的应用来说影响是非常大的。尤其是现在的Android市场竞争非常激烈,如果你的应用体验没有竞品的好,那么用户流失是必然的。

性能优化不是一件简单的事情,每个应用的性能好与坏无法由一个人来决定,因为性能优化的维度有太多了,从我们项目的整体架构,到我们代码的每一个细节,再到应用使用环境的测试,只有步步为营,才能做好一个项目的优化。大部分开发者把性能优化指向与不闪退就行,但是实际上性能优化包含了很多方面,比如从简单的启动优化、 UI优化、 卡顿优化、 崩溃优化、 安全性优化,到深层次的弱网优化、 大图加载优化、 储存优化、 高效传输优化、 极限瘦身优化,再到实际开发过程中的OOM问题原理解析、 ANR问题解析、 Crash监控方案。要想把这些优化流程做好,我们不仅从项目架构、代码规范等方面入手,还用学会利用第三方的检测工具来检测项目性能,最主要是,我们需要一套完整的性能优化方案,这正是我们所缺少的,所以我们必须要把缺少的补上, 打造一套真正的完整的性能优化体系,把性能优化流程化,常态化。

1、 APP基础优化
2、APP深度优化
3、开发焦点问题优化
4、编程效率优化
5、项目实战
抖音在APK包大小资源优化的实践
优酷响应式布局技术全解析
网络优化
手机淘宝双十一性能优化项目揭秘
高德APP全链路源码依赖分析
彻底干掉OOM的实战经验分享
微信Android终端内存优化实践

image

对标腾讯T3.3架构师

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、架构师设计思想篇
2、 手淘全套架构设计与实现
3、 开源框架
4、OKHttp网络框架
5、一线大厂核心框架剖析与实现

image

NDK模块开发(音视频系列)

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

image

Flutter学习进阶

2019 年无疑是 Flutter 技术如火如荼发展的一年。

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

image

微信小程序开发

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

image

由于篇幅原因,如有需要以上完整学习笔记PDF,可以点击这里免费自取!!

以上是关于作为一个开发者,如何更好的学习鸿蒙?的主要内容,如果未能解决你的问题,请参考以下文章

鸿蒙开发环境的搭建

如何看待鸿蒙应用开发框架采用JavaScript作为开发语言?

鸿蒙系统开发工具DevEco Studio 2.2下载/安装教程

华为鸿蒙HarmonyOS开发者日月底来袭 7月底杭州见

鸿蒙-南向轻内核开发实战系列基于小熊派鸿蒙季开发板环境搭建

作为一名Android开发人员,怎么能不快速掌握互联网热门技术!开经络,识秘籍:《Jetpack Compose + 鸿蒙入门指南》