1. 程式人生 > 實用技巧 >從零構建HarmonyOs開發環境

從零構建HarmonyOs開發環境

鴻蒙開發環境主要是兩點:
1、需要一個linux環境:用來拉取程式碼、修改提交、以及編譯構建
2、需要一個Windows環境:用來執行鴻蒙的IDE(DevCo),它用來編輯程式碼,燒寫除錯
所以筆者建議的方式是,在Windows上虛擬一個linux。
本文將介紹如何基於Windows10主機,通過VirtualBox虛擬一個Linux系統(ubuntu):
  ~Win10上執行IDE,虛擬機器執行Ubuntu,Win10通過ssh連線虛擬機器獲得shell埠;
  ~同時Win10可通過samba訪問虛擬機器檔案目錄,使得IDE可以開啟虛擬機器中的程式碼,實現IDE和shell共同操作同一套程式碼。

VirtualBox安裝

官網下載安裝:
https://www.virtualbox.org/wiki/Downloads
這個比較簡單,不再贅述,筆者安裝的本版是:6.1.14 r140239 (Qt5.6.2)
PS:官網比較慢,如果著急,也可以通過360軟體管家安裝

建立Ubuntu虛擬機器

1、開啟VirtuaBox點選新建
2、如圖指定引數,名稱您隨意,資料夾路徑用來存放該虛擬機器資料,型別選Linux,版本選Ubuntu64-bit,然後點選“下一步”

3、進入記憶體設定頁面,建議設定為主機真實記憶體1/4到1/2,本例設定為2G(主機有8G記憶體)

4、選擇建立一個新的虛擬硬碟,然後點選“下一步”

接下來是連續的虛擬硬碟引數設定,頁面省略~~

5、選擇VDI型別,然後下一步

6、虛擬硬碟檔案分配型別,選擇“動態分配”,然後下一步

7、指定虛擬硬碟檔案儲存位置;同時設定虛擬硬碟大小,建議128G,然後點選“建立”

8、建立完畢後,右建虛擬機器圖示,選擇“設定”->”系統”,根據實際情設定cpu核個數

安裝Ubuntu系統

1、Ubuntu安裝映象下載
[https://ubuntu.com/download/alternative-downloads](https://ubuntu.com/download/alternative-downloads\)
選擇18.04和20.04都可以
PS:Server版體積小,沒有UI,如果喜歡花哨的桌面,也可以選擇Desktop版

2、設定啟動介質順序
右鍵當前的虛擬機器圖示,選擇“設定”,再選擇系統,在“啟動順序”列表中將硬碟設定到光碟機前面,其他選項全部取消,然後點選“OK”
PS:這樣首次硬碟沒有系統,無法啟動,會繼續選擇光碟啟動,進行安裝;再次啟動,硬碟系統已經安裝好,就會優先硬碟啟動,進入系統

3、設定虛擬光碟映象
右鍵當前的虛擬機器圖示,選擇“設定”,再選擇儲存,將虛擬光碟選定為剛剛下載的iso

4、啟動虛擬機器
點選“啟動”,啟動虛擬機器,首次執行,體貼的VirtualBox會提示我們指定一個虛擬光碟檔案,預設就是我們剛才設定的iso映象,直接點“啟動”就行

5、啟動虛擬機器
開啟後,會刷2分鐘左右日誌,然後進入安裝選項介面
這裡熟悉的讀者可以自己設定各類選項,不熟悉的一路預設到底也是OK的,本例選擇一路預設。。。

6、設定使用者名稱和密碼

7、安裝過程,刷日誌
PS : 由於安裝過程中需要下載軟體,所以安裝速度會受網路情況影響,如果真的很慢,就去看部電影吧。。。

Ubuntu環境配置

1、虛擬機器網路配置

虛擬機器開展任何工作前,得先保證網路暢通,虛擬機器網路主要兩種模式:
1)網路地址轉換(NAT)
  這種方式虛擬機器可以利用主機網路接入internet,例如ping通baidu.com;
  但是外界無法通過網路訪問虛擬機器,虛擬的IP不能被外界識別
2)橋接網絡卡
  這種方式,筆者認為是最happy的,虛擬機器相當於藉助主機網絡卡的能力,虛擬出一個網絡卡
  虛擬機器擁有和主機一個網段的IP地址,就像一個獨立的機器一樣,可以和外界互通
建議選擇第二種方式,這兩種方式在當主機需要訪問虛擬機器硬碟檔案時配置有些差異,後面會講到

