華為的鴻蒙系統(tǒng)在2019年正式發(fā)布,2020年升級(jí)到2.0版本并且正式對(duì)所有開發(fā)者開源,那個(gè)時(shí)候我就已經(jīng)簡單評(píng)測過這個(gè)開源系統(tǒng)了,只是一直沒有發(fā)布相關(guān)的博客,然后最近有粉絲私信我希望我出一下鴻蒙相關(guān)的文章,所以就有了這個(gè)系列。
1 HarmonyOS簡介
華為鴻蒙系統(tǒng)是一款全新的面向全場景的分布式操作系統(tǒng),創(chuàng)造一個(gè)超級(jí)虛擬終端互聯(lián)的世界,將人、設(shè)備、場景有機(jī)地聯(lián)系在一起,將消費(fèi)者在全場景生活中接觸的多種實(shí)現(xiàn)極速發(fā)現(xiàn)、極速連接、硬件互助、資源共享,用合適的設(shè)備提供場景體驗(yàn)。
從古到今出現(xiàn)過很多操作系統(tǒng),其中也有很多優(yōu)秀的架構(gòu),但是絕大部分都夭折了,消失在人們的視野范圍。而對(duì)于鴻蒙追求的這種萬物互聯(lián),我還是挺看好的,而且在華為這個(gè)大企業(yè)的全力推進(jìn)下,鴻蒙目前的發(fā)展還算順利,一旦鴻蒙站穩(wěn)了腳跟,成為繼IOS和安卓之后的第三個(gè)主流系統(tǒng),那么鴻蒙系統(tǒng)的開發(fā)人員就成了香餑餑,因?yàn)槟壳岸櫭傻娜撕苌伲?jīng)驗(yàn)豐富的更少,第一批敢于下水的鴨子就成了最大的受益者之一。當(dāng)然,如果鴻蒙系統(tǒng)最終夭折了,那一切都是浮云,留給我們的可能只有經(jīng)驗(yàn)和教訓(xùn)了。
2 開發(fā)環(huán)境搭建
HarmonyOS的編譯工具鏈主要以Linux系統(tǒng)下的開發(fā)為主,因此我們需要先搭建Linux的環(huán)境,用于程序編譯。而這個(gè)編譯完的固件最終需要燒錄到硬件上,所以我們還需要在Windows下安裝一些工具用于燒錄和調(diào)試。
下面的 2.1 (簡潔版環(huán)境搭建)
和 2.2(復(fù)雜版環(huán)境搭建)
選擇其中一種方式即可,建議選擇第一種。
特別說明:我這里是基于海思Hi3861這個(gè)IC來運(yùn)行和測試鴻蒙操作系統(tǒng)的。這里搭建的環(huán)境只是為了編譯源碼,最終是燒錄到這個(gè)IC上面跑的。
2.1 簡潔版環(huán)境搭建(使用已經(jīng)搭建好HarmonyOS環(huán)境的鏡像)
推薦用這種方式搭建環(huán)境,比較省時(shí)省力。
2.1.1 安裝虛擬機(jī)和Linux鏡像
關(guān)于虛擬機(jī)搭建Linux環(huán)境相關(guān)的教程有很多,我這里就不詳細(xì)講解了,不懂的同學(xué)請自行查閱資料。
Linux鏡像要安裝下面這個(gè)鏈接里面的,這個(gè)鏡像已經(jīng)把HarmonyOS需要的開發(fā)環(huán)境搭好了,下載完解壓即可。
鏈接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取碼:tn12
VMware Workstation下載安裝好了之后點(diǎn)擊“打開虛擬機(jī)”(注意是打開不是創(chuàng)建),選擇上面解壓好的鏡像文件安裝即可。
選擇鏡像。
提示:新虛擬機(jī)的存儲(chǔ)路徑建議選擇剩余空間10GB以上的盤。
安裝完直接打開虛擬機(jī)即可。默認(rèn)用戶和密碼:bearpi
,打開后可以自行修改。
2.2 復(fù)雜版環(huán)境搭建(基于普通Ubuntu搭建HarmonyOS環(huán)境)
如果想自己體驗(yàn)一遍HarmonyOS開發(fā)環(huán)境搭建的話可以試下,不太建議使用該方法,因?yàn)闆]什么必要,HarmonyOS的編程開發(fā)才是重點(diǎn)。
提示:如果選擇了2.1的方式,那現(xiàn)在直接跳到第3步即可。
2.2.1 安裝虛擬機(jī)和Linux鏡像
關(guān)于虛擬機(jī)搭建Linux環(huán)境相關(guān)的教程有很多,我這里就不詳細(xì)講解了,不懂的同學(xué)請自行查閱資料。
提示:Linux鏡像要Ubuntu16.04及以上64位系統(tǒng)版本。
2.2.2 將Linux shell設(shè)置為bash
打開Linux終端,輸入如下命令查看shell是否為bash
ls -l /bin/sh
提示:如果為顯示為/bin/sh -> bash
則為正常,否則請按以下方式修改。
方法一:在終端運(yùn)行如下命令,然后選擇 no。
sudo dpkg-reconfigure dash
方法二:先刪除sh,再創(chuàng)建軟鏈接。
rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
2.2.3 安裝Python環(huán)境
我們需要在Linux的環(huán)境下安裝Python作為構(gòu)建編譯工具,一般版本新一點(diǎn)的Ubuntu都是自帶了Pythond,如果沒有則需要自己安裝,安裝包可以在官網(wǎng)下載,也可以在下面的鏈接下載。
提示:要保證Pythond版本在3.7以上。
sudo apt-get install python3.8
sudo apt-get install python3-pip
sudo pip3 install setuptools
sudo pip3 install kconfiglib
建議安裝kconfiglib 13.2.0+版本
sudo pip3 install pycryptodome
sudo pip3 install six --upgrade --ignore-installed six
sudo pip3 install ecdsa
如果當(dāng)前系統(tǒng)中既存在python2又存在python3,參考以下方法將默認(rèn)python修改為python3
ll `which python`
sudo rm /usr/bin/python
sudo ln -s python3.8 /usr/bin/python
2.2.4 安裝SCons
1)運(yùn)行如下命令,安裝SCons安裝包
sudo apt-get install scons -y
提示:如果軟件源中無法找到安裝包,請按以下步驟處理:
a)下載源碼包(下載路徑:“ https://scons.org/pages/download.html ”
,推薦SCons版本是3.0.4+)。
b)解壓源碼包到任意目錄(以scons-3.1.2為例)。
c)安裝源碼包:進(jìn)入解壓目錄,運(yùn)行如下命令:
tar -xvf scons-3.1.2.tar.gz
sudo python3 setup.py install
2)查看版本
scons -v
2.2.5 安裝編譯工具
1)下載工具
開發(fā)工具 | 用途 | 獲取途徑 |
---|---|---|
gn | 產(chǎn)生ninja編譯腳本 | https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar |
ninja | 執(zhí)行ninja編譯腳本 | https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar |
交叉編譯器gcc_riscv32 | 交叉編譯工具 | https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz |
2)解壓安裝包
tar -xvf gn.1523.tar -C ~/
tar -xvf ninja.1.9.0.tar -C ~/
tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/
3)設(shè)置環(huán)境變量
vim ~/.bashrc
將以下命令拷貝到.bashrc文件底部
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
生效環(huán)境變量
source ~/.bashrc
4)查看版本
riscv32-unknown-elf-gcc -v
3 Windows工具安裝
代碼編譯是在Linux環(huán)境執(zhí)行的,但是固件燒錄和調(diào)試要在Windows下操作,所以還需要安裝一些工具。
3.1 Hiburn(必要)
Hiburn是代碼燒錄工具,可以在下面的鏈接下載。
下載鏈接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取碼:tn12
3.2 MobaXterm
MobaXterm是一個(gè)很好用的調(diào)試工具,我們可以使用MobaXterm來遠(yuǎn)程控制虛擬機(jī)的Linux,用MobaXterm替代Linux的終端。說到這里,可能有些同學(xué)會(huì)有疑惑,為什么不直接在Linux上運(yùn)行終端呢?
雖然虛擬機(jī)跟MobaXterm都是在同一個(gè)電腦上面操作,但是有些操作使用MobaXterm會(huì)比虛擬機(jī)上的操作更方便,而且MobaXterm還可以遠(yuǎn)程操作。具體看個(gè)人使用,這個(gè)不是必須要用的。
MobaXterm官方下載地址:https://mobaxterm.mobatek.net
除了MobaXterm,其實(shí)還有其他工具也很好用,比如Xshell。這個(gè)看個(gè)人習(xí)慣吧,我這里只是推薦。
3.3 RaiDrive
這是一個(gè)可以將ubuntu文件遠(yuǎn)程映射到Windows上面的一個(gè)軟件,有了這個(gè)軟件,我們可以用windows下的軟件去查看修改ubuntu上面的文件,對(duì)于沒用過Linux的新手而言,Linux的操作方式可能會(huì)很不習(xí)慣,也不方便,但是映射到windows之后操作起來就會(huì)方便很多。
下載鏈接:https://pan.baidu.com/s/188RAGBPTMv34b6UF9nk0Hg
提取碼:tn12
使用方法如下:
1) 打開上面配置好的Linux操作系統(tǒng),并且在終端輸入ifconfig命令查看IP地址。
2) 打開RaiDrive,語言切換成中文。
3) 按下圖配置。
提示:ip地址以實(shí)際虛擬機(jī)運(yùn)行的這個(gè)Linux操作系統(tǒng)實(shí)際使用的ip地址為準(zhǔn)(也就是上面第1步查到的那個(gè)),賬號(hào)密碼是Linux系統(tǒng)的登錄賬號(hào)和密碼,默認(rèn)是bearpi
。
配置完成之后會(huì)自動(dòng)彈出一個(gè)文件窗口,這個(gè)就是ubuntu文件的映射。在這里操作文件的話會(huì)自動(dòng)同步到Linux系統(tǒng)。
3.4 Visual Studio Code
VScode是一款非常好用的代碼編輯器,誰用誰知道。而且這個(gè)軟件也是跨平臺(tái)的,Windows、MAC和Linux都可以使用。比起Linux的vim,我覺得VScode要友好太多了。
當(dāng)然,你要是不喜歡或者不習(xí)慣的話,也不一定非要用這個(gè),這都是無所謂的。
VScode官網(wǎng)地址:https://code.visualstudio.com
4 下載HarmonyOS源碼
方法1:在ubuntu獲取源碼
前面我們已經(jīng)通過虛擬機(jī)搭建好一個(gè)Linux系統(tǒng),我們可以通過Linux的命令行來獲取HarmonyOS源碼。
打開終端,依次輸入以下命令,然后等待下載完成即可。
cd /home/bearpi
mkdir project && cd project
hpm init -t default
hpm i @bearpi/bearpi_hm_nano
提示:如果下載失敗,請檢查網(wǎng)絡(luò)是否正常。然后重新執(zhí)行 hpm i @bearpi/bearpi_hm_nano
命令即可。
方法2:從鏡像站獲取源碼
鏡像站點(diǎn)地址:https://mirrors.huaweicloud.com/harmonyos/os/
打開地址,這里有多個(gè)版本的源碼,我這里以1.0版本作為演示。
下載完成以后,可以直接在PC端解壓查看源碼,也可以先導(dǎo)入虛擬機(jī)的linux系統(tǒng),然后在linux系統(tǒng)下解壓查看。
5 編譯源碼
編譯流程:
在Linux終端上進(jìn)入源碼的根目錄下,運(yùn)行下面這個(gè)命令行。
hpm dist
如果出現(xiàn) "BUILD SUCCESS"
字樣,說明編譯成功,如果出現(xiàn) "ERROR"
,則可以根據(jù)錯(cuò)誤提示查找原因。
編譯成功之后可以在/project/out/BearPi-HM_Nano
目錄下找到編譯出來的bin文件(Hi3861_wifiiot_app_allinone.bin)
。
用RaiDrive映射文件方式查看如下圖:
在終端查看如下圖:
6 燒錄測試
6.1 代碼燒錄
我們把燒錄文件從Linux系統(tǒng)里面復(fù)制到PC下,因?yàn)槲覀兊臒浌ぞ呤窃趙indows系統(tǒng)下運(yùn)行的,開發(fā)板也需要連接到PC端(其實(shí)就是把HI3861的燒錄接口通過電平轉(zhuǎn)換IC連接到PC端)。
燒錄步驟如下:
1) 連接開發(fā)板到PC端
因?yàn)榇蜷_了虛擬機(jī),所以插入usb的時(shí)候需要選擇接入位置,這里選擇主機(jī)。
連接成功之后可以在設(shè)備管理器看到串行設(shè)備端口。
提示:沒有安裝CH340驅(qū)動(dòng)的需要先安裝驅(qū)動(dòng)。
2) 打開燒錄工具HiBurn,選擇開發(fā)板對(duì)應(yīng)的com口,配置串口參數(shù)。
串口波特率可以大一點(diǎn),這樣燒錄速度比較快。
3) 加載bin文件,勾選Auto burn復(fù)選框,然后點(diǎn)擊Connect。
按下Connect后,此時(shí)Connect按鈕變成Disconnect,等待下載。
4) 按下開發(fā)板上面的復(fù)位按鍵,等待下載完成即可。
6.2 運(yùn)行測試
下載完成后重新上電復(fù)位,這事代碼就已經(jīng)開始運(yùn)行了 ,可以通過串口看到運(yùn)行l(wèi)og,也可以通過按鍵F1和F2查看效果:F1按下LED燈亮,F(xiàn)2按下LED燈滅(這個(gè)是demo程序)。
7 更換其他demo繼續(xù)測試
源碼中提供了很多測試demo,我們可以在“projectapplicationsBearPiBearPi-HM_Nanosample”
路徑下找到BUILD.gn
文件,里面默認(rèn)打開的是"B2_basic_button:button_example"
這個(gè)demo。
想要更換其他demo我們只需要把B2注釋掉,然后打開其他demo,再重新編譯即可。
結(jié)束語
好了,關(guān)于鴻蒙系統(tǒng)的環(huán)境搭建就介紹到這里,本人對(duì)鴻蒙系統(tǒng)開發(fā)了解的也不是很深入,如有錯(cuò)誤,歡迎指正,謝謝!
如果這篇文章有幫助到你,可以給博主點(diǎn)個(gè)贊再走。