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