0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

輕松入門OpenHarmony成為媒體子系統(tǒng)Contributor

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-06-30 15:22 ? 次閱讀

如何優(yōu)雅地參與開源貢獻(xiàn),向頂級開源項(xiàng)目提交 PR(Pull Request),跟著大咖 30 分鐘成為 OpenAtom OpenHarmony(以下簡稱“OpenHarmony”) Contributor。戰(zhàn)“碼”先鋒直播間第四期,邀請華為終端BG軟件架構(gòu)設(shè)計(jì)部主任工程師 Jelly 為大家分享《輕松入門,成為媒體開發(fā)者》。分享主要介紹了:軟件工程師必備技能(Git,識別好的代碼),HiStreamer 媒體引擎介紹和如何參與開源項(xiàng)目并得到能力提升。

參與戰(zhàn)“碼”先鋒,PR 征集令!你可以在Gitee 的 OpenHarmony 代碼倉提交 PR 參與活動(dòng),和全球開發(fā)者同臺競技,比拼技藝,為 OpenHarmony 貢獻(xiàn)力量。

軟件工程師必備技能-Git

必備技能之Git的基本概念

Git 是開發(fā)人員的必備工具,熟練地使用 Git 能夠讓自己在開發(fā)工作中更加得心應(yīng)手,特別是在參與開源項(xiàng)目中,Git 作為提交 PR 的常備工具,操作流程和代碼命令需要熟練于心。為此,Jelly 老師在分享中為大家梳理了 Git 工作中的幾個(gè)關(guān)鍵概念,抓住關(guān)鍵就能更容易理解 Git 的命令。 首先要理解工作目錄、本地倉庫、遠(yuǎn)端倉庫的概念。工作目錄(下圖藍(lán)色框內(nèi)),就是我們 clone 代碼之后本地的代碼;本地倉庫(下圖紅色框內(nèi)),是 .git 目錄的內(nèi)容,它包含了所有的代碼倉歷史記錄;遠(yuǎn)端倉庫,是 clone 代碼時(shí)使用的服務(wù)器端的地址,比如git@gitee.com:openharmony/multimedia_histreamer.git。遠(yuǎn)端倉庫和本地倉庫的內(nèi)容一般是一樣的。 其次需要理解 Git 歷史記錄相關(guān)概念。Git 作為版本管理工具,主要的任務(wù)是記錄歷史。歷史由一個(gè)個(gè) commit 構(gòu)成,每一次在 Git 上運(yùn)行 Git commit 命令,就會(huì)產(chǎn)生一個(gè) commit。開發(fā)過程中,經(jīng)常需要多個(gè)分支并行開發(fā)。Git 提供了超輕量級的分支管理機(jī)制,分支名就是指向分支最后一個(gè) commit 的指針,可以向該分支繼續(xù)提交 commit。為了方便溝通,還會(huì)給 commit 起別名,這就是 tag,它用來標(biāo)記一個(gè)確定的 commit 點(diǎn)。如果要獲取指定 commit 的代碼,可以輸入命令 git checkout commit_id 來完成,commit_id 也可以替換成分支名或者 tag。

69db8a08-f6e3-11ec-ba43-dac502259ad0.png

為了方便在命令行查看分支圖,我們可以執(zhí)行下面命令配置一個(gè) git 命令別名 lg:

git config--global alias.lg "log--graph--pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'--abbrev-commit --date=relative"

在本地命令行輸入 git lg,就能查看當(dāng)前倉庫的歷史分支圖。git lg 跟普通的 git log 命令類似,也可以在后面加若干個(gè) commit_id/ 分支名 /tag,把該位置顯示到分支圖中。分支圖左側(cè)的每一個(gè)星號都對應(yīng)著一個(gè) commit,星號后面是 commit_id,然后可能還有黃色的部分是分支名和 tag 名稱,再往右是 commit message、時(shí)間和作者信息

6a0f7264-f6e3-11ec-ba43-dac502259ad0.png

