巴延兴:从主导多个SIG组到OpenHarmony“代码贡献之星”,我是如何做到的?
编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献、分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点。

开源软件(以下简称“开源”)于上世纪80年代应运而生,随后惠及全球。如今,开源技术支撑了 90% 以上的互联网产品,并已经深入到各行业的商业应用中。2021 年,我国首次将“开源”明确列入《中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要》。虽然我国开源建设起步相对较晚,但国家在战略层已经开始给予了开源的肯定和支持。目前,开源已成为全球软件技术和产业创新的主导模式。
作为开放原子开源基金会的白金捐赠人、OpenAtom OpenHarmony(以下简称“OpenHarmony”)B 类捐赠人,深开鸿核心技术团队完整地继承了前期 OpenHarmony 业务技术积累,以共建共治共享的开源精神,以成为智能物联网操作系统领军者为战略目标,基于 OpenHarmony 聚焦智能物联网操作系统(KaihongOS)的技术研发与持续创新。致力于构建多赢的物联网操作系统生态圈,持续拓宽行业边界,实现万物互联。
作为资深 OS 框架开发工程师,巴延兴负责整体技术规划、项目看护、成果交付以及与社区的沟通协调;辅助工具 SIG 的申请成立、SIG 的孵化以及毕业流程的推进工作。其中,辅助工具 SIG 包括 NAPI 框架生成工具、开机动画工具、IDL 转换工具等一系列工具。
他常说,在这个世上,没有从天而降的好运和奇迹,机会只留给有准备的人。巴延兴抓住机遇,全力拥抱开源时代,在开源软件的基础上,为企业提供安全、稳定的企业级开源软件,并将代码百分之百回馈给社区。十年如一日对工作极致负责的他,用专业汇聚能量,目前共计带领团队主导 4 个 SIG、参与 12 个 SIG 的代码贡献,累计向主干贡献代码 30W+ 行。
此次我们邀请了深开鸿巴延兴前来参加访谈,希望通过他的视角,带我们更加全面地了解深开鸿团队背后的故事。

