2021 年 6 月 2 號,鴻蒙發布了 2.0 操作系統,并且對外公開了 2.0 操作系統的源代碼。
看了介紹后發現鴻蒙的分布式能力非常強大,本來想拿多臺設備結合 “音視頻 SDK” 的功能開發多終端分布式的功能,比如 a 設備錄視頻,b 設備做采集推流,或者聲音在另一臺設備播放。
由于測試機還沒有到貨,先去編譯一個鴻蒙系統玩玩吧,開源的系統是完全脫離安卓的獨立鴻蒙系統,另外因為也是剛接觸,還是會踩一些坑。
鴻蒙開源代碼結構介紹
鴻蒙開源了兩份源碼:
輕量級系統,小型系統
標準系統源碼(2.0 Canary)
華為開發文檔并沒有對這兩個系統做介紹,“2.0 Canary” 也是最近開源的,我理解 2.0 可能是給更大性能與內存的設備使用的,例如手機,電視等。
小型系統應該給 IoT 一些物聯網設備使用,例如智能冰箱呀,智能電風扇等,好了廢話不多說,一起來構建鴻蒙標準系統源碼吧。
01
準備環境
設備要求:Ubuntu18
編譯工具:(如果使用 docker 可以無視)
https://repo.huaweicloud.com/harmonyos/os/2.0/tool_chain/
另外華為非常貼心,還提供了 docker 帶編譯環境的鏡像,由于我用的筆記本是 mac os 必須得用 docker 了,另外強烈推薦 docker,快好,省心省力,否則你還得安裝上面一堆工具。
docker 鏡像地址:
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4
執行 “docker run -it xxx:tag /bin/bash” 運行并進入 docker。
02
下載源碼
repo 介紹:當初由于安卓源碼非常大,為了方便管理各個倉庫,用 xml 的方式記錄了整個系統 git 庫的數量,名稱,路徑等,便于管理,鴻蒙也用的 repo 管理各個倉庫,還是挺香的,避免了各種子模塊雜亂臟的問題。
repo 初始化:
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
# 使用此命令初始化時,可能會因為網絡慢的問題導致代碼更新失敗,可以嘗試以下命令來初始化:
repo init -u https://gitee.com/openharmony/manifest.git -b ssh/master --no-repo-verify
同步源碼:
// -c 獲取當前分支 -j 同步線程數默認為4
repo sync -c -j8
漫長的等待中… 以目前網速來看 需要一段時間。
更新二進制:
repo forall -c ‘git lfs pull’
居然失敗了,看了下錯誤信息,華為給的這個 docker 鏡像沒有安裝 lfs,接下來手動裝一下 git lfs 吧,執行 “apt-get install git-lfs” 解決。
執行預處理腳本:
cd /
。。/scripts/prepare.sh
這個腳本是去下載構建工具建立構建環境的,比如 cmake gn 等一些構建工具,沒有跑這個腳本編譯會報各種錯。
03
開始構建
。/build.sh --product-name Hi3516DV300
目前開源的這份源碼里只有 Hi3516DV300,其他沒找到:
編譯中…
編譯完成:
04
最終產物
鏡像輸出在 out/ohos-arm-release/packages/phone/images/ 目錄下:
上圖可以看到各個分區鏡像已經編譯出來了,如果有開發板的話可以直接燒錄進去。有機會入個開發板玩玩,網上搜可以直接購買。
05
系統目錄結構分析
從以上結構分析,跟 Linux 與安卓目錄結構大體類似,包括 vendor 分區,但是目前沒有發現安卓相關的東西,也不能運行安卓 apk 只能運行華為自家的 hap。
可以看到系統自帶的桌面,狀態欄,設置等都是 hap。
繼續拆解 hap:
系統的 App 沒有了 Java 的身影,使用 JS 作為首選語言開發,非常的輕量。
06
官網資料
官網源碼拉取文檔:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E8%8E%B7%E5%8F%96%E5%B7%A5%E5%85%B7.md#section69141039143518
官網構建教程:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
07
關于個人暢想
鴻蒙不止是手機操作系統,他是一整套解決方案,解決安卓與 iOS 不能解決的問題,大家一同期待。
下次測試機到貨后,我想結合多終端與音視頻來開發一些好玩創新的東西分享出來。
編輯:jq
-
安卓
+關注
關注
5文章
2135瀏覽量
57379 -
Docker
+關注
關注
0文章
489瀏覽量
11892 -
開源代碼
+關注
關注
0文章
36瀏覽量
2998 -
鴻蒙系統
+關注
關注
183文章
2637瀏覽量
66512 -
OpenHarmony
+關注
關注
25文章
3731瀏覽量
16434
原文標題:OpenHarmony2.0編譯初體驗!
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論