2021 年 6 月 2 號,鴻蒙發(fā)布了 2.0 操作系統(tǒng),并且對外公開了 2.0 操作系統(tǒng)的源代碼。
看了介紹后發(fā)現(xiàn)鴻蒙的分布式能力非常強大,本來想拿多臺設(shè)備結(jié)合 “音視頻 SDK” 的功能開發(fā)多終端分布式的功能,比如 a 設(shè)備錄視頻,b 設(shè)備做采集推流,或者聲音在另一臺設(shè)備播放。
由于測試機還沒有到貨,先去編譯一個鴻蒙系統(tǒng)玩玩吧,開源的系統(tǒng)是完全脫離安卓的獨立鴻蒙系統(tǒng),另外因為也是剛接觸,還是會踩一些坑。
鴻蒙開源代碼結(jié)構(gòu)介紹
鴻蒙開源了兩份源碼:
輕量級系統(tǒng),小型系統(tǒng)
標準系統(tǒng)源碼(2.0 Canary)
華為開發(fā)文檔并沒有對這兩個系統(tǒng)做介紹,“2.0 Canary” 也是最近開源的,我理解 2.0 可能是給更大性能與內(nèi)存的設(shè)備使用的,例如手機,電視等。
小型系統(tǒng)應(yīng)該給 IoT 一些物聯(lián)網(wǎng)設(shè)備使用,例如智能冰箱呀,智能電風(fēng)扇等,好了廢話不多說,一起來構(gòu)建鴻蒙標準系統(tǒng)源碼吧。
01
準備環(huán)境
設(shè)備要求: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 介紹:當(dāng)初由于安卓源碼非常大,為了方便管理各個倉庫,用 xml 的方式記錄了整個系統(tǒng) git 庫的數(shù)量,名稱,路徑等,便于管理,鴻蒙也用的 repo 管理各個倉庫,還是挺香的,避免了各種子模塊雜亂臟的問題。
repo 初始化:
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
# 使用此命令初始化時,可能會因為網(wǎng)絡(luò)慢的問題導(dǎo)致代碼更新失敗,可以嘗試以下命令來初始化:
repo init -u https://gitee.com/openharmony/manifest.git -b ssh/master --no-repo-verify
同步源碼:
// -c 獲取當(dāng)前分支 -j 同步線程數(shù)默認為4
repo sync -c -j8
漫長的等待中… 以目前網(wǎng)速來看 需要一段時間。
更新二進制:
repo forall -c ‘git lfs pull’
居然失敗了,看了下錯誤信息,華為給的這個 docker 鏡像沒有安裝 lfs,接下來手動裝一下 git lfs 吧,執(zhí)行 “apt-get install git-lfs” 解決。
執(zhí)行預(yù)處理腳本:
cd /
。。/scripts/prepare.sh
這個腳本是去下載構(gòu)建工具建立構(gòu)建環(huán)境的,比如 cmake gn 等一些構(gòu)建工具,沒有跑這個腳本編譯會報各種錯。
03
開始構(gòu)建
。/build.sh --product-name Hi3516DV300
目前開源的這份源碼里只有 Hi3516DV300,其他沒找到:
編譯中…
編譯完成:
04
最終產(chǎn)物
鏡像輸出在 out/ohos-arm-release/packages/phone/images/ 目錄下:
上圖可以看到各個分區(qū)鏡像已經(jīng)編譯出來了,如果有開發(fā)板的話可以直接燒錄進去。有機會入個開發(fā)板玩玩,網(wǎng)上搜可以直接購買。
05
系統(tǒng)目錄結(jié)構(gòu)分析
從以上結(jié)構(gòu)分析,跟 Linux 與安卓目錄結(jié)構(gòu)大體類似,包括 vendor 分區(qū),但是目前沒有發(fā)現(xiàn)安卓相關(guān)的東西,也不能運行安卓 apk 只能運行華為自家的 hap。
可以看到系統(tǒng)自帶的桌面,狀態(tài)欄,設(shè)置等都是 hap。
繼續(xù)拆解 hap:
系統(tǒng)的 App 沒有了 Java 的身影,使用 JS 作為首選語言開發(fā),非常的輕量。
06
官網(wǎng)資料
官網(wǎng)源碼拉取文檔:
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
官網(wǎng)構(gòu)建教程:
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
關(guān)于個人暢想
鴻蒙不止是手機操作系統(tǒng),他是一整套解決方案,解決安卓與 iOS 不能解決的問題,大家一同期待。
下次測試機到貨后,我想結(jié)合多終端與音視頻來開發(fā)一些好玩創(chuàng)新的東西分享出來。
編輯:jq
-
安卓
+關(guān)注
關(guān)注
5文章
2155瀏覽量
58706 -
Docker
+關(guān)注
關(guān)注
0文章
515瀏覽量
12971 -
開源代碼
+關(guān)注
關(guān)注
0文章
38瀏覽量
3203 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2642瀏覽量
68126 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3854瀏覽量
18631
原文標題:OpenHarmony2.0編譯初體驗!
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
貢獻 OpenHarmony 庫關(guān)鍵配置
迅為RK3568開發(fā)板篇OpenHarmony實操HDF驅(qū)動配置LED-編譯源碼
2K0300 OpenHarmony源碼構(gòu)建指南
迅為RK3568開發(fā)板篇OpenHarmony實操HDF驅(qū)動控制LED-添加內(nèi)核編譯
OpenHarmony-5.0.0的RK3588始終編譯不過去,有大佬有開源方案可以參考一下嗎?
OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發(fā)板演示

飛凌嵌入式ElfBoard ELF 1板卡-內(nèi)核編譯之初次編譯
【龍芯2K0300蜂鳥板試用】OpenHarmony代碼
基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony
[2K300適配OpenharmonyV4.1]根文件系統(tǒng)制作請教
編譯openharmony 4.1 rk3568報錯, 編譯命令:./build.sh --product-name rk3568 --ccache
openharmony移植AT32F407編譯時錯誤
OpenHarmony標準系統(tǒng)C++公共基礎(chǔ)類庫案例:HelloWorld

評論