单丝不成线,独木不成林,一个社区想要健康蓬勃发展离不开社区参与者的持续贡献。而社区贡献点有很多种,本文以贡献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成员,逐渐走向“社区技术大佬”。
参考社区成长路径。
氢能翘楚亿华通产业爆发前夜 还需资本支持才能打赢产能战
基于MAX038的单片机多波调频信号产生器的设计
佰维存储TF200系列microSD卡通过树莓派AVL认证
iphone8什么时候发布?iPhone8多少钱?iphone8的最新消息:将配竖向双镜头隐藏home键
鹏翔运达报名角逐2018年度高工金球奖“年度技术创新奖”
基于OpenHarmony开发样例的步骤
激光导航和视觉导航,哪种更适合扫地机器人?
有关IBIS 6.1的知识信息简介
骁龙835产能问题小米6延后?小米5C采用自主研发松果性价比极高
雅虎在中国大陆停止产品与服务 雅虎在中国用不了了
获得高输出电流的三种方法介绍
看一下EUV光刻的整个过程
正点原子开拓者FPGA:DS18B20湿度传感器实验(2)
ARM处理器引领无线连接迈进LTE时代
三星给Note7发放死亡固件 小米6发布会邀请函曝光
特斯拉第四款车型Model Y上市进程加速 LED车尾灯市场受惠
虚拟化技术有哪些
水处理设施远程监控运营管理系统解决方案
门禁改装读码器 盗取银行卡存款惊现新手段
风向风速记录仪的应用领域有哪些,它的效果如何