Q=OpenHarmony A=巴延兴
Q1:可以介绍下自己以及所在开发团队吗?
大家好,我是巴延兴,是深圳开鸿数字产业发展有限公司资深OS框架开发工程师。从业以来,我一直深耕终端设备的研发领域,拥有十多年的移动系统开发经验,去年有幸加入深开鸿南京研发团队,希望为操作系统发展贡献绵薄之力。
深开鸿团队一方面承担着公司 KaihongOS(OpenHarmony 商业发行版之一)的研发任务,另一方面积极地、大颗粒地、全方位地面向 OpenHarmony 社区进行开源贡献。
Q2:作为开发领域技术达人,请问哪些原因让您决定参与OpenHarmony的社区贡献?
随着 5G 时代的到来,数字化升级、万物互联、人机物融合等需求越来越旺盛,“开源”首次被明确列入《中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要》。作为互通互联生态架构基座的操作系统,OpenHarmony 应运而生。
深开鸿技术团队从 OpenHarmony 开源项目成立伊始就与 OpenHarmony 工作组展开了深度合作,是业内首批对 OpenHarmony 在产业上的应用及赋能进行深入研究的公司。我认为未来的市场将出现移动端操作系统高速发展的窗口期,因此,当我得知有深开鸿这样一家以 OpenHarmony 为技术底座的操作系统发行版公司诞生的时候,我便毫不犹豫地加入了。
自参与 OpenHarmony 社区共建以来,我深度参与了代码共建的工作,结合多年来在系统内核、系统安全、网络通信、多媒体及 AI 等技术领域的积累,主导多个 SIG 组的形式持续向社区贡献高质量代码,不断夯实 OpenHarmony 的基础能力,加速推进 OpenHarmony 生态建设。
Q3:恭喜您获得2月代码贡献之星,非常了不起,可以说说您在社区具体做了哪些代码贡献,获得哪些成果吗?
去年 6 月,深开鸿开始参与 RISC-V SIG,从芯片适配开始,再到承接 Driver SIG 的音视频硬编解码 HDF 框架实现的任务。随着开源经验的积累,团队也汇聚了各领域的技术专家。因此,深开鸿在 2021 年 9 月份正式主导了第一个 SIG 组——AI 框架集成 SIG 组。
在这过程中,我参与了需求分析、架构设计、代码框架搭建以及代码评审、入库等研发全流程;基于 RockChip Toybrick 3568x 实现了 HDF 框架开发;基于瑞芯微的 MPP 框架提供的 MppBuffer、MppBufferGroup 以及 packet 和 frame 相关的组件和接口,结合 Buffer 队列,共享内存等机制,实现了硬件编解码流程,并完成了相关的编解码演示程序和单元测试程序;基于 HJSUnit 测试框架,使用 JavaScript 语言编写 JS 全组件属性、样式、事件、方法等测试脚本;以上相关代码都已合入主干。
伴随研发团队规模逐渐扩大,团队能力逐渐提升,可参与主导或共建的技术领域也越来越多——辅助工具、软总线、多媒体、内核等项目都有深开鸿团队的身影,慢慢呈现了“遍地开花”的趋势,也看到我们的成果帮助了更多的开发者,真正感受到了生态的繁荣。
到目前为止,深开鸿主导了 4 个 SIG,参与共建的 SIG 有 12 个,尤其是内核、软总线、HDF、ArkUI 等根技术领域都有深度参与,累计向主干贡献代码 30W+ 行。
Q4:可以请您给我们分享一下,在整个开发的过程中,您和您的团队遇到过哪些技术上或其他方面的难题?这些难题又是如何被逐一解决的?从中总结了哪些经验呢?
我们在内核开发过程中遇到不少难题,比如内核支持的单板种类有限、Hi3861 开发板内核固化、编译环境搭建复杂等问题都加剧了进入内核研发的难度。面对这些困难,我们在探索过程中也摸索出了一套方法。
首先,我们利用仿真技术解决单板有限的问题,其次利用 Q/A 的方式将每一步都记录下来,输出技术文档,夯实每一步的脚印。对新技术保持一颗好奇心是每一个内核开发人员必备的素养,这样的心态促使我们不断攻坚克难。
目前内核开发工作还处于初级阶段,取得了初步的成果,但我们还会继续进行研发投入,在这过程中,不仅能提高我们自身的技术能力,而且还能增强公司的技术储备,促成良性循环。
Q5:加入OpenHarmony生态以来,深开鸿在社区的开源贡献方面取得了不小的成果,您认为“秘诀”都有哪些呢?
如果非要说有什么“秘诀”的话,那就是深开鸿始终坚持从开源中来,到开源中去的开源理念,结合 OpenHarmony 系统特性以及行业应用对操作系统的需求,推出具备行业共性的 KaihongOS 商业发行版,在满足客户需求的同时,也将沉淀下来的技术能力及行业实践回馈给社区。
除了主干代码贡献,我们在三方库、知识体系工作组、兼容性工作组、基础服务、开发板等方向也同时发力,多维度地、多层次地进行开源贡献。同时,我们的贡献也得到了社区的认可,深开鸿已正式成为兼容性工作组的第一家扩展成员的单位。
Q6:您最想吐槽OpenHarmony哪些方面?对未来的OpenHarmony有什么期望?
OpenHarmony 目前处在起步阶段,很多事物尚未成熟,比如系统能力还有待增强;应用生态不够丰富;开发文档不够齐全,开发者入门门槛高等问题都亟待解决,这就需要有更多的技术精英、行业大咖参与 OpenHarmony 社区共建。至于对未来的期望,自然是希望它能够蓬勃发展,向当今主流的开源生态看齐甚至超越。
Q7:未来深开鸿还会做哪些事情?朝哪个方向努力?
作为 OpenHarmony 开源项目的共建单位之一,深开鸿有责任、有义务、更有能力持续完善 OpenHarmony 的技术能力、不断以创新技术加速开源生态建设的布局。从产业生态角度来看,丰富且有活力的生态也将推动 OpenHarmony 的持续提升、优化、完善,最终反哺产业生态,形成一个良性的、有机的循环。
因此,我们会一如既往地推进 KaihongOS 在各个行业的商业落地,为千行百业赋能的同时,将沉淀、提炼出来的技术能力再贡献给 OpenHarmony 社区,真正践行从开源中来到开源中去的理念,这就是深开鸿在未来要做的事情,要努力的方向。
Q8:有什么想对其他企业和开发者说的话吗?
作为一名普通的工程技术人员,有幸遇到这样的一个时代,更有幸能够亲身参与这个时代的伟大变革。机会留给有准备的人,我会竭尽所能去拥抱这样的时代,把握时代赋予的机会。
个人的力量是渺小的,在这里我呼吁更多的有识之士、志同道合者参与到 OpenHarmony 生态的共建,大家一起携起手来,推动它的繁荣与发展!

