--------------------------------------------------------------上一篇的分割线--------------------------------------------------------------------------------
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
分享到:
相关推荐
2. **设备驱动开发**:Android系统依赖于特定硬件的驱动程序,这些驱动程序通常在Linux内核中实现。开发者需要掌握Linux内核编程,熟悉GPIO、I2C、SPI、UART等通信协议,以及GPU、摄像头、触摸屏等关键设备的驱动...
- 安装JDK:Android开发需要Java Development Kit,因此首先需要在Linux系统中安装JDK。 - 获取Android SDK:从Google官方网站下载并安装Android SDK,其中包括各种版本的Android平台、工具、模拟器等。 - 配置环境...
在Android操作系统中,AOSP(Android Open Source Project)是一个开源项目,它包含了构建整个Android系统的核心源代码。日志文件是Android系统中的一个重要组成部分,它们记录了系统的运行状态、错误信息以及各种...
在Android开发领域,AOSP(Android Open Source Project)是谷歌发布的Android操作系统的开源代码库。开发者可以在这里获取到Android系统的核心组件和框架层的源代码,进行定制化开发或者研究。在你提到的文件中,...
根据提供的信息,我们可以详细地探讨AOSP(Android Open Source Project)代码从环境搭建到编译流程的相关知识点。这里主要关注的是在Windows环境下检测硬件配置、Ubuntu 18.04的安装与配置以及如何制作启动盘等内容...
android AOSP 模拟器启动成功日志, 仅供参考
总结来说,Linux系统下的Android开发环境搭建是一项涉及多方面知识和技术的工作。从应用开发到系统级的定制,开发者需要具备扎实的Java基础,熟悉Android架构,以及一定的Linux和C/C++编程能力。通过搭建合适的开发...
在进行Ubuntu 64位系统下Android源代码的编译过程中,可能会遭遇一系列技术障碍,以下将详述在Ubuntu 11.04(64位)编译Android 2.3源码时常见的错误及其解决方案,以帮助开发者顺利通过这些难关。 ### 错误一:`/...
Android 蓝牙 rfcomm spp 协议连接流程、数据收发流程源码流程图,非常详细的从btif-bta-btm-hci 数据流程走向,以及从controller收到数据到btm层,将Android 源码使用流程图的形式画了出来,使Android 蓝牙开发者更...
3. **编译Android源码**:要编译Android源码,开发者需要搭建AOSP(Android Open Source Project)环境,安装必要的工具如Repo、JDK、NDK等,并执行make命令来构建系统。 4. **源码修改**:修改Android源码可能包括...
1. **Linux内核**:Android的基础是Linux内核,它负责硬件驱动、内存管理、进程调度等核心功能。开发者需要了解Linux内核的工作机制,包括中断处理、设备驱动模型、I/O控制等,以便进行低级优化。 2. **HAL(硬件...
- **AOSP(Android Open Source Project)**:Android的开源项目,包括系统架构、HAL(硬件抽象层)、应用程序框架等。 - **JNI(Java Native Interface)**:Java与C/C++交互的接口,用于开发原生库。 - **Android ...
1. **Linux内核**:Android依赖于定制版的Linux内核来处理硬件驱动、进程管理、内存管理和安全等底层功能。源代码分析会涉及内核模块、驱动程序以及与Android特定功能相关的修改。 2. **HAL(硬件抽象层)**:为了...
4. **编译流程**:Android源码的编译过程主要包括repo初始化、sync下载源码、source build/envsetup.sh初始化环境、lunch选择目标设备配置,最后执行make或mm命令进行编译。这个过程中可能会涉及到编译优化、依赖...
3. **驱动程序开发**:Android设备的硬件功能实现离不开驱动程序,开发者需要学习如何编写和修改Linux内核驱动,如GPU、摄像头、触摸屏、Wi-Fi等驱动的开发和调试。 4. **Android Build System**:AOSP(Android ...
1. **Linux内核**:Android基于Linux内核,负责硬件驱动、进程管理、内存管理等底层操作。 2. **HAL(Hardware Abstraction Layer)**:硬件抽象层,为上层提供统一的接口,屏蔽不同硬件之间的差异。 3. **System ...
在Android系统中,Android键盘(AOSP,Android Open Source Project)是用户与设备进行交互的重要组成部分,特别是对于输入文本的应用场景。在某些情况下,开发者可能需要对键盘的行为进行自定义,比如监听特定按键...
Android Assets旨在成为您从Android Developer网站找到所有官方资产的起点:Android Studio,Android Open Source Project和Android Developers Android Assets:glasses:适用于Android Studio,AOSP和Android ...
本篇文章将从Android源码的结构、编译流程、关键组件以及系统服务等方面展开,带领读者走进安卓的内在世界。 一、Android源码结构 Android源码庞大且复杂,主要由以下几个部分组成: 1. Linux内核:作为Android的...
总的来说,《Android嵌入式Linux终极实战》是一本全面的教程,涵盖了从底层硬件驱动到用户界面应用程序的完整流程。通过这本书,读者可以深入理解Android系统的运行机制,并具备独立开发Android智能设备的能力。无论...