各個(gè)Git操作的含義

基本概念有助于我們理解,而接下來的介紹:各個(gè) Git 操作的含義則更為直觀地展示了 Git 操作的原理。Git 命令主要是將數(shù)據(jù)在多個(gè)區(qū)域中傳遞:Work space(工作目錄),Index(緩存區(qū)),本地倉庫和遠(yuǎn)程倉庫。比如 git add 是將工作目錄修改的代碼傳遞到緩存區(qū),執(zhí)行 commit 命令是將緩存的代碼提交到本地倉庫,開發(fā)者也可以用 git commit -a 將上述兩個(gè)命令合并成一個(gè)命令。commit 提交到本地倉庫,再用 git push 就可以提交到遠(yuǎn)程倉庫。用 git fetch 可以將遠(yuǎn)程倉庫的 commit 取到本地倉庫中,再用 git rebase 或者 git merge 可以將本地倉庫的代碼體現(xiàn)到工作目錄,也可以用 git pull 將上述兩個(gè)步驟合并。

6a368bb0-f6e3-11ec-ba43-dac502259ad0.png

常見的操作場景使用的命令如下:

●更新本地代碼(使之與服務(wù)器一致)

git fetch

git status

git rebase origin/master (注意:origin 是 remote 名字, master 是遠(yuǎn)程分支名,根據(jù)自己需要修改)

●提交代碼為本地 commit

git add -u

git commit -s -m "your message"

●本地 commit 上傳到服務(wù)器(origin一般要用自己的fork倉)

git push origin HEAD:master(注意:origin是remote名字,master是遠(yuǎn)程分支名,根據(jù)自己需要修改)

●創(chuàng)建 PR,更新 PR

源分支變化,PR 會(huì)自動(dòng)更新

●其他比較重要的知識

git blame path 查看文件每一行代碼的修改歷史

git reset / git checkout

git remote -v 使用多個(gè) remote

必備技能之識別好的代碼

好的代碼函數(shù)/模塊劃分清晰、分支判斷少、松耦合、易于閱讀和理解、依賴規(guī)則確定、學(xué)習(xí)成本低,差的代碼則相反。好代碼(也稱為整潔代碼)主要體現(xiàn)在:職責(zé)單一、干凈、無重復(fù),能夠直觀體現(xiàn)業(yè)務(wù)、通過了所有測試的優(yōu)雅的代碼。寫整潔代碼的主要方法是消除重復(fù),提高表現(xiàn)力。整潔編碼有四個(gè)原則:可以工作、容易被理解、沒有重復(fù)的邏輯和代碼、沒有多余的代碼。

下圖中對比了一個(gè)函數(shù)修改前后的代碼,修改前:函數(shù)較長,共 60 行。細(xì)節(jié)較多,不在同一個(gè)抽象層次上編碼;分支判斷較多,容易成為 BUG 的溫床,較難維護(hù)。修改后,函數(shù)只有 30 行,在同一個(gè)抽象層次上編碼,分支判斷較少,這樣會(huì)更容易理解和維護(hù)。

6a5b5a12-f6e3-11ec-ba43-dac502259ad0.png

為了幫助大家提升識別/寫好代碼的能力,Jelly 老師還向大家介紹了需要關(guān)注的幾個(gè)知識點(diǎn):代碼壞味道、通過重構(gòu)改善既有代碼的設(shè)計(jì)、演進(jìn)式設(shè)計(jì)、設(shè)計(jì)模式、面向?qū)ο笤O(shè)計(jì)原則等;以及相關(guān)書籍推薦:《代碼整潔之道》、《重構(gòu)-改善既有代碼的設(shè)計(jì)》、《Head First 設(shè)計(jì)模式》、《敏捷軟件開發(fā):原則、模式與實(shí)踐》。

HiStreamer媒體引擎介紹

HiStreamer媒體引擎介紹

