`

Android自学笔记(番外篇):全面搭建Linux环境(八)——AOSP参与者工作流程图说明

阅读更多
--------------------------------------------------------------上一篇的分割线--------------------------------------------------------------------------------

       Android自学笔记(番外篇):全面搭建Linux环境(七)——JDK的安装与配置(手动版)

一、题外话
        原定计划的是此篇介绍Repo方式下载Android2.3源码的,在研究的过程中,越发感觉到这一步水越深,一步入进去,抽身就困难了。为什么这么说?那我先来问一个问题,我们下载源码难道仅仅就是为了能在Eclipse里面很方便地查看源码么?如果真是这样的话,那我们就不必费劲巴力地用Repo来下载源码了,直接用git不就好了,还简单。
        在介绍正文之前,首先来说说Android源仓库,访问git.kernel.org ,我们能很清楚地看到每个项目的快照,这些项目就在Android源仓库里面滋养生息。如果想修改上面的代码,就需要在Linux环境下建立起Android源仓库,并把相关的依赖源文件下载到本地,之后就该干啥干啥去吧。再来说说,“下载到本地”,说明是这只是初始化工作,不算是核心的流程,你说我们用Repo就广下下源码,然后看看就得了?这简直是杀鸡用了牛刀。

        题外话就说到这,下面以此引出正文。

二、AOSP参与者工作流程图说明
        先来解释一下什么是AOSP,英文全称是Android Open Source Project,中文全称Android开源项目。真正的Android平台貌似指的就是这个吧?
        再介绍一个工具,Google这帮人管它叫“gerrit”,它是一个基于web的代码审查工具。下面我们来看看AOSP参与者工作流程图,官方称此图虽然看上去复杂,但是其实用起来很容易,因为好多执行流程都是在Gerrit中来完成的,看下图:



        且听我来给大家分析分析,上图有两个要素,用户角色和工作环境。
        用户角色
        1.Author(作者、参与者)
        该角色就是在Android开源项目平台上发布/修改项目的参与者。
        2.Approver(审批者)
        该角色从图中看是对参与者所提交的代码进行审查。
        3.Verifier(校验者)
        该角色的主要任务就是构建/测试 参与者提交的代码,并最终提交到Android源仓库中。
        工作环境
        参与者的工作环境和校验者的工作环境,两者在各自的环境当中工作,互不干扰。

        具体流程说明:
        我们按用户角色划分来说明流程,这样会比较清晰。
        Author角色
        下载源码:
        参与者先要使用Git和Repo工具搭建本地的开发环境,Git和Repo会从Andrioid源仓库将源码下载到参与者的机器上。这是整个流程的第一步,下载源码。
提交代码:
        参与者将改好的项目代码提交到Gerrit上去以待审查,那么参与者可以通过Gerrit工具或者是Email的方式来通知审查者。
此流程还会自动地通过gerrit来通知校验者,参与者不用关心这个。
        Approver角色
        代码审查:
        审查者会用Gerrit工具来审查代码,如果符合项目的要求,审查者会将这些代码标记为“code looks good”的标识(暂且就这样理解吧!),并附上注释,最后提交到校验者那里去;如果不合格,审查者会附上注释并通知参与者重新修改。
        Verifier角色
        代码校验:
        检验者接受到提交过来的新代码并在他们的本地重新编译和测试,俗称打补丁。如果校验没问题了,检验者会在Gerrit中将此补丁设置为“verified”的标识并提交到Android源仓库中,否则不会再为此补丁设置任何标识,也就是保持“code look good”标识,附上注释并打回给参与者。
在提交的过程中,Gerrit这边还要进行一些校验流程。如果merge的时候没有发生冲突,那么好,直接与Android源仓库中对应的项目代码同步。
        否则有可能是冲突了,Gerrit会去除这个补丁的 “verified” 标识,然后通知校验者手动merger这个补丁,那么校验者收到通知之后有两中选择,一是手动merge补丁,回到“A”的那步流程,二是打回给参与者让其自己merge或是重新提交。
        还有可能是因为“code look good”和“verified”两个标识都未设置上,也会视为不允许提交到Android源仓库中,此时流程又到了检验者这边了。

三、总结
        这就是AOSP参与者工作流程图的介绍和说明,之所以在开篇的说到的用Repo下载源码只是这其中的一小步,水真的很深,这又牵扯到Linux、Git有关方面的知识。毕竟本人水平有限,先此系列教程暂告一段落,等达到足够水平的时候在回过头来深入研究也不迟。其实这已经偏离了此系列教程的既定目标了(传说中的跑偏?),貌似有些不务正业了,Android应用开发还没弄熟呢,竟折腾这个了- -即时转舵对目前现状来说,是比较明智的,还是先从开发Android应用程序学起方为上策~~~
        既然已经学到这里了,不记录下来可惜了。希望此篇能给大家带来帮助。




  • 大小: 127.4 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics