OpenHarmony实战:代码上库

前言

到达这一步好比临门一脚,意义很大!您的代码被合入 OpenHarmony 平台,这是最后的一道关口,保证合入的是正确的,并且不会对系统造成意外。

避坑指南

1. 填写 ISSUE 和 PR 按照规范进行

  • ISSUE 和 PR 填写不规范会被扣分,甚至不予合入;

2. 一个 ISSUE 与多个 PR 关联

  • 一个 ISSUE 主题有多个 PR, 需要全部关联;
  • 涉及多个仓,建议用字母顺序的第一个仓建立 ISSUE, 并且按顺序提交 PR;

3. 如果修改的仓特别多,存在编译依赖,而且不能一批上完,有什么要注意的?

  • BUILD.gn 和 CMakefile 最后提交,也就是让先提交的代码不参与编译;

4. 被合入之后要不要下载镜像测试一下?

  • 上库的人众多,不能保证你修改的代码短期内不会被人修改回去,另外 OpenHarmony 服务器上的编译环境可能与你的环境有差异,有必要下载镜像测试一下。
  • CI 日构建镜像链接: http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist

5. 功能性代码,只有被测试人员测试通过,并且其他问题不会溯源到你这里,才代表这一笔合入真正完成。

三、 登录 gitee、拉取代码

没有注册请先注册 gitee 账号

1.1 打开 www.gitee.com 官网登录个人账户

1.2 打开 openharmony 网页 https://gitee.com/openharmony

打开仓库页面

1.3 选择要修改的仓库

点击 1 处仓库,在 2 处搜索仓库,输入所要搜索的仓库名,按回车键,点击要进入的仓库。

1.4 从公仓 forked 到私仓

进入所要拉取的仓,点击 forked 将公共仓拷贝 1 份到私仓下。

1.5 查看私仓

回到个人主页,1 处的 watches,会显示已经拷贝的公共仓

1.6 进入私仓,复制代码链接

进入私仓点击 1 处的克隆/下载,选择 2 处的 SSH,点击 3 处的复制。

1.7 在虚拟机家目录新建拉取代码仓的文件夹,例如 fix,进入该文件夹后执行

  1. 克隆私仓代码到本地
mkdir fix
cd fix
git clone [email]git@gitee.com[/email]:XXXXXXX/drivers_framework.git
  1. 修改这一部分相关代码
    后续的修改在这里进行,主要使用比较工具(BeyondCompare)将修改的内容同步到这里,保证新修改的功能是正确的,并且不影响其他功能,就可以上传了。

四、在公仓创建 ISSUE

上库代码必须保证是正确的,就可以进行上库操作。

4.1 在 https://gitee.com/openharmony 找到要修改的公仓

4.2 点击进入在进入的公仓下创建 ISSUE

记住 ISSUE 号,后续 PR(Pull Requests)需要关联。

4.3 描述新建的 ISSUE

选择任务还是需求、缺陷还是安全问题。描述具体的操作,可以是中文也可以是英文,底下为具体的任务描述解决方案。

五、上库

5.1 在本地拉取的代码目录执行下面命令进行上库

在拉取的 fix 文件夹下,再进入下一级文件夹

git status     查看状态确定修改是自己操作修改的文件【红色】
git add .      提交本地当前的变化
git status     查看状态是否已提交本地当前的变化【绿色】
git commit -sm "XXX"   描述修改了什么进行了什么操作使用英文
git push -f origin master 本地强制上传到私仓,把私仓覆盖。

5.2 私仓下创建 PR

  1. 填写 PR 信息
    在 www.gitee.com 私仓,在要提交的私仓下创建 PR(Pull Requests) 描述关联相关的 Issue, 原因(目的、解决问题),描述(做了什么,变更了什么),测试用例(有则描述,没有写无)。

  2. 选择将要合并的分支
    PR 创建默认状态是未开启的,合并可以选择分支是 gitee 主干还是其他分支。默认为 master 主干。

5.3 评论 start build 触发门禁,进行构建

在创建好的 PR 下,评论 start build 触发门禁。

5.4 构建完成后,CodeCheck 错误需要接口人屏蔽的情况

不用修改代码,重新 start build, 直到 CodeCheck 错误消失

5.5 构建完成后,CodeCheck 错误需要修改的情况

修改完 CodeCheck,需要重新提交一次,再触发 start build,二次修改提交指令列表:

git add .
git commit --amend -s
git push -f

5.6 非个人原因导致 CI 门禁失败,重新 start build, 直到全部成功,全部成功如图

5.7 最终构建完成

构建完成,无 CodeCheck 错误,找接口人代码检视 review,没有问题他会点赞加分,最后找该仓负责人合入 merge。

恭喜您

您已成为 OpenHarmony 贡献者一员了。今后阅读代码、开发代码、测试功能将充满您后续的职业生涯。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/294146.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis中的复制功能(一)

复制 概述 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示…

数据可视化-ECharts Html项目实战(9)

在之前的文章中,我们学习了如何在ECharts中编写气泡图,词云图。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 数据可视化-ECharts Ht…

【核心复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略

目录 主要内容 内容详情 1.问题引出 2.可控负荷 3.网络拓扑约束 4.算法流程 结果一览 1.原文结果 2.程序运行结果 下载链接 主要内容 该模型复现文章《同时考虑考虑孤岛与重构的配电网故障恢复运行策略》,以IEEE33配电网为分析对象,…

算法2.7:排序算法之间的比较

排序算法间的比较 比较元素: 1,平均时间复杂度 2,最好情况 3,最坏情况 4,空间复杂度 5,排序方式 6,稳定性 部分术语解释: 1,稳定:如果a本来在b前面,ab,排序之后a仍然在b前面 2,不稳定:即!第一条 3,内排序:所有排序操作都在内存中完成 4,外排序:需要借助外界的存储空…