第三部分 Jelly 老師為我們介紹了 HiStreamer 媒體引擎。首先,從 OpenHarmony 媒體子系統(tǒng)軟件架構(gòu)開始,系統(tǒng)架構(gòu)主要分為四層。最上層是應(yīng)用層,包括音樂、視頻等應(yīng)用。第二層是應(yīng)用接口層,為應(yīng)用開發(fā)提供接口。最下面一層是 HDI 層,提供訪問硬件的抽象接口。HDI和接口層之間是服務(wù)層,主要有 MediaService、AudioService、CameraService 等服務(wù)。其中 MediaService 負(fù)責(zé)音視頻文件讀取、流媒體下載、解封裝、解碼等工作。在 MediaService中,有兩個(gè)媒體引擎,HiStreamer 就是其中之一。HiStreamer 可以在 mini/small/standard 設(shè)備上運(yùn)行,支持插件擴(kuò)展。

6a84fbd8-f6e3-11ec-ba43-dac502259ad0.png

HiStreamer媒體引擎業(yè)務(wù)功能

媒體引擎主要負(fù)責(zé)媒體數(shù)據(jù)讀取、流媒體下載、封裝/解封裝、編解碼、輸出等。Jelly 老師以播放本地 MP3 文件為例,為大家詳細(xì)解讀 HiStreamer 媒體引擎的工作流程。 講解流程前先了解 MP3 的文件結(jié)構(gòu)。它由一個(gè) ID3 Metadata 容器頭和 ES Data(編碼后的音頻數(shù)據(jù))構(gòu)成。ES Data 由若干 MP3 Frame 數(shù)據(jù)幀組成,每個(gè) MP3 Frame 又由 MP3 Header 和 MP3 Data 構(gòu)成。

音頻文件在播放的過程中,首先要讀取 MP3 文件,解析 ID3 Metadata 容器頭,然后將 ES Data 解碼成 PCM,最后播放 PCM。這四個(gè)過程抽象成四個(gè)節(jié)點(diǎn):輸入節(jié)點(diǎn)、解封裝節(jié)點(diǎn)、解碼節(jié)點(diǎn)、輸出節(jié)點(diǎn)。上一個(gè)節(jié)點(diǎn)的輸出,是下一個(gè)節(jié)點(diǎn)的輸入。輸入節(jié)點(diǎn)讀取進(jìn)來的是文件數(shù)據(jù)流,經(jīng)過解封裝節(jié)點(diǎn),解析出 ID3 容器頭中的參數(shù),取出 ES Data 傳到下一個(gè)節(jié)點(diǎn):解碼節(jié)點(diǎn)。解碼節(jié)點(diǎn)再解碼 ES Data 得到 PCM 數(shù)據(jù)流,最后傳到輸出節(jié)點(diǎn)進(jìn)行播放。

6aaf040a-f6e3-11ec-ba43-dac502259ad0.png

HiStreamer的邏輯架構(gòu)

它分為媒體引擎和插件兩部分。其中插件又分為平臺插件和廠商插件。媒體引擎和平臺插件,是可以跨平臺運(yùn)行的。HiStreamer 媒體引擎又分為三層:●最上面是業(yè)務(wù)封裝層,為各種業(yè)務(wù)場景封裝易于使用的接口,比如播放器、錄音機(jī)等。●中間是 Pipeline 框架層,負(fù)責(zé)業(yè)務(wù)流程管理。Pipeline 由若干節(jié)點(diǎn)構(gòu)成,音頻播放的四個(gè)節(jié)點(diǎn)在 Pipeline 框架層被組裝起來。具體的業(yè)務(wù)處理在節(jié)點(diǎn)中完成,這些節(jié)點(diǎn)支持以插件的形式擴(kuò)展新的業(yè)務(wù)處理能力:比如輸入節(jié)點(diǎn)可以擴(kuò)展支持文件輸入、流媒體輸入,解封裝節(jié)點(diǎn)可以擴(kuò)展支持 MP3、MP4、AAC 等格式的解封裝,解碼節(jié)點(diǎn)可以擴(kuò)展支持 MP3、AAC 等格式的解碼,輸出插件,可以擴(kuò)展支持不同平臺/產(chǎn)品的輸出。

