角宿-基于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)庫.
??https://harmonyos.51cto.com??

































