首页 > 其他分享 >如何贡献OpenHarmony开发样例

如何贡献OpenHarmony开发样例

时间:2022-09-22 17:23:49浏览次数:88  
标签:OpenHarmony 社区 openharmony demo 样例 贡献 https

单丝不成线,独木不成林,一个社区想要健康蓬勃发展离不开社区参与者的持续贡献。而社区贡献点有很多种,本文以贡献OpenAtom OpenHarmony(以下简称“OpenHarmony”)开发样例为例,围绕以下5个问题,带大家了解上手并参与社区贡献。

1.如何参与社区?

2.什么是开发样例?

3.社区需要什么开发样例?

4.如何开发样例?

5.样例能够给“我”带来什么?

 

如何参与社区

参与社区主要分为如下两种方式:

• 提交Issue

Issue指的是一项待完成的工作,中文可以译为“问题”或“事务”,例如软件的bug、功能建议、待完成的任务、文档缺失的报告等。

• 提交Pull Request

Pull Request(PR)是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是Pull Request。

因此你可以认为Issue是发布社区任务的方式,PR是完成社区任务的方式。既然是深度参与社区,必然是要做社区任务的“完成者”。

那么该如何提交PR呢?上面也说了提交PR其实就是提交自己的修改/新增的代码,是基于代码进行的,而代码则有如下3种提交方式:

• 文档/注释补充完善

• 开发样例提交

• OS功能开发

3种提交方式难度依次递进,本文主要讲解开发样例提交。

 

什么是开发样例

开发样例可分为如下两部分:

 

• API使用范例的Sample

针对各种SDK API进行开发的样例,开发者可以快速熟悉OpenHarmony SDK所提供的API和应用开发流程。

 

• 场景化Demo

生活场景的解决方案样例。

开发者通过阅读、学习和运行样例能够快速上手应用开发,并学习到其中的项目技术点或项目实现方案等。

社区通过发布样例的方式,帮助开发者快速上手学习OpenHarmony,那么作为开发者我们在学习和上手OpenHarmony后,要如何以样例的方式回馈和提交到社区呢?

 

社区需要什么样例

在开发样例前,需要先知道社区需要的是什么样例,那么在样例提交时才能更好地被社区所认可和接受。社区需要的样例可分为两大类:

• Samples仓库未覆盖到的SDK API Sample;

• 基于日常生活的解决方案demo;

那么如何才能发掘到社区需求的样例呢?

 

Sample

Sample是指针对各种SDK API进行开发的样例如下图所示,所以可以对比API文档进行查阅搜索未涉及的API,然后进行样例开发。

 

下图左侧为applications_app_samples仓库样例,右侧为JS及TS API文档,可进行对比查阅。

 

 

除此之外,还可以通过查询版本说明,在特性变更中寻找仓库未涉及到的新特性,对新特性进行Sample开发。下图为OpenHarmony 3.2 Beta2版本说明。

 

场景化demo

场景化demo是OpenHarmony知识体系工作组下针对智能家居场景、影音娱乐场景、购物消费场景、运动健康场景、智能出行场景、智慧办公场景等生活场景进行开发的解决方案样例。那么我们则可以根据日常生活的需求,寻找生活场景下的痛点,开发解决方案样例。

下图为知识系统工作组knowledge仓库

 

场景仓库汇总:

智能家居场景

https://gitee.com/openharmony-sig/knowledge_demo_smart_home

影音娱乐场景

https://gitee.com/openharmony-sig/knowledge_demo_entainment

购物消费场景

https://gitee.com/openharmony-sig/knowledge_demo_shopping

运动健康场景

https://gitee.com/openharmony-sig/knowledge_demo_temp

智能出行场景

https://gitee.com/openharmony-sig/knowledge_demo_travel

智慧办公场景

https://gitee.com/openharmony-sig/knowledge_demo_temp

快速上手场景

https://gitee.com/openharmony-sig/knowledge_demo_temp

其他场景

https://gitee.com/openharmony-sig/knowledge_demo_temp

 

我有一个idea

基于平时出入门禁和打卡签到等日常生活场景,发现生活中有许多与人脸识别相关的需求,在查阅OpenHarmony社区后,发现并没有类似样例,于是开发人脸识别样例的想法便油然而生,那有了好的idea后应该怎么做呢?

 

如何开发样例

如下图所示,以人脸识别demo为例大致可以将开发样例分为5大步骤:

 

• 上手学习

通过阅读官网文档、在线课程、学习路径和开发者文档等,认识了解OpenHarmony开源项目,熟悉应用开发/设备开发流程等。

 

 

 

• 技术选型

经查阅后发现GitHub上有开源的人脸识别引擎Seetaface2,OpenHarmony 3.2 beta中也有可用的媒体库和相机等API,于是便可以基于润和HH-SCDAYU200开发套件的硬件平台,与基于OpenHarmony 3.2 beta、Seetaface2和OpenCV的软件平台进行项目开发。

 

• 项目设计

样例一共规划有4项功能分别为:人脸拍摄、人脸录入、人脸框选和人脸识别,其中人脸拍摄通过拉起相机应用进行拍照,再通过媒体库API获取相册图片。人脸录入、人脸框选和人脸识别功能则通过将Seetaface2移植到OpenHarmony中,并利用NAPI组件将Seetaface2接口进行封装和暴露给应用来调用,最终在人脸识别FA中实现这四大功能。

 

 