●引擎還有一個(gè)插件管理層,負(fù)責(zé)插件的加載、卸載等工作。

為了提高開發(fā)效率,HiStreamer 媒體引擎還配備了一個(gè)工具庫,提供 OS 適配和日志調(diào)測等功能。

6ad56a14-f6e3-11ec-ba43-dac502259ad0.png

如何參與開源項(xiàng)目并得到能力提升

以HiStreamer媒體引擎項(xiàng)目為例介紹參與方式

參與開源項(xiàng)目,首先要找到適合自己的方向,可以結(jié)合自己的興趣方向選擇開源項(xiàng)目。比如希望做JS應(yīng)用開發(fā),則建議參與 OpenHarmony 應(yīng)用相關(guān)項(xiàng)目;如果想從事 C/C++ 開發(fā),建議參與 OpenHarmony 框架/服務(wù)等項(xiàng)目,比如:多媒體服務(wù),HiStreamer 媒體引擎等;驅(qū)動(dòng)開發(fā)也可以參與 OpenHarmony 驅(qū)動(dòng)相關(guān)項(xiàng)目。 如果想提升軟件開發(fā)技能,可以選擇氛圍較好的社區(qū),這樣能夠更容易在社區(qū)內(nèi)結(jié)識活躍的開發(fā)者和 committer,并獲得幫助。另外,挑選一個(gè)易于學(xué)習(xí)上手的項(xiàng)目比較重要,比如:代碼質(zhì)量高,入門簡單,學(xué)習(xí)曲線平緩的項(xiàng)目,這樣對開發(fā)者來說學(xué)習(xí)的路徑相對輕松。這里Jelly老師推薦了一個(gè)開源項(xiàng)目 HiStreamer 媒體引擎,在 PC 機(jī)上就可以編譯運(yùn)行,比較容易上手。大家可以在 HiStreamer 項(xiàng)目中選擇適合自己的任務(wù)參與,比如,文檔補(bǔ)充,測試用例補(bǔ)充,還可以參與問題解決,或者實(shí)現(xiàn)新的插件。

HiStreamer 媒體引擎項(xiàng)目還有自動(dòng)化測試用例,這樣有 3 個(gè)好處:①修改代碼后,執(zhí)行用例就可以比較完整地進(jìn)行測試,比手動(dòng)測試覆蓋更全,執(zhí)行更輕松;②測試用例表明了軟件的使用方法,可以作為了解軟件功能的入口。③大家還可以通過補(bǔ)充測試用例的方式參與進(jìn)來。

在參與項(xiàng)目過程中,大家可以獲得軟件設(shè)計(jì)、開發(fā)、測試相關(guān)技能的提升,這些技能普遍適用于所有軟件項(xiàng)目。同時(shí),大家還可以通過項(xiàng)目了解媒體格式相關(guān)知識。

6afc8734-f6e3-11ec-ba43-dac502259ad0.png

HiStreamer開發(fā)環(huán)境與編譯運(yùn)行

編譯代碼的第一步是搭建運(yùn)行環(huán)境。為 HiStreamer 媒體引擎搭建一個(gè)環(huán)境并運(yùn)行起來非常簡單,一般有軟件編譯背景的開發(fā)者都能辦到。一般有2種方式運(yùn)行 HiStreamer:使用 PC 或開發(fā)板。其中使用 PC 運(yùn)行的開發(fā)環(huán)境最為簡單,它對電腦系統(tǒng)沒有特殊的要求,基本上所有電腦都能做到。在開發(fā)板上運(yùn)行的環(huán)境復(fù)雜一些,需要在 Linux 系統(tǒng)下編譯,并且需要較大的硬盤空間,至少需要 60G 內(nèi)存,還需要有開發(fā)板。

