Android 代码开发工作流

行是知之始,知是行之成。这篇文章主要讲述Android 代码开发工作流相关的知识,希望能为你提供帮助。
一、概述要使用android代码,您需要使用Git和Repo。在大多数情况下,您可以使用Git而不是Repo,或者使用Repo和Git命令来形成复杂的命令。然而,使用Repo进行基本的跨网络操作将使您的工作更简单。
Git是一个开源版本控制系统,旨在处理分布在多个存储库中的大型项目。在Android中,我们使用Git进行本地操作,如本地分支,提交,差异和编辑。
Repo是在Git之上构建的存储库管理工具。 Repo在必要时统一了许多Git存储库,上传到版本控制系统,并自动部署了Android开发工作流程。 Repo并不意味着取代Git,只是为了在Android的中更容易使用Git。 repo命令是可执行的python脚本,您可以将其放在路径的任何位置。在使用Android源文件时,您将使用
Repo进行跨网络操作。例如,使用单个Repo命令,您可以将文件从多个存储库下载到本地工作目录。
Gerrit是使用git的项目的基于Web的代码审查系统。 Gerrit鼓励更多的集中使用Git,它允许所有授权用户提交更改,如果通过代码审查,这些更改将自动合并。此外,Gerrit通过在浏览器中并排显示更改并启用内联注释来更轻松地进行审阅。
二、基本工作流在android里,开发与代码库常用的交互模式如下:

  • 下载代码
  • 编辑文件,提交修改
  • 提交修改到gerrit
  • Gerrit触发Jenkins 任务,进行代码检查
  • Reviewer 对代码进行Code review
  • Submit到代码库
Android 代码开发工作流

文章图片

三、下载代码要同步所有可用项目的文件:
$ repo sync

要同步所选项目的文件:
$ repo sync PROJECT0 PROJECT1 PROJECT2 . . .

四、编辑文件,提交修改按照需求修改好文件之后,使用如下命令可以先暂存你的修改。
git add -A

然后使用git commit 将暂存的文件提交。
五、提交修改到gerrit在提交到gerrit之前,现将本地代码更新到最新
repo sync

这个时候,可能会出现代码冲突。需要对产生冲突的文件进行修改,然后重新git add .和git commit 最后在执行
git rebase --continue

然后执行
repo upload

这将列出您提交的更改,并提示您选择要上传到gerrit上的分支。如果只有一个分支,您将看到一个简单的y / n提示符。
下图是代码在本地通过git和repo的操作图表。
Android 代码开发工作流

文章图片

六、Gerrit触发Jenkins 任务,进行代码检查当修改提交到gerrit上之后,会自动触发jenkins 任务,进行代码检查。这时我们进行代码审查的第一步。
根据我们制定的代码检查规范,检查当前的这笔提交是否满足我们的需要。
如果没有通过代码检查,会对这笔提交进行 vertify -1;通过的话,会进行vertify +1。
代码检查这一步,是后面reviewer进行代码审查的一个重要依据。没有通过的话,开发一定要重新修改代码进行提交。
而且,代码检查的通过率,也是评价这个开发代码质量的一个重要标准。
七、Reviewer 对代码进行Code review代码在提交到gerrit上之后,除了进行jenkins的代码审核之外,还会给各个负责人(Reviewer)发送审核邀请,由他们进行下一步的代码审核。
Reviewer评审的依据:
  • Jenkins job进行代码检查的结果;
  • 代码设计是否合理;
  • 是否满足需求;
  • 是否可以解决已有的问题;
    ……
Reviewer可以在代码添加comments,发表自己的建议、质疑、修改意见……
开发要回复这些comment,并对代码进行适当的修改,重新提交,直到reviewer认为你的修改满足要求,并给你Code Review +1或+2.
而如果一笔提交长时间没有任何改动,会自动abandon掉,而不需要的修改,也可以手动abandon掉。
八、Submit到代码库【Android 代码开发工作流】当一笔提交已经被Code Review +2了,说明这笔提交已经满足了需要,这时该笔提交的gerrit界面上会出现“submit”按钮,点击这个按钮,我们就可以将这笔提交到代码库里面

    推荐阅读