搜索
复制
巴延兴:从主导多个SIG组到OpenHarmony“代码贡献之星”,我是如何做到的?的更多相关文章
- HDU.2149 Public Sale (博弈论 巴什博弈)
HDU.2149 Public Sale (博弈论 巴什博弈) 题意分析 巴什博奕裸题 博弈论快速入门 代码总览 #include <bits/stdc++.h> using namesp ...
- HDU.1846 Brave Game (博弈论 巴什博弈)
HDU.1846 Brave Game (博弈论 巴什博弈) 题意分析 巴什博奕裸题 博弈论快速入门 代码总览 include <bits/stdc++.h> using namespac ...
- 最受IT公司欢迎的50款开源软件
文章来自:云头条编译 本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT ...
- 2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件
2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服 ...
- AngularJS入门教程
1. 简介:AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也可以觉得是 ...
- Angular.js入门教程
简单介绍 AngularJS是为了克服HTML在构建应用上的不足而设计的.首先Html是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了. 通常,我们可以通过以下技术来解 ...
- Javascript开发之工具归纳
写在前面 由于JS开发对我来说是全新的技术栈,开发过程中遇到了各种各样的框架.工具,同时也感叹一下相对于.Net的框架(工具框架以及测试框架等)JS框架真的是太丰富了.社区的力量果然强大---也是由此 ...
- AngularJS开发指南1:AngularJS简介
什么是 AngularJS? AngularJS 是一个为动态WEB应用设计的结构框架.它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚.简洁地构建你的应用组件.它的创新点在于, ...
- 11个实用的Apache .htaccess配置
<IfModule mod_rewrite.c>RewriteEngine onRewriteBase /RewriteRule cat_([0-9]{1,})_([0-9]{1,})_( ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
随机推荐
- virtualenvwrapper管理虚拟环境
安装 pip install virtualenvwrapper-win 基本使用 1.创建虚拟环境 mkvirtualenv my_env 使用这个命令,就会在你c盘的当前用户下创建一个Env的文件 ...
- 【LeetCode数组#2双指针法】移除元素、删除有序数组中的重复项、移动0
移除元素 力扣27题目链接(opens new window) 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组 ...
- 【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
问题描述 使用Flask框架部署Python代码,如何访问其中的静态文件呢?如static问价夹中的图像资源,同时如何在代码中读取txt文件中的内容呢?是相对路径或者是绝对路径呢? 实验步骤 在App ...
- 【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
问题描述 如上图中PaaS所不可见区域, 操作系统级别的内容我们并不知道具体的内容.如果当出现新的操作系统级别的安全漏洞时候,我们如何来确认当前所使用的Azure PaaS服务所在主机的OS已经修复了 ...
- C/C++、C#、JAVA(三):字符串操作
C/C++.C#.JAVA(三):字符串操作 目录 C/C++.C#.JAVA(三):字符串操作 定义字符串 C C++ C# JAVA 捕捉输入和输出 等值比较 C/C++ C# JAVA 字符串操 ...
- 记一次dockerfile无法构建问题追溯
我有一个dockerfile如下: ENTRYPOINT ["/sbin/tini","-g", "--"] CMD /home/scrap ...
- 小程序开发:接入腾讯云的人像动漫化api接口
接口如下: 图片的传参方式有两种,一种是传图片的base64,一种是图片url: 我打算免费版使用base64,如果付费用户支持永久存储历史的图片记录(图片存储到腾讯云对象存储中). 前端框架我用的u ...
- adb monkey 有哪些参数?
adb monkey 是 Android Debug Bridge (ADB) 工具中的一个命令,用于执行随机事件来对 Android 应用进行压力测试.以下是 adb monkey 命令的一些常用参 ...
- 使用 maven 的 `wagon-maven-plugin`插件 快速部署 到不同的 环境
profile 在pom文件中配置 开发和测试环境的 profile信息, <profiles> <profile> <!-- 开发环境 --> <id> ...
- MYSQL中正则表达式检索数据库
1.MySQL中使用通配符检索数据库,之外还可以使用正则表达式来检索数据. 使用通配符 '_' 和 '%'的区别如下, 使用通配符的技巧:一般的来说 通配符可以处理数据,但是消耗内存较大 ...