Jelly 老師主要介紹如何在 PC 上運(yùn)行 HiStreamer 媒體引擎。首先需要安裝 CLion 和 MinGW 8.1.0 posix seh 版本。隨后啟動(dòng) CLion,F(xiàn)ile->Open,選擇 histreamer_dev 目錄,打開它即可編譯運(yùn)行。第一次打開會(huì)自動(dòng)下載 test_resource和histreamer。如果要運(yùn)行自動(dòng)化測試,還需要安裝 Python3。

PC編譯運(yùn)行步驟:

1.打開 CLion,點(diǎn)擊File->Open。

2.瀏覽到 histreamer_dev 目錄,打開它就能自動(dòng)開始配置。

3.如果沒有配置,可以點(diǎn)擊項(xiàng)目根目錄,右鍵,選擇 Reload CMake Project。

4.配置完成,右上角就可以選擇構(gòu)建目標(biāo) histreamer_player,點(diǎn)擊編譯運(yùn)行按鈕即可編譯運(yùn)行。

5.還可以選擇其它的構(gòu)建目標(biāo),比如 histreamer_st 編譯運(yùn)行測試用例。

histreamer_st 還支持通過參數(shù)指定運(yùn)行哪些 tag 的用例,比如:

●fast - 運(yùn)行所有快速運(yùn)行完的用例;

●video_play_fast - 運(yùn)行快速的 video 播放測試;

●audio_play_fast - 運(yùn)行快速的 audio 播放測試。

6b2023b0-f6e3-11ec-ba43-dac502259ad0.png

HiStreamer單步跟蹤調(diào)試運(yùn)行

在 PC 上運(yùn)行,有一個(gè)好處就是可以通過調(diào)試運(yùn)行的方式,單步跟蹤運(yùn)行流程。通過這種方式,可以比較快地了解軟件的工作流程。下圖中幾個(gè)主要的步驟如下: 1在代碼中的某個(gè)位置設(shè)置斷點(diǎn)。

2點(diǎn)擊屏幕右上方的 Debug 按鈕,CLion 會(huì)以調(diào)試的方式將代碼運(yùn)行起來。當(dāng)運(yùn)行到設(shè)置的斷點(diǎn)位置,就會(huì)停下來。

3可以單步運(yùn)行,比如第一個(gè)按鈕 step over,點(diǎn)擊它就會(huì)往下走一行,遇到函數(shù)也不會(huì)走進(jìn)函數(shù)里面;第二個(gè)按鈕是 step into,遇到函數(shù)時(shí),將跳入函數(shù)中執(zhí)行。單步跟蹤能夠清晰地看到代碼執(zhí)行情況,這對于學(xué)習(xí)代碼運(yùn)行流程非常有幫助。

4可以查看每個(gè)線程的運(yùn)行調(diào)用棧。雙擊函數(shù)調(diào)用的位置,就能看到對應(yīng)的代碼。

5可以看到當(dāng)前的變量的值,或者添加自己關(guān)注的變量。

6b4fec12-f6e3-11ec-ba43-dac502259ad0.png

HiStreamer自動(dòng)運(yùn)行所有測試

為了方便大家補(bǔ)充用例,Jelly 老師也簡單介紹了自動(dòng)化測試用例的相關(guān)知識。在項(xiàng)目的根目錄下,有一個(gè)名為 local_test.bat 的腳本文件,雙擊它就可以運(yùn)行所有的自動(dòng)化測試。這里使用了 testngpp 這個(gè)測試框架來管理用例,具體使用方法參見這個(gè)鏈接:https://gitee.com/sinojelly/testngpp2。

