?Docker環境介紹
OpenHarmony為開發者提供了兩種Docker環境,以幫助開發者快速完成復雜的開發環境準備工作。兩種Docker環境及適用場景如下:
- 獨立Docker環境:適用于直接基于Ubuntu、Windows操作系統平臺進行版本編譯的場景。
- 基于HPM的Docker環境:適用于使用HPM工具進行發行版編譯的場景。
- 開發前請熟悉鴻蒙開發指導文檔:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。
表1?Docker鏡像介紹
系統類型 | 運行平臺 | Docker鏡像倉庫 | 標簽 |
---|---|---|---|
標準系統(獨立Docker環境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard | 3.2 |
小型系統(獨立Docker環境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small | 3.2 |
輕量系統(獨立Docker環境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini | 3.2 |
輕量和小型系統(HPM Docker環境) | Ubuntu/Windows | swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker | 0.0.3 |
環境準備
在使用Docker環境前,需要準備源碼和一些基本工具,以Ubuntu為例,您需要執行以下步驟:
-
安裝Docker
-
在Ubuntu中,可以使用下面的命令來安裝Docker:
sudo apt install docker.io
- 其他系統的Docker安裝請參考Docker指導。
-
-
獲取OpenHarmony源碼
請參考獲取源碼。
? 說明:
HPM Docker環境無需單獨獲取源碼。 -
獲取使用權限
為了能夠使用Docker,請使用具備root權限的用戶,或已被授予Docker使用權限的用戶進行后續操作。在Ubuntu系統中,通常可以通過在命令前加sudo來獲取root權限。在Windows系統中,您可能需要在管理員模式下運行cmd或PowerShell。
獨立Docker環境
Docker鏡像是包含了運行環境和應用程序的輕量級、可執行的軟件包,OpenHarmony的Docker鏡像托管在HuaweiCloud SWR上。開發者可以通過該鏡像在很大程度上簡化編譯前的環境配置。這一部分將引導您如何在Docker環境中配置和使用OpenHarmony,下文將介紹具體使用步驟。
搭建Docker環境(輕量系統和小型系統)
-
獲取Docker鏡像
獲取小型系統鏡像的命令為:
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
獲取輕量系統鏡像的命令為:
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
-
進入Docker構建環境
在獲取了鏡像之后,您需要創建一個新的Docker容器,并進入該容器中。進入OpenHarmony源碼根目錄執行如下命令,從而進入Docker構建環境。
-
Ubuntu系統
# 進入小型系統Docker構建環境 docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2# 進入輕量系統Docker構建環境 docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
-
Windows系統(假設源碼目錄為
D:\OpenHarmony
):# 進入小型系統Docker構建環境 docker run -it -v D:\OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2# 進入輕量系統Docker構建環境 docker run -it -v D:\OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
? 說明:
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_small:3.2
?這個命令的含義是,創建并運行一個新的OpenHarmony的Docker容器,這個容器運行在交互模式下,并且將當前目錄映射到容器的/home/openharmony目錄。 -
編譯源碼(輕量系統和小型系統)
-
啟動編譯腳本
執行
docker run
命令進入Docker容器后(此時位于/home/openharmony
路徑下),您可以通過如下編譯腳本啟動輕量系統類設備(參考內存≥128KiB)和小型系統類設備(參考內存≥1MiB)的編譯。python3 build.py -p {product_name}@{company}
其中,
{product_name}
為當前版本支持的平臺,{company}
為{product_name}
對應的公司名。舉個例子,如果您要編譯的產品為
hisilicon
下的ipcamera_hispark_taurus
,您可以輸入以下命令來啟動編譯:python3 build.py -p ipcamera_hispark_taurus@hisilicon
同樣,如果您要編譯的產品是
ohemu
下的qemu_small_system_demo
,那么您可以輸入以下命令來啟動編譯:python3 build.py -p qemu_small_system_demo@ohemu
-
查看編譯結果
在編譯結束后,編譯所生成的文件都會被存放在
out/{device_name}/
目錄下,結果鏡像輸出在out/{device_name}/packages/phone/images/
目錄下。
? 說明:
如需退出Docker,執行exit
命令即可。這個命令會停止當前的Docker容器,并返回到您的操作系統。
搭建Docker環境(標準系統)
-
獲取Docker鏡像
在搭建標準系統的Docker環境前,我們也需要先獲取對應的Docker鏡像。具體的命令如下:
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
-
進入Docker構建環境
與之前的步驟相同,我們需要創建一個新的Docker容器,并進入該容器中。進入openharmony源碼根目錄執行如下命令,從而進入Docker構建環境。
-
Ubuntu系統
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
-
Windows系統(假設源碼目錄為
D:\OpenHarmony
)docker run -it -v D:\OpenHarmony:/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2
-
編譯源碼(標準系統)
-
啟動編譯腳本
執行
docker run
命令進入Docker容器后(此時位于/home/openharmony
路徑下),您可以通過如下編譯腳本啟動標準系統類設備(參考內存≥128MB)的編譯。./build.sh --product-name {product_name} --ccache
{product_name}
為當前版本支持的平臺。例如,您要編譯的產品是rk3568
,那么您可以輸入以下命令來啟動編譯:./build.sh --product-name rk3568 --ccache
- 查看編譯結果
編譯所生成的文件都歸檔在out/{device_name}/
目錄下,結果鏡像輸出在out/{device_name}/packages/phone/images/
目錄下。
? 說明:
如需退出Docker,執行exit
命令即可。這個命令會停止當前的Docker容器,并返回到您的操作系統。
基于HPM的Docker環境
docker_dist是一個[HPM]系統中的模板組件,能夠幫助用戶快速初始化HPM工程,利用docker鏡像來快速編譯OpenHarmony發行版,在很大程度上簡化了編譯前的環境配置。開發者在配置好Ubuntu和[hpm-cli]開發環境后,可以通過以下步驟來使用我們提供的Docker環境。
搭建Docker環境
-
初始化安裝模板
在任意工作目錄中執行以下命令
hpm init -t @ohos/docker_dist
-
修改publishAs
因為獲取到的是模板類型的包,要把包的類型改為需要的類型。 在當前目錄下打開bundle.json文件,把"publishAs"字段的值由"template"改為"distribution"。
獲取及編譯源碼
執行編譯。自動安裝docker只能在Ubuntu環境下執行,如果其他環境,需要用戶自行安裝docker,然后拉取鏡像,執行編譯。
-
自動安裝docker(Ubuntu環境)
以下命令可以幫助用戶自動安裝docker, 拉取鏡像,并且在容器中開始運行對應解決方案的拉取和編譯。方式一:
命令后接參數指定解決方案,格式如下:
hpm run docker solution={product}
{product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。
方式二:
設置環境變量來選擇解決方案,再執行編譯命令。
-
選擇解決方案。
export solution={product}
{product}為需編譯的解決方案,如:@ohos/hispark_taurus、@ohos/hispark_aries、@ohos/hispark_pegasus。
-
獲取源碼及執行編譯。
hpm run docker
以上兩種方式以@ohos/hispark_taurus為例,執行成功結果如下:
...... ohos ipcamera_hispark_taurus build success! @ohos/hispark_taurus: distribution building completed.
-
-
自行安裝docker(非Ubuntu環境)
自行安裝docker相關操作如下:# 拉取鏡像 docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3# linux環境下的編譯 hpm run distWithDocker solution={product} # windows下的編譯,需要配置gitbash hpm config set shellPath "gitbash路徑" hpm run distWithDocker solution={product}
鴻蒙語言有TS、ArkTS等語法,那么除了這些基礎知識之外,其核心技術點有那些呢?下面就用一張整理出的鴻蒙學習路線圖表示:
從上面的OpenHarmony技術梳理來看,鴻蒙的學習內容也是很多的。現在全網的鴻蒙學習文檔也是非常的少,下面推薦一些:完整內容可在頭像頁保存,或這qr23.cn/AKFP8k甲助力
內容包含:《鴻蒙NEXT星河版開發學習文檔》
- ArkTS
- 聲明式ArkUI
- 多媒體
- 通信問題
- 系統移植
- 系統裁剪
- FW層的原理
- 各種開發調試工具
- 智能設備開發
- 分布式開發等等。
這些就是對往后開發者的分享,希望大家多多點贊關注喔!