角宿-基于OpenHarmony成长计划知识赋能的学习笔记
https://harmonyos.51cto.com
引言
鉴于本人是北向开发,所以涉及到南向的资料目前暂不展开。同时自己觉得已经掌握且重要性没有那么高的文档暂不展开。Q&A这部分是特别有帮助的!
一、OpenHarmony开发者成长图谱
1.基于HarmonyOS DevEco Service Playground的体验
web环境体验鸿蒙特性:HarmonyOS DevEco Service Playground
- 【 秒级体验】 To- D o L i s t。特性:一次开发、多设备部署
- 【 秒级体验】 联 系 人。特性:分布式任务调度,分布式远程设备通讯
这两个秒级案例,很直接很方便的呈现出一些基于OpenHarmony特性的案例,其中我对To-Do-List修改List的样式后,在手机,手表,平板的三台设备中List的样式都直接改变了。然后在第二个联系人的应用中,我只修改JS中的某个联系人的名字和电话,三台设备所呈现的页面也相应改变了。
- 最后,在HarmonyOS DevEco Service Playground上还有6款应用,这些应用都是基于Web环境的,即可以很快的体验到。(基于设备开发和基于应用开发都有)
二、从0到1,玩转 OpenHarmony
from:李传钊老师
号外:大家可以关注李传钊老师的B站账号,同时我也很期待4月份老师即将分享的OpenHarmony的完整运行框架!
Part 1:什么是编程?
这一部分对我印象最深的是,编程是对真实世界的抽象,是0与1的构建,当然老师用三部电影举例,也特别的接地气。我认为编程的最终目的还是要作用在真实世界,无论是改造客观世界,还是改造主观世界。
Part 2;OpenHarmony是神马?
这里有个方法论:就是怎么快速了解新事物
- 看它的定位
- 跟同行比,看它的竞争对手
关于OpenHarmony的从三个方面去理解:
- Kernel(内核):Fuchsia是谷歌的几年前推出的一个新的kernel,是微内核。
- IOT OS(嵌入式操作系统):RTOS(实时性操作系统)结合特定的硬件完成特定的任务,然后把这东西烧录到硬件里,形成软硬件的一个整体。(注意:手机是嵌入式设备)
- Mobile OS(移动手机操作系统):双寡头的格局(HarmonyOS没出来之前)
多内核设计及LiteOS-m/LiteOS-a内核:
轻量和小型都对应是嵌入式设备,其区别最主要的是看有没有MMU,轻量系统就是没有MMU,小型系统就是有MMU。(标准系统上还是推荐Linux)
LiteOS-m是比较标准的实时操作系统的架构,比较轻量,简单适合控制一些小型的东西
LiteOS-a是实现了用户态和内核态的分离,让应用开发者写一些进程来控制逻辑,LiteOS-a比LiteOS-m复杂,但是比Linux简单
做设备开发基本用的是LiteOS-m,所以要做什么事情的时候务必需要理解LiteOS-m里面有啥东西
MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件
Part 3:鸿蒙是什么?
关键:中国的操作系统
- 鸿蒙是华为开发的操作系统
- 鸿蒙是手机上除了iOS和安卓以外的选择
- 鸿蒙是面向物联网的操作系统
- 鸿蒙是面向全场景的分布式操作系统
- 鸿蒙是属于中国的操作系统
- OpenHarmony是开源操作系统
Part 4 :我们要干什么?
任务一:做APP
- 2-4周学Java
- 利用“数字管家”
- 使用IDE把App安装到手机上
任务二:做硬件
- 在开发板的基础上做硬件(开发板是产品PCB的前身,是用来做试验性开发)
- 注入灵魂
- 嵌入式开发与OpenHarmony南向开发是有区别的(看有没有安装OpenHarmony的套路去写程序)
任务三:做系统
- 不只是一个孤立的设备
- 设备与设备之间要有通信,要有协议
- 设备与设备之间要有工作流程
- 需要联调测试(手机与硬件联调测试)
Part 5:步骤与写代码用啥?编译用啥?烧录用啥?调试咋调试?
- 写代码->编译->烧录->调试->写代码
- 不断重复
编译用啥:WSL2(安装简单->功能齐全->随叫随到->直接拷贝)
- 安装Microsoft文档安装 WSL
烧录用HiBurn(HiBurn是海思出的匹配最好)
- 我看一篇帖子:海思入门笔记二:HiBurn工具实现镜像烧写
- 选择allinone快速烧过去,可设置高波特率
调试是怎么调试:印象最深的是:程序出问题,百分之99是自己的代码问题!!
快速定位问题的方法:
- 分类排除法
- 逐次逼近法
- 百度谷歌法
- 场外救援法
Part 6:Q&A
- 整个IT包括:软件,硬件,通信
- 设备端主要是:C语言,C++都不是很好使
- HDF驱动开发(看源码,学别人,尝试做)
- OpenHarmony为什么不可以在Windows上编译:如果要在Windows上编译就需要用到MinGW,但Windows的命令行长度是有限制的,但OpenHarmony编译的命令行超出了这个限制,跑不下去。
- OpenHarmony作为手机作为手机操作系统(大概是2022年)
MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库.