測試用例被放在測試裝置(FIXTURE)中,一個(gè)測試裝置,可以有多個(gè)用例。用例可以是 TEST 定義的普通測試用例,也可以是 PTEST 定義的參數(shù)化測試用例。PTEST 后面有用例執(zhí)行時(shí)需要傳入的參數(shù),這里是 url,后面是用例的名字,要描述清楚這個(gè)用例的測試場景。下面是用例的內(nèi)容,這里是創(chuàng)建播放器播放一個(gè) url。PTEST 的參數(shù)由 DATA_PROVIDER 提供,DATA_PROVIDER 里可以有多個(gè) DATA_GROUP,針對每個(gè) DATA_GROUP 都會(huì)調(diào)用一次 PTEST,從而測試不同路徑的 url 的播放。這樣把測試用例和測試數(shù)據(jù)進(jìn)行了解耦,補(bǔ)充新的測試數(shù)據(jù)就可以覆蓋更多資源,不用修改用例。

6b65da40-f6e3-11ec-ba43-dac502259ad0.png

歡迎感興趣的開發(fā)者朋友們一起跟著媒體子系統(tǒng) HiStreamer Committer 輕松入門,成為 OpenHarmony Contributor,同時(shí)學(xué)習(xí)并實(shí)踐實(shí)用的軟件開發(fā)技能,為大家今后在軟件研發(fā)領(lǐng)域的發(fā)展夯實(shí)基礎(chǔ)。

參與戰(zhàn)“碼”先鋒,PR 征集令!在 Gitee 的 OpenHarmony 代碼倉提交 PR 參與活動(dòng),和全球的開發(fā)者一起共建 OpenHarmony 的繁榮生態(tài)!

文章中涉及的鏈接匯總:

HiStreamer媒體引擎介紹:

https://www.bilibili.com/video/BV1v5411m72k

Git下載地址:

https://gitforwindows.org

HiStreamer輔助倉histreamer_dev:

https://gitee.com/histreamer/histreamer_dev

HiStreamer環(huán)境安裝:

https://gitee.com/histreamer/histreamer_dev/blob/master/README_zh.md

Python3下載地址:

https://www.python.org/downloads/

HiStreamer測試場景和結(jié)果匯總:

https://gitee.com/histreamer/multimedia_histreamer/wikis/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/%E6%B5%8B%E8%AF%95%E5%9C%BA%E6%99%AF%E5%92%8C%E7%BB%93%E6%9E%9C%E6%B1%87%E6%80%BB

HiStreamer插件開發(fā)指南:

https://gitee.com/openharmony/multimedia_histreamer/wikis/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97

CLion下載:

https://www.jetbrains.com/clion/download/other.html

MinGW 8.1.0 posix seh 版本下載:

國外:

https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

國內(nèi):

https://pan.baidu.com/s/1A5aVLZgM71HiiOkx8207eg?pwd=a7pt

testngpp測試框架:

https://gitee.com/sinojelly/testngpp2

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3218

    瀏覽量

    42329
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3641

    瀏覽量

    16066

