單絲不成線,獨(dú)木不成林,一個(gè)社區(qū)想要健康蓬勃發(fā)展離不開(kāi)社區(qū)參與者的持續(xù)貢獻(xiàn)。而社區(qū)貢獻(xiàn)點(diǎn)有很多種,本文以貢獻(xiàn)OpenAtom OpenHarmony(以下簡(jiǎn)稱(chēng)“OpenHarmony”)開(kāi)發(fā)樣例為例,圍繞以下5個(gè)問(wèn)題,帶大家了解上手并參與社區(qū)貢獻(xiàn)。
1.如何參與社區(qū)?
2.什么是開(kāi)發(fā)樣例?
3.社區(qū)需要什么開(kāi)發(fā)樣例?
4.如何開(kāi)發(fā)樣例?
5.樣例能夠給“我”帶來(lái)什么?
如何參與社區(qū)
參與社區(qū)主要分為如下兩種方式: ?提交Issue
Issue指的是一項(xiàng)待完成的工作,中文可以譯為“問(wèn)題”或“事務(wù)”,例如軟件的bug、功能建議、待完成的任務(wù)、文檔缺失的報(bào)告等。
?提交Pull Request
Pull Request(PR)是一種通知機(jī)制。你修改了他人的代碼,將你的修改通知原來(lái)的作者,希望他合并你的修改,這就是Pull Request。
因此你可以認(rèn)為Issue是發(fā)布社區(qū)任務(wù)的方式,PR是完成社區(qū)任務(wù)的方式。既然是深度參與社區(qū),必然是要做社區(qū)任務(wù)的“完成者”。
那么該如何提交PR呢?上面也說(shuō)了提交PR其實(shí)就是提交自己的修改/新增的代碼,是基于代碼進(jìn)行的,而代碼則有如下3種提交方式:
?文檔/注釋補(bǔ)充完善
?開(kāi)發(fā)樣例提交
?OS功能開(kāi)發(fā)
3種提交方式難度依次遞進(jìn),本文主要講解開(kāi)發(fā)樣例提交。
什么是開(kāi)發(fā)樣例
開(kāi)發(fā)樣例可分為如下兩部分: ?API使用范例的Sample
針對(duì)各種SDK API進(jìn)行開(kāi)發(fā)的樣例,開(kāi)發(fā)者可以快速熟悉OpenHarmony SDK所提供的API和應(yīng)用開(kāi)發(fā)流程。
?場(chǎng)景化Demo
生活場(chǎng)景的解決方案樣例。
開(kāi)發(fā)者通過(guò)閱讀、學(xué)習(xí)和運(yùn)行樣例能夠快速上手應(yīng)用開(kāi)發(fā),并學(xué)習(xí)到其中的項(xiàng)目技術(shù)點(diǎn)或項(xiàng)目實(shí)現(xiàn)方案等。
社區(qū)通過(guò)發(fā)布樣例的方式,幫助開(kāi)發(fā)者快速上手學(xué)習(xí)OpenHarmony,那么作為開(kāi)發(fā)者我們?cè)趯W(xué)習(xí)和上手OpenHarmony后,要如何以樣例的方式回饋和提交到社區(qū)呢?
社區(qū)需要什么樣例
在開(kāi)發(fā)樣例前,需要先知道社區(qū)需要的是什么樣例,那么在樣例提交時(shí)才能更好地被社區(qū)所認(rèn)可和接受。
社區(qū)需要的樣例可分為兩大類(lèi):
?Samples倉(cāng)庫(kù)未覆蓋到的SDK API Sample;
?基于日常生活的解決方案demo;
那么如何才能發(fā)掘到社區(qū)需求的樣例呢?
Sample
Sample是指針對(duì)各種SDK API進(jìn)行開(kāi)發(fā)的樣例如下圖所示,所以可以對(duì)比API文檔進(jìn)行查閱搜索未涉及的API,然后進(jìn)行樣例開(kāi)發(fā)。

下圖左側(cè)為applications_app_samples倉(cāng)庫(kù)樣例,右側(cè)為JS及TS API文檔,可進(jìn)行對(duì)比查閱。

