--------------------------------------------------------------上一篇的分割线--------------------------------------------------------------------------------
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
分享到:
相关推荐
android AOSP 模拟器启动成功日志, 仅供参考
Android键盘AOSP监听delete按键:通过重写EditText的InputConnection 类的sendKeyEvent 方法来解决这个问题
Android Assets旨在成为您从Android Developer网站找到所有官方资产的起点:Android Studio,Android Open Source Project和Android Developers Android Assets:glasses:适用于Android Studio,AOSP和Android ...
通过ant脚本,编译打包android工程, 编译打包android工程的ant脚本。
用于分析Android手机启动过程的日志
镜像来自:https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-20200401.tar,由于官方...全部下载完成之后,linux系统输入cat aosp-20200401.tara* > aosp-20200401.tar ,windows:在cygwin下试试,没验证过
aosp-docker Python 2/3脚本,可用于在docker容器内构建各种AOSP版本。 处于早期状态,希望事情会发生变化并因新提交而中断。 依存关系 码头工人1.6 的Python:docker-py 1.3 为什么? 为了编译AOSP,需要一个...
android.iml、android.ipr、android.iws
android获取AOSP键盘支持语言的哈希值app,可以用于设置AOSP默认的输入语言。设置方法为通过设置系统中的Settings.Secure.ENABLED_INPUT_METHODS属性值,来进行默认,在使能的输入法中添加对应的语言哈希值即可...
Android Aosp开源代码
Android源码集合,包含1.x ~9.0的AOSP源码,压缩为7z包,解压即是完整源码,不需要repo更新
说明: 用于解决如下错误 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: error [Errno 101] Network is unreachable 2016/07/24更新 由于清华大学TUNA镜像源关闭了git://协议,...
操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...
Android编译流程_makefile流程
OpenBoard100%FOSS键盘,基于AOSP。权限阅读联系人:用于将您的联系人列表添加到建议中。 默认情况下禁用。常见问题无法在MIUI中打开设置参见贡献如何创建字典您可以使用来创建字典。 你需要一个单词表,描述。 ...
安卓Android源码——所有Dialog对话框.zip
AospMTK补丁用于MTK Roms的AOSP Mtk修补程序,别忘了将其克隆到device / xxx / xxx / patches
Android 服务保活/常驻 (Android Service Daemon) 建议只在App的核心功能需要保活/常驻时使用。 本示例中使用的保活方法部分来源于下面的博客和库。启动前台服务而不显示通知来自于D-clock的AndroidDaemonService,...
Android-Blob-Utility, 基于AOSP的的Blob跟踪器 Android Blob实用程序按 JackpotClavinAndroid Blob实用程序是一个旨在让开发者更容易开发基于aosp的rom的程序。 这个程序允许开发者挑选专有文件,输入文件路径绝对...