角宿-基于OpenHarmony成長計劃知識賦能的學(xué)習(xí)筆記
原創(chuàng)??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
??https://harmonyos.51cto.com??
引言
鑒于本人是北向開發(fā),所以涉及到南向的資料目前暫不展開。同時自己覺得已經(jīng)掌握且重要性沒有那么高的文檔暫不展開。Q&A這部分是特別有幫助的!
一、OpenHarmony開發(fā)者成長圖譜
1.基于HarmonyOS DevEco Service Playground的體驗
web環(huán)境體驗鴻蒙特性:HarmonyOS DevEco Service Playground
- 【 秒級體驗】 To- D o L i s t。特性:一次開發(fā)、多設(shè)備部署
- 【 秒級體驗】 聯(lián) 系 人。特性:分布式任務(wù)調(diào)度,分布式遠(yuǎn)程設(shè)備通訊
這兩個秒級案例,很直接很方便的呈現(xiàn)出一些基于OpenHarmony特性的案例,其中我對To-Do-List修改List的樣式后,在手機,手表,平板的三臺設(shè)備中List的樣式都直接改變了。然后在第二個聯(lián)系人的應(yīng)用中,我只修改JS中的某個聯(lián)系人的名字和電話,三臺設(shè)備所呈現(xiàn)的頁面也相應(yīng)改變了。
- 最后,在HarmonyOS DevEco Service Playground上還有6款應(yīng)用,這些應(yīng)用都是基于Web環(huán)境的,即可以很快的體驗到。(基于設(shè)備開發(fā)和基于應(yīng)用開發(fā)都有)
二、從0到1,玩轉(zhuǎn) OpenHarmony
from:李傳釗老師
號外:大家可以關(guān)注李傳釗老師的B站賬號,同時我也很期待4月份老師即將分享的OpenHarmony的完整運行框架!
Part 1:什么是編程?
這一部分對我印象最深的是,編程是對真實世界的抽象,是0與1的構(gòu)建,當(dāng)然老師用三部電影舉例,也特別的接地氣。我認(rèn)為編程的最終目的還是要作用在真實世界,無論是改造客觀世界,還是改造主觀世界。
Part 2;OpenHarmony是神馬?
這里有個方法論:就是怎么快速了解新事物
- 看它的定位
- 跟同行比,看它的競爭對手
關(guān)于OpenHarmony的從三個方面去理解:
- Kernel(內(nèi)核):Fuchsia是谷歌的幾年前推出的一個新的kernel,是微內(nèi)核。
- IOT OS(嵌入式操作系統(tǒng)):RTOS(實時性操作系統(tǒng))結(jié)合特定的硬件完成特定的任務(wù),然后把這東西燒錄到硬件里,形成軟硬件的一個整體。(注意:手機是嵌入式設(shè)備)
- Mobile OS(移動手機操作系統(tǒng)):雙寡頭的格局(HarmonyOS沒出來之前)
多內(nèi)核設(shè)計及LiteOS-m/LiteOS-a內(nèi)核:
輕量和小型都對應(yīng)是嵌入式設(shè)備,其區(qū)別最主要的是看有沒有MMU,輕量系統(tǒng)就是沒有MMU,小型系統(tǒng)就是有MMU。(標(biāo)準(zhǔn)系統(tǒng)上還是推薦Linux)
LiteOS-m是比較標(biāo)準(zhǔn)的實時操作系統(tǒng)的架構(gòu),比較輕量,簡單適合控制一些小型的東西
LiteOS-a是實現(xiàn)了用戶態(tài)和內(nèi)核態(tài)的分離,讓應(yīng)用開發(fā)者寫一些進(jìn)程來控制邏輯,LiteOS-a比LiteOS-m復(fù)雜,但是比Linux簡單
做設(shè)備開發(fā)基本用的是LiteOS-m,所以要做什么事情的時候務(wù)必需要理解LiteOS-m里面有啥東西
MMU是Memory Management Unit的縮寫,中文名是內(nèi)存管理單元,有時稱作分頁內(nèi)存管理單元(英語:paged memory management unit,縮寫為PMMU)。它是一種負(fù)責(zé)處理中央處理器(CPU)的內(nèi)存訪問請求的計算機硬件
Part 3:鴻蒙是什么?
關(guān)鍵:中國的操作系統(tǒng)
- 鴻蒙是華為開發(fā)的操作系統(tǒng)
- 鴻蒙是手機上除了iOS和安卓以外的選擇
- 鴻蒙是面向物聯(lián)網(wǎng)的操作系統(tǒng)
- 鴻蒙是面向全場景的分布式操作系統(tǒng)
- 鴻蒙是屬于中國的操作系統(tǒng)
- OpenHarmony是開源操作系統(tǒng)
Part 4 :我們要干什么?
任務(wù)一:做APP
- 2-4周學(xué)Java
- 利用“數(shù)字管家”
- 使用IDE把App安裝到手機上
任務(wù)二:做硬件
- 在開發(fā)板的基礎(chǔ)上做硬件(開發(fā)板是產(chǎn)品PCB的前身,是用來做試驗性開發(fā))
- 注入靈魂
- 嵌入式開發(fā)與OpenHarmony南向開發(fā)是有區(qū)別的(看有沒有安裝OpenHarmony的套路去寫程序)
任務(wù)三:做系統(tǒng)
- 不只是一個孤立的設(shè)備
- 設(shè)備與設(shè)備之間要有通信,要有協(xié)議
- 設(shè)備與設(shè)備之間要有工作流程
- 需要聯(lián)調(diào)測試(手機與硬件聯(lián)調(diào)測試)
Part 5:步驟與寫代碼用啥?編譯用啥?燒錄用啥?調(diào)試咋調(diào)試?
- 寫代碼->編譯->燒錄->調(diào)試->寫代碼
- 不斷重復(fù)
編譯用啥:WSL2(安裝簡單->功能齊全->隨叫隨到->直接拷貝)
- 安裝Microsoft文檔安裝 WSL
燒錄用HiBurn(HiBurn是海思出的匹配最好)
- 我看一篇帖子:海思入門筆記二:HiBurn工具實現(xiàn)鏡像燒寫
- 選擇allinone快速燒過去,可設(shè)置高波特率
調(diào)試是怎么調(diào)試:印象最深的是:程序出問題,百分之99是自己的代碼問題!!
快速定位問題的方法:
- 分類排除法
- 逐次逼近法
- 百度谷歌法
- 場外救援法
Part 6:Q&A
- 整個IT包括:軟件,硬件,通信
- 設(shè)備端主要是:C語言,C++都不是很好使
- HDF驅(qū)動開發(fā)(看源碼,學(xué)別人,嘗試做)
- OpenHarmony為什么不可以在Windows上編譯:如果要在Windows上編譯就需要用到MinGW,但Windows的命令行長度是有限制的,但OpenHarmony編譯的命令行超出了這個限制,跑不下去。
- OpenHarmony作為手機作為手機操作系統(tǒng)(大概是2022年)
MinGW,是Minimalist GNU for Windows的縮寫。它是一個可自由使用和自由發(fā)布的Windows特定頭文件和使用GNU工具集導(dǎo)入庫的集合,允許你在GNU/Linux和Windows平臺生成本地的Windows程序而不需要第三方C運行時(C Runtime)庫。MinGW 是一組包含文件和端口庫,其功能是允許控制臺模式的程序使用微軟的標(biāo)準(zhǔn)C運行時(C Runtime)庫.
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
??https://harmonyos.51cto.com??