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