除此之外,還可以通過(guò)查詢(xún)版本說(shuō)明,在特性變更中尋找倉(cāng)庫(kù)未涉及到的新特性,對(duì)新特性進(jìn)行Sample開(kāi)發(fā)。下圖為OpenHarmony 3.2 Beta2版本說(shuō)明。
場(chǎng)景化demo
場(chǎng)景化demo是OpenHarmony知識(shí)體系工作組下針對(duì)智能家居場(chǎng)景、影音娛樂(lè)場(chǎng)景、購(gòu)物消費(fèi)場(chǎng)景、運(yùn)動(dòng)健康場(chǎng)景、智能出行場(chǎng)景、智慧辦公場(chǎng)景等生活場(chǎng)景進(jìn)行開(kāi)發(fā)的解決方案樣例。那么我們則可以根據(jù)日常生活的需求,尋找生活場(chǎng)景下的痛點(diǎn),開(kāi)發(fā)解決方案樣例。
下圖為知識(shí)系統(tǒng)工作組knowledge倉(cāng)庫(kù)

場(chǎng)景倉(cāng)庫(kù)匯總:
智能家居場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_smart_home
影音娛樂(lè)場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_entainment
購(gòu)物消費(fèi)場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_shopping
運(yùn)動(dòng)健康場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_temp
智能出行場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_travel
智慧辦公場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_temp
快速上手場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_temp
其他場(chǎng)景
https://gitee.com/openharmony-sig/knowledge_demo_temp
我有一個(gè)idea
基于平時(shí)出入門(mén)禁和打卡簽到等日常生活場(chǎng)景,發(fā)現(xiàn)生活中有許多與人臉識(shí)別相關(guān)的需求,在查閱OpenHarmony社區(qū)后,發(fā)現(xiàn)并沒(méi)有類(lèi)似樣例,于是開(kāi)發(fā)人臉識(shí)別樣例的想法便油然而生,那有了好的idea后應(yīng)該怎么做呢?
如何開(kāi)發(fā)樣例
如下圖所示,以人臉識(shí)別demo為例大致可以將開(kāi)發(fā)樣例分為5大步驟:

?上手學(xué)習(xí)
通過(guò)閱讀官網(wǎng)文檔、在線課程、學(xué)習(xí)路徑和開(kāi)發(fā)者文檔等,認(rèn)識(shí)了解OpenHarmony開(kāi)源項(xiàng)目,熟悉應(yīng)用開(kāi)發(fā)/設(shè)備開(kāi)發(fā)流程等。

?技術(shù)選型
經(jīng)查閱后發(fā)現(xiàn)GitHub上有開(kāi)源的人臉識(shí)別引擎Seetaface2,OpenHarmony 3.2 beta中也有可用的媒體庫(kù)和相機(jī)等API,于是便可以基于潤(rùn)和HH-SCDAYU200開(kāi)發(fā)套件的硬件平臺(tái),與基于OpenHarmony 3.2 beta、Seetaface2和OpenCV的軟件平臺(tái)進(jìn)行項(xiàng)目開(kāi)發(fā)。
?項(xiàng)目設(shè)計(jì)
樣例一共規(guī)劃有4項(xiàng)功能分別為:人臉拍攝、人臉?shù)浫?、人臉框選和人臉識(shí)別,其中人臉拍攝通過(guò)拉起相機(jī)應(yīng)用進(jìn)行拍照,再通過(guò)媒體庫(kù)API獲取相冊(cè)圖片。人臉?shù)浫搿⑷四樋蜻x和人臉識(shí)別功能則通過(guò)將Seetaface2移植到OpenHarmony中,并利用NAPI組件將Seetaface2接口進(jìn)行封裝和暴露給應(yīng)用來(lái)調(diào)用,最終在人臉識(shí)別FA中實(shí)現(xiàn)這四大功能。

?編碼調(diào)試
根據(jù)項(xiàng)目設(shè)計(jì)進(jìn)行相應(yīng)ArkUI代碼和邏輯代碼編寫(xiě)。