2、ssh登入設定

ssh登入設定
直接在VritualBox視窗操作虛擬機器比較難受,我們當然希望通過Xshell/Putty等工具接入LInux伺服器,這需要配置ssh服務

安裝ssh-server:sudo apt-get install openssh-server
啟動ssh服務: sudo service ssh start

1、橋接網絡卡方式:
ifconfig檢視IPV4地址,然後在Putty/Xshell中直接登入

2、網路地址轉換
這種模式下,主機ssh工具無法直接連結虛擬機器IP,需要配置埠轉發

然後ssh工具登入的時候,直接連結本地主機地址,埠指定為埠轉發中配置的埠,本例中為2222

3、samba配置

如果要使用IDE,那麼IDE如何開啟linux伺服器上的程式碼呢? 答案是samba
samba可以讓windows像訪問本地磁碟一樣訪問其他linux伺服器上的資料夾
  (1)首先安裝samba:sudo apg-get install samba
  (2)配置修改:vim /etc/samba/smb.conf 在最後面新增如下資訊:
[yang] browseable = yes writable = yes available = yes path = /home/yang valid users = yang public = yes
  (3)新增samba使用者:sudo smbpasswd -a yang
  (4)說明:yang是當前登入的使用者,我們直接將他新增為samba使用者;提示輸入密碼,這個是samba密碼,和登入密碼不是一回事,但是可以設定成一樣的
  (5)重啟samba:sudo service smbd restart
在windows資源管理器裡輸入虛擬機器ip地址,就可以訪問了

遺留問題:
此方式僅對橋接網絡卡有效,網路地址轉換(NAT)方式有待進一步解決

4、原始碼獲取配置

這個直接參考官方文件:
https://gitee.com/openharmony/docs/blob/master/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md

建議選第四種方式:從程式碼倉庫獲取
這裡做幾點補充:
1)curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
這一步如果出現許可權問題,可以用下面兩部替代:
wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3
sudo mv repo-py3 /usr/local/bin/repo

2)還需要安裝Python3
官方文件要求python3.7+,但是筆者安裝的ubuntu自帶3.6.9也可以;
接著安裝pip管理工具:sudo apt-get install python3-pip
另外需要將預設python設定為新安裝的python3.7+, 其實就是設定軟連線到/usr/bin/python

3)pip install -ihttps://pypi.tuna.tsinghua.edu.cn/simple requests
這一步請使用pip3,另外如果很慢,可以直接嘗試pip3 install requests

5、編譯環境配置

目前Hi3861/Hi3516/Hi3518環境配置及編譯命令稍有差異,請參考官方快速入門:
https://gitee.com/openharmony/docs/blob/master/quick-start/Readme-CN.md
這裡做必要補充:
1)Hi3861的第一個示例中詳細介紹了IDE工具VsCode及外掛DevEco的使用,後面Hi3516和Hi3518的介紹中就淡化了,所以直接看後面例子不明白IDE用法的,先去看一遍Hi3861的入門

2)編譯時若提示zip命令沒找到,則直接安裝:sudo apt-get install zip

3)弱提示mcopy命令沒有找到的,則直接安裝mtools: sudo apt-get install mtools

Windos環境配置

windows上,主要是IDE環境的配置,請參考官方指導文件:
https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905
關於IDE的使用,可以直接參考快速入門的這一篇:
https://gitee.com/openharmony/docs/blob/master/quick-start/Hi3861%E5%BC%80%E5%8F%91%E6%9D%BF%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%A4%BA%E4%BE%8B%E7%A8%8B%E5%BA%8F.md
IDE的作用主要是:
程式碼編輯:通過外掛實現自動補全,錯誤提示等等
燒寫映象:將編譯生成的映象燒到開發板中,以及線上除錯
終端工具:可以通過Terminal連結linux伺服器,獲取shell埠,這樣IDE和shell埠就在一個頁面中,很方便!

總結

真個環境搭建過程,是依照 “原始碼獲取配置-》編譯環境配置-》IDE環境配置” 的順序進行的
其實官方的README及開發指導都有比較詳細的闡述,但是由於涉及的軟體、配置較多,而且不集中,所以容易讓剛入門的童鞋感覺配置起來比較麻煩
本帖就是順著這個思路,從零開始,一步步搭建環境,記錄踩坑過程,分享給大家,與君共勉,鴻蒙加油!


原文連結:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202354145711200693&fid=0101303901040230869
作者:NickYang