原文標(biāo)題:30分鐘成為Contributor|輕松入門,成為媒體子系統(tǒng)Contributor

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Openharmony軟件評估指南-米爾瑞芯微RK3568開發(fā)板

    Openharmony軟件評估指南用于介紹在米爾的開發(fā)板上運(yùn)行Openharmony系統(tǒng)下的核心資源與外設(shè)資源的測試步驟與評估方法。本文可作為前期評估指南使用,也可以作為通用系統(tǒng)開發(fā)的
    發(fā)表于 09-06 20:06

    鴻蒙開發(fā)接口媒體:【@ohos.multimedia.media (媒體服務(wù))】

    媒體子系統(tǒng)為開發(fā)者提供一套簡單且易于理解的接口,使得開發(fā)者能夠方便接入系統(tǒng)并使用系統(tǒng)媒體資源。
    的頭像 發(fā)表于 06-06 11:03 ?695次閱讀
    鴻蒙開發(fā)接口<b class='flag-5'>媒體</b>:【@ohos.multimedia.media (<b class='flag-5'>媒體</b>服務(wù))】

    鴻蒙OpenHarmony開發(fā):【編譯構(gòu)建指導(dǎo)】

    OpenHarmony編譯子系統(tǒng)是以GN和Ninja構(gòu)建為基座,對構(gòu)建和配置粒度進(jìn)行部件化抽象、對內(nèi)建模塊進(jìn)行功能增強(qiáng)、對業(yè)務(wù)模塊進(jìn)行功能擴(kuò)展的系統(tǒng),該系統(tǒng)提供以下基本功能
    的頭像 發(fā)表于 05-13 09:31 ?1532次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>開發(fā):【編譯構(gòu)建指導(dǎo)】

    如何在OpenHarmony設(shè)置靜態(tài)IP?

    介紹本文適用于所有RK3566/RK3568/RK3588平臺產(chǎn)品在OpenHarmony系統(tǒng)上設(shè)置靜態(tài)IP。本文以PurplePiOH開發(fā)板為例,在OpenHarmony系統(tǒng)上進(jìn)行設(shè)
    的頭像 發(fā)表于 05-12 08:32 ?598次閱讀
    如何在<b class='flag-5'>OpenHarmony</b>設(shè)置靜態(tài)IP?

    鴻蒙OpenHarmony開發(fā)板:【子系統(tǒng)配置規(guī)則】

    通過build倉下的subsystem_config.json可以查看所有子系統(tǒng)的配置規(guī)則。
    的頭像 發(fā)表于 05-08 22:07 ?243次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>開發(fā)板:【<b class='flag-5'>子系統(tǒng)</b>配置規(guī)則】

    鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng)編寫“Hello World”程序】 (基于RK3568開發(fā)板)

    源碼],創(chuàng)建RK3568開發(fā)板的源碼工程。 示例目錄 拉取openharmony項(xiàng)目代碼,在代碼根目錄創(chuàng)建sample子系統(tǒng)文件夾,在子系統(tǒng)目錄下創(chuàng)建hello部件文件夾,hello文件夾中創(chuàng)建
    的頭像 發(fā)表于 04-24 17:32 ?681次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【標(biāo)準(zhǔn)<b class='flag-5'>系統(tǒng)</b>編寫“Hello World”程序】 (基于RK3568開發(fā)板)

    鴻蒙OpenHarmony【快速入門概述】

    OpenHarmony是一款面向全場景的開源分布式操作系統(tǒng),采用組件化設(shè)計(jì),支持在128KiB到xGiB RAM資源的設(shè)備上運(yùn)行系統(tǒng)組件,設(shè)備開發(fā)者可基于目標(biāo)硬件能力自由選擇系統(tǒng)組件進(jìn)
    的頭像 發(fā)表于 04-19 15:14 ?398次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【快速<b class='flag-5'>入門</b>概述】

    深開鴻正式升級成為OpenHarmony項(xiàng)目群A類捐贈(zèng)人

    近日,深開鴻作為OpenHarmony核心共建單位、OpenHarmony生態(tài)委員會(huì)委員單位、OpenHarmony代碼Top 10貢獻(xiàn)單位,通過了開放原子開源基金會(huì)OpenHarmony
    的頭像 發(fā)表于 04-18 09:40 ?582次閱讀
    深開鴻正式升級<b class='flag-5'>成為</b><b class='flag-5'>OpenHarmony</b>項(xiàng)目群A類捐贈(zèng)人

    OpenHarmony內(nèi)核編程實(shí)戰(zhàn)

    編程入門[Hello,OpenHarmony]在正式開始之前,對于剛接觸OpenHarmony的伙伴們,面對大篇幅的源碼可能無從下手,不知道怎么去編碼寫程序,下面用一個(gè)簡單的例子帶伙伴們入門
    的頭像 發(fā)表于 03-27 08:31 ?701次閱讀
    <b class='flag-5'>OpenHarmony</b>內(nèi)核編程實(shí)戰(zhàn)

    鴻蒙OpenHarmony技術(shù):【設(shè)備互信認(rèn)證】

    OpenHarmony中,設(shè)備互信認(rèn)證模塊作為安全子系統(tǒng)的子模塊,負(fù)責(zé)設(shè)備間可信關(guān)系的建立、維護(hù)、使用、撤銷等全生命周期的管理,實(shí)現(xiàn)可信設(shè)備間的互信認(rèn)證和安全會(huì)話密鑰協(xié)商,是搭載OpenHarmony的設(shè)備進(jìn)行可信互聯(lián)的基礎(chǔ)平
    的頭像 發(fā)表于 03-25 17:04 ?625次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>技術(shù):【設(shè)備互信認(rèn)證】

    鴻蒙開發(fā)圖形圖像:【圖形子系統(tǒng)

    圖形子系統(tǒng)主要包括UI組件、布局、動(dòng)畫、字體、輸入事件、窗口管理、渲染繪制等模塊,構(gòu)建基于輕量OS應(yīng)用框架滿足硬件資源較小的物聯(lián)網(wǎng)設(shè)備或者構(gòu)建基于標(biāo)準(zhǔn)OS的應(yīng)用框架滿足富設(shè)備的OpenHarmony系統(tǒng)應(yīng)用開發(fā)。
    的頭像 發(fā)表于 03-23 16:50 ?585次閱讀
    鴻蒙開發(fā)圖形圖像:【圖形<b class='flag-5'>子系統(tǒng)</b>】

    鴻蒙開發(fā)學(xué)習(xí):【驅(qū)動(dòng)子系統(tǒng)

    OpenHarmony驅(qū)動(dòng)子系統(tǒng)采用C面向?qū)ο缶幊棠P蜆?gòu)建,通過平臺解耦、內(nèi)核解耦,兼容不同內(nèi)核,提供了歸一化的驅(qū)動(dòng)平臺底座,旨在為開發(fā)者提供更精準(zhǔn)、更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。
    的頭像 發(fā)表于 03-17 22:05 ?534次閱讀
    鴻蒙開發(fā)學(xué)習(xí):【驅(qū)動(dòng)<b class='flag-5'>子系統(tǒng)</b>】

    【工作準(zhǔn)備】OpenHarmony鴻蒙操作系統(tǒng)開發(fā)——基礎(chǔ)必備軟件

    前言 在下根據(jù)多年 OpenHarmony 內(nèi)核及多個(gè)子系統(tǒng)的開發(fā)經(jīng)驗(yàn),將用到的必備工具軟件列出一張清單,供新同學(xué)參考。如何精進(jìn)?請自行搜索專業(yè)手冊進(jìn)行學(xué)習(xí),我是碰到什么問題、需要什么小功能然后去查
    的頭像 發(fā)表于 02-23 15:51 ?1638次閱讀
    【工作準(zhǔn)備】<b class='flag-5'>OpenHarmony</b>鴻蒙操作<b class='flag-5'>系統(tǒng)</b>開發(fā)——基礎(chǔ)必備軟件

    Purple Pi 帶你7天入門OpenHarmony

    大家好!我是一名剛入門OpenHarmony的小白,很高興能夠和大家一起學(xué)習(xí)OpenHarmony,在本系列文章里,我將分享使用PurplePiOH從零開始學(xué)習(xí)開源鴻蒙的整個(gè)流程,并提供每一步需要
    的頭像 發(fā)表于 02-19 13:20 ?431次閱讀
    Purple Pi 帶你7天<b class='flag-5'>入門</b><b class='flag-5'>OpenHarmony</b>

    輕松入門開發(fā)ARM程序分享

    電子發(fā)燒友網(wǎng)站提供《輕松入門開發(fā)ARM程序分享.pdf》資料免費(fèi)下載
    發(fā)表于 11-17 11:39 ?0次下載
    <b class='flag-5'>輕松</b><b class='flag-5'>入門</b>開發(fā)ARM程序分享