開(kāi)發(fā)中遇到技術(shù)問(wèn)題可通過(guò)查詢(xún)文檔,或在對(duì)應(yīng)倉(cāng)庫(kù)搜索相關(guān)Issue,然后提交Issue尋找解決辦法。

樣例最終演示效果:
?代碼提交
參考如何提交代碼
樣例能夠給“我”帶來(lái)什么
享受開(kāi)源,收獲成就
成為OpenHarmony開(kāi)源共建者,在倉(cāng)庫(kù)共建者名單擁有自己“一席之地”。

OpenHarmony共建者徽章:提交過(guò)PR的小伙伴可通過(guò)訪問(wèn)https://metrics.openharmony.cn/#/codeContributor進(jìn)行領(lǐng)取。
優(yōu)秀樣例可申請(qǐng):
?OpenHarmony官網(wǎng)開(kāi)發(fā)樣例展出;

?OpenAtom OpenHarmony公眾號(hào)展出;

?展會(huì)進(jìn)行樣例展出;

提升技術(shù),擴(kuò)展視野
?個(gè)人技術(shù)能力與編碼水平的提升;
?參與社區(qū)與更多的技術(shù)專(zhuān)家與開(kāi)發(fā)者接觸和交流;

成為“社區(qū)大佬”
貢獻(xiàn)樣例作為社區(qū)成長(zhǎng)進(jìn)階的敲門(mén)磚,可以逐漸參與到OpenHarmony 社區(qū)代碼貢獻(xiàn)、文檔貢獻(xiàn)、技術(shù)方案討論及設(shè)計(jì)、解答用戶(hù)問(wèn)題、發(fā)表技術(shù)文章及視頻課程等,最終由社區(qū)用戶(hù)逐漸成長(zhǎng)為SIG負(fù)責(zé)人或PMC成員,逐漸走向“社區(qū)技術(shù)大佬”。
參考社區(qū)成長(zhǎng)路徑。

-
代碼
+關(guān)注
關(guān)注
30文章
4927瀏覽量
72488 -
人臉識(shí)別
+關(guān)注
關(guān)注
77文章
4104瀏覽量
87246 -
OpenHarmony
+關(guān)注
關(guān)注
31文章
3897瀏覽量
20489
原文標(biāo)題:如何貢獻(xiàn)OpenHarmony開(kāi)發(fā)樣例
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【OpenHarmony開(kāi)發(fā)樣例】智能家居相關(guān)demo樣例匯總
OpenHarmony標(biāo)準(zhǔn)設(shè)備應(yīng)用開(kāi)發(fā)筆記匯總
基于OpenHarmony開(kāi)發(fā)的demo樣例展示
燒錄OpenHarmony 3.2(嘗鮮版)步驟
【開(kāi)發(fā)樣例】基于 OpenHarmony 開(kāi)發(fā)的JS燈控應(yīng)用
【開(kāi)發(fā)樣例】OpenHarmony分布式購(gòu)物車(chē)
【開(kāi)發(fā)樣例】用JS寫(xiě)一個(gè)OpenHarmony拼圖小游戲
基于 OpenHarmony 系統(tǒng)開(kāi)發(fā)的語(yǔ)音識(shí)別
【OpenHarmony樣例】基于RK3399開(kāi)發(fā)板開(kāi)發(fā)的智能門(mén)禁人臉識(shí)別(JS)樣例
基于OpenHarmony 的數(shù)字管家應(yīng)用開(kāi)發(fā)樣例
華為開(kāi)發(fā)者大會(huì)OpenHarmony開(kāi)發(fā)樣例共建與開(kāi)發(fā)者成長(zhǎng)圖譜
openharmony開(kāi)源社區(qū) OpenHarmony開(kāi)發(fā)樣例上新了
OpenHarmony 3.1 Release發(fā)布 OpenHarmony3.1 Release特性開(kāi)發(fā)樣例概述
OpenHarmony應(yīng)用簽名方法的步驟
OpenHarmony創(chuàng)意開(kāi)發(fā)樣例亮相HDC2022 共創(chuàng)欣欣向榮的“開(kāi)源雨林”

基于OpenHarmony開(kāi)發(fā)樣例的步驟
評(píng)論