js逆向之实例某宝热卖(MD5)爬虫

目录 正常写 反爬 逆向分析 关键字搜索 打断点&分析代码 得出 sign 的由来 确定加密方式 写加密函数了 补全代码 免责声明:本文仅供技术交流学习,请勿用于其它违法行为. 正常写 还是老规矩,正常写代码,该带的都带上,我这种方法发现数据格式不完整. 应该后面也是大…

利用优质样本提示,优化ChatGPT Prompt的编写技巧

在当下这个数字化高速发展的时代,大型语言模型(LLM)如ChatGPT等,已逐渐融入我们的日常生活与专业工作之中,成为不可或缺的得力助手。它们凭借强大的能力,不仅能回答我们的疑问,还能协助我们撰写…

分布式全闪占比剧增 152%,2023 年企业存储市场报告发布

近日,IDC 发布了 2023 年度的中国存储市场报告。根据该报告,在 2023 年软件定义存储的市场占比进一步扩大,分布式全闪的增长尤其亮眼,其市场份额从 2022 年的 7% 剧增到 2023 年的 17.7%,增长了 152%。 01 中国企业存…

Dual Relation Knowledge Distillation for Object Detection用于目标检测的双关系知识蒸馏

摘要 有两个关键点导致检测任务的蒸馏性能不佳。一是前景和背景特征严重不平衡,二是小对象缺乏足够的特征表示。为了解决上述问题,我们提出了一种新的知识蒸馏方法——双关系知识蒸馏(DRKD),包括逐像素关系蒸馏和逐实…

微信小程序实现左滑删除

效果 实现思路 使用的是官方提供的movable-area 嵌套movable-view 1、movable-area:注意点,需要设置其高度,否则会出现列表内容重叠的现象。 2、由于movable-view需要向右移动,左滑的时候给删除控件展示的空间,故 mov…

HarmonyOS 应用开发之ArkData

功能介绍 ArkData (方舟数据管理)为开发者提供数据存储、数据管理和数据同步能力,比如联系人应用数据可以保存到数据库中,提供数据库的安全、可靠以及共享访问等管理机制,也支持与手表同步联系人信息。 标准化数据定义…

C++ list

文章目录 list的介绍及使用list的介绍list的构造list iterator的使用list capacitylist element accesslist modifiers list模拟实现list节点类list迭代器类list类 list深度剖析list迭代器失效list反向迭代器 list与vector对比 list的介绍及使用 list的介绍 1.list的底层是双向…

每天五分钟计算机视觉:如何基于滑动窗口技术完成目标的检测?

汽车检测算法 现在我们想要构建一个汽车检测算法,我们希望输入到算法中一张图片,算法就可以帮助我们检测出这张图片中是否有汽车。 数据集 首先创建一个标签训练集,x是样本,y是标签。我们的训练集最好是被剪切过的图片,剪掉汽车以外的部分,使汽车居于中间位置,就是整张…

Django如何定义视图函数?FBV-CBV的使用场景

目录 1. 前言 2. FBV与CBV 2.1 FBV 2.2 CBV 2.3 两种区别 3. request参数 4. 返回值 5. 结尾 1. 前言 在Django中,我们通过浏览器URL发送了请求,请求通过路由层,最后匹配到相应的视图函数 在视图函数中,也分两种编写形式&…

使用ARCore深度API实现点云采集

一、深度API 本小节内容摘自ARCore官方文档。 ARCore 深度API Depth API 可助力实现对象遮挡、提升沉浸感和新颖的互动体验,从而增强 AR 体验的真实感。 在下图中,右侧画面是采用深度API进行遮挡后的效果,与左侧图相比更加真实。 深度值 给…

node.js的模块化 与 CommonJS规范

一、node.js的模块化 (1)什么是模块化? 将一个复杂的程序文件依据一定的规则拆分成为多个文件的过程就是模块化 在node.js中,模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块,将每个js文件被认为单独的一个模块;模块…

第十七章 Kafka

一、特性 - 高吞吐、低延迟 - 高伸缩性 - 持久性、可靠性 - 容错性 - 高并发 通过 O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以 TB 的消息存储也能够保持长时间的稳定性能。 高吞吐量:即使是非常普通的硬件 Kafka 也可以支持每秒数百…

深入理解数据结构——堆

前言: 在前面我们已经学习了数据结构的基础操作:顺序表和链表及其相关内容,今天我们来学一点有些难度的知识——数据结构中的二叉树,今天我们先来学习二叉树中堆的知识,这部分内容还是非常有意思的,下面我们…

Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions(IA-YOLO)

1、总体概述 基于深度学习的目标检测在常规条件的数据集可以获得不错的结果,但是在环境、场景、天气、照度、雾霾等自然条件的综合干扰下,深度学习模型的适应程度变低,检测结果也随之下降,因此研究在复杂气象条件下的目标检测方法…

【软件工程导论】——面向对象与UML(学习笔记)

📖 前言:面向对象是以问题空间中出现的物体为中心进行模型化的一种技术。建立模型是软件工程中最常使用的技术之一。无论软件分析或软件设计,都需要建立模型。UML 就是OO 软件工程使用的统一建模语言。它是一种图形化的语言,主要用…

vue3中播放flv流视频,以及组件封装超全

实现以上功能的播放&#xff0c;只需要传入一个流的地址即可&#xff0c;当然组件也只有简单的实时播放功能 下面直接上组件 里面的flvjs通过npm i flv.js直接下载 <template><div class"player" style"position: relative;"><p style&…