源碼獲取
詳情請參考:https://gitee.com/openharmony/docs/blob/master/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
OpenHarmony介紹
OpenHarmony是HarmonyOS的開源版,由華為捐贈給開放原子開源基金會(OpenAtom Foundation)開源。第一個開源版本支持在128KB~128MB設備上運行,歡迎參加開源社區一起持續演進。
代碼倉庫地址:https://openharmony.gitee.com
源碼獲取概述
本文檔將介紹如何獲取OpenHarmony源碼並說明OpenHarmony的源碼目錄結構。OpenHarmony的代碼以組件的形式開放,開發者可以通過如下其中一種方式獲取:
- 獲取方式1: 從鏡像站點下載壓縮文件(推薦)
- 獲取方式2: 從hpm網站組件式獲取。通過HPM,查找滿足需求的解決方案,挑選/裁剪組件后下載。
- 獲取方式3: 用包管理器命令行工具獲取。通過HPM的hpm-cli命令行工具,執行命令下載。
- 獲取方式4: 從代碼倉庫獲取。通過repo或git工具從代碼倉庫中下載。
獲取方式1:從鏡像站點獲取
為了獲得更好的下載性能,您可以選擇從以下站點的鏡像庫獲取源碼或者對應的解決方案。
表 1 源碼獲取路徑
下載內容 | 版本信息 | 下載站點 | SHA256校驗碼 |
---|---|---|---|
OpenHarmony全量代碼 | 1.0 | 站點1、站點2 | SHA256 校驗碼 |
Hi3861解決方案 | 1.0 | 站點1、站點2 | SHA256 校驗碼 |
Hi3518解決方案 | 1.0 | 站點1、站點2 | SHA256 校驗碼 |
Hi3516解決方案 | 1.0 | 站點1、站點2 | SHA256 校驗碼 |
RELEASE-NOTES | 1.0 | 站點1 | - |
獲取方式2:從hpm網站組件式獲取
適用場景
對於剛接觸OpenHarmony的新用戶,希望能夠參考一些示例解決方案從而進行快速開發。可以在HPM獲取推薦的解決方案,以此為基礎,增加或裁剪部分組件,快速定制系統。
操作步驟
- 查找合適的解決方案組件包。
- 打開包管理頁面HPM,設定搜索的對象為“解決方案“,如下圖所示。
- 自搜索框輸入關鍵字搜索,如"camera"。
- 結果中顯示匹配的解決方案,可以進一步根據組件類別等過濾條件(如:適配的開發板,內核)精確篩選。
- 查找合適的解決方案,點擊查看解決方案詳情介紹
- 定制解決方案組件包。
- 仔細閱讀解決方案的說明,以了解該解決方案的使用場景、特性、使用方法以及如何進行定制化,如下圖所示。
- 點擊「直接下載」,將解決方案下載到本地。
- 點擊「定制組件」,將對解決方案包含的組件進行定制。
- 定制組件。
-
下載的壓縮文件並未包含源代碼的原始文件,可以在IDE中導入下載的壓縮包,解壓后執行hpm的安裝指令(hpm install),才會將所需要的組件全部下載下來。
-
下載的組件存在工程目錄下的ohos_bundles文件夾中。
- 進入解決方案定制頁面,如下圖所示。
- 通過關閉開關移除可選組件,或者通過“添加組件”增加新的組件。
- 在右邊填寫您的項目基本信息,包括名稱、版本、描述等信息。
- 點擊“下載“,系統會根據您的選擇,生成相應的OpenHarmony代碼結構文件(如name.zip),保存至本地文件。
獲取方式3:用包管理器命令行獲取
適用場景
- 用戶已通過組件式獲取的方式獲取源碼,需要對源碼中的某個或某幾個組件進行獨立升級。
- 用戶已經比較熟悉OpenHarmony系統的開發並且熟練掌握命令行工具的使用。
准備
通過命令行獲取,需要先安裝Node.js和hpm命令行工具,安裝步驟如下:
-
安裝Node.js。
官網下載並在本地安裝Node.js.
推薦安裝 Node.js 12.x (包含 npm 6.14.4)或更高版本 (推薦 12.13.0+)。 -
通過Node.js自帶的npm安裝hpm命令行工具。
打開CMD,執行以下命令:
npm install -g @ohos/hpm-cli
- 安裝完成后執行如下命令,顯示hpm版本,即安裝成功。
hpm -V 或 hpm --version
- 如果升級hpm的版本,請執行如下命令:
npm update -g @ohos/hpm-cli
操作
接下來將組件添加到開發項目中,假定要獲取的組件名為@ohos/demo,具體操作如下:
- 進入開發目錄,執行如下命令,采用默認模板創建一個開發項目。
hpm init -t default
- 執行如下命令,安裝組件@ohos/demo
hpm install @ohos/demo
- 工具會自動從服務器下載所有依賴的組件,下載成功則顯示Install successfully!
$ hpm install @ohos/demoRequesting: https://url.foo.bar/hpm/registry/api/bundles/@ohos/demodownloading @ohos/demoRequesting: https://lfcontentcenterdev....../bMAlLrYISLqdUTFFFCdgzA.tgzextract D:\demo\ohos_bundles\@ohos\demo\@ohos-demo-1.0.7.tgzInstall successfully!
獲取方式4:從代碼倉庫獲取
適用場景
- 基於OpenHarmony的穩定分支建立自己的基線,分發下游客戶。
- 已經完成自身軟件與OpenHarmony的對接,需要進行OpenHarmony官方認證。
- 芯片/模組/app通過OpenHarmony官方認證后,貢獻代碼到OpenHarmony生態。
- 修復OpenHarmony的問題。
- 學習OpenHarmony的源碼。
准備
- 注冊碼雲gitee賬號。
- 注冊碼雲SSH公鑰,請參考碼雲幫助中心的公鑰管理:https://gitee.com/help/articles/4181
- 安裝git客戶端並配置用戶信息。
git config --global user.name "yourname"git config --global user.email "your-email-address"git config --global credential.helper store
- 安裝碼雲repo工具,可以執行如下命令。
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repochmod a+x /usr/local/bin/repopip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
操作
方式一(推薦):通過repo下載
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verifyrepo sync -c
方式二:通過git clone單個代碼倉庫
進入代碼倉庫主頁:https://gitee.com/openharmony ,選擇需要克隆的代碼倉庫,執行命令,如:
git clone https://gitee.com/openharmony/manifest.git -b master
源碼目錄簡介
下表是OpenHarmony源碼的目錄及簡單說明:
表 2 源碼目錄的說明
目錄名 | 描述 |
---|---|
applications | 應用程序樣例,包括wifi-iot,camera等 |
base | 基礎軟件服務子系統集&硬件服務子系統集 |
build | 組件化編譯、構建和配置腳本 |
domains | 增強軟件服務子系統集 |
drivers | 驅動子系統 |
foundation | 系統基礎能力子系統集 |
kernel | 內核子系統 |
prebuilts | 編譯器及工具鏈子系統 |
test | 測試子系統 |
third_party | 開源第三方組件 |
utils | 常用的工具集 |
vendor | 廠商提供的軟件 |
build.py | 編譯腳本文件 |
HarmonyOS官方開發者論壇:https://developer.huawei.com/consumer/cn/forum/blockdisplay?fid=0101303901040230869
原作者:kelly