• 编码调试

根据项目设计进行相应ArkUI代码和逻辑代码编写。

 

 

开发中遇到技术问题可通过查询文档,或在对应仓库搜索相关Issue,然后提交Issue寻找解决办法。

 

 

• 代码提交

参考如何提交代码

 

样例能够给“我”带来什么

享受开源,收获成就

成为OpenHarmony开源共建者,在仓库共建者名单拥有自己“一席之地”。

 

 

OpenHarmony共建者徽章:提交过PR的小伙伴可通过访问https://metrics.openharmony.cn/#/codeContributor进行领取。

优秀样例可申请:

• OpenHarmony官网开发样例展出;

 

 

 

• OpenAtom OpenHarmony公众号展出;

 

 

 

• 展会进行样例展出;

 

 

提升技术,扩展视野

• 个人技术能力与编码水平的提升;

• 参与社区与更多的技术专家与开发者接触和交流;

 

 

 

成为“社区大佬”

贡献样例作为社区成长进阶的敲门砖,可以逐渐参与到OpenHarmony 社区代码贡献、文档贡献、技术方案讨论及设计、解答用户问题、发表技术文章及视频课程等,最终由社区用户逐渐成长为SIG负责人或PMC成员,逐渐走向“社区技术大佬”。

参考社区成长路径。

 

 

 

参考链接

知识体系

https://gitee.com/openharmony-sig/knowledge

人脸识别demo

https://gitee.com/openharmony-sig/knowledge_demo_travel/blob/master/docs/FaceRecognition_ETS/README_zh.md

applications_app_samples

https://gitee.com/openharmony/applications_app_samples

OpenHarmony版本说明

https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/Readme.md

OpenHarmony官网

https://www.openharmony.cn/

如何提交代码

https://gitee.com/openharmony-sig/knowledge/blob/master/docs/co-construct_demos/demo_code_submit.md

OpenHarmony官网文档

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/OpenHarmony-Overview_zh.md/

OpenHarmony开发样例

https://growing.openharmony.cn/mainPlay/sample

OpenHarmony学习路径

https://growing.openharmony.cn/mainPlay/learnPath

共建者徽章

https://metrics.openharmony.cn/#/codeContributor

社区成长路径

https://www.openharmony.cn/role

如何使用Issue管理软件项目?

https://www.ruanyifeng.com/blog/2017/08/issue.html

 

标签:OpenHarmony,社区,openharmony,demo,样例,贡献,https
From: https://www.cnblogs.com/openharmony/p/16720122.html

相关文章

  • 基于OpenHarmony的智能喝水提醒器
    一、硬件说明NeptuneOpenHarmony物联网IOT模组Wi-Fi&蓝牙双模开发板、超声波模块、蜂鸣器模块、杜邦线若干开发板相关资料:https://gitee.com/hihope_iot/docs/tree/mast......
  • 如何利用OpenHarmony ArkUI的Canvas组件实现涂鸦功能?
     简介ArkUI是一套UI开发框架,提供了开发者进行应用UI开发时所需具备的能力。随着OpenAtomOpenHarmony(以下简称“OpenHarmony”)不断更新迭代,ArkUI也提供了很多新的组件......
  • OpenHarmony 3.2 Beta源码分析之MediaLibrary
     1.MediaLibrary介绍OpenAtomOpenHarmony(以下简称“OpenHarmony”)MediaLibrary媒体库提供了一系列易用的接口用于获取媒体文件元数据信息。MediaLibrary接口是OpenHa......
  • Max-Min Sums(组合计数,算贡献)
    题意对于一个有限集合\(X\),令\(f(X)=\maxX-\minX\)给定\(N\)个整数\(A_1,A_2,\dots,A_N\)我们要从中选择\(K\)个元素构成一个新的集合\(S\)。如果我们根据下标......
  • 手把手教你君正X2000开发板的OpenHarmony环境搭建
    摘要:本文主要介绍基于君正X2000开发板的OpenHarmony环境搭建以及简单介绍网络配置情况本文分享自华为云社区《君正X2000开发板的OpenHarmony环境搭建》,作者:星辰27。本文......
  • OpenHarmony中的HDF单链表及其迭代器
    概念为了性能考虑,嵌入式系统一般使用C语言进行开发,由于C语言标准库没有封装链表,所以嵌入式系统一般自己设计和实现链表这种数据结构。单链表是链表中的一种,本文描述Open......
  • 02-mORMot框架样例学习-02 - Embedded SQLite3 ORM(SQLite3 数据库)
     programProject01;uses{$ISynDprUses.inc}//useFastMM4onolderDelphi,orsetFPCthreadsForms,SysUtils,SynCommons,mORMot,Unit1......
  • mORMot框架样例学习汇总
    SynopsemORMot框架样例学习--汇总00-mORMot安装01-SynopsemORMot框架样例学习-01InMemoryORM......
  • C. Monoblock(贡献 子段) CF 1715C
    题目:​ 给出长度为n的序列,计算其所有子段的答案和\((\sum_{l=1}^{n}\sum_{r=l}^ng(l,r))\)。对于子段\([l,r]\)的计算公式\(g(l,r)\)=l到r之间合并后的块数。​ 合并......
  • 3.DockerFile文件编写样例
    Base镜像(scratch):DockerHub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的1)编写DockerFile文件:vi/home/mydocker/Dockerfile文件,内容如下:FRO......