码迷,mamicode.com
首页 > 移动开发 > 详细

第2章 Android源码下载及编译

时间:2014-10-12 22:08:38      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:android   style   http   io   os   使用   ar   for   文件   

在分析Android源码前,首先要学会如何下载和编译系统。本章将向读者完整的呈现Android的源码的下载流程、常见问题以及处理方法,并从开发者的角度来理解如何正确地编译出Android系统(包括原生态系统和定制设备)。
后面,我们将在此基础上深入到编译脚本的分析中。以“庖丁解牛”的精神来还原一个庞大而严谨的Android编译系统。

2.1 Android源码下载指南

2.1.1 基于Repo和git的版本管理

Git是一种分布式的版本管理系统,最初被设计用于linux内核的版本控制。本书工具篇中对git的使用方法、原理框架有比较详细的剖析,建议读者先到相关章节阅读了解。
Git的功能非常强大,速度也很快,是当前很多开源项目的首选工具。不过Git也存在一定的缺点,如相对图形界面化的工具没那么容易上手、需要的内部原理有一定的了解才能很好地运用、不支持断点续传等。
为此,Google提供一个专门用于下载Android系统源码的Python脚本,即Repo。
在Repo环境下,版本修改和提交的流程是:

  • 用Repo创建新的分支,通常情况下不建议在master分支上操作;
  • 开发者根据需求对项目文件进行修改;
  • 利用git add命令将所作修改进行暂存;
  • 利用git commit命令将修改提交到仓库;
  • 利用repo upload命令将修改提交到代码服务器上。
    由此可见,Repo与我们在工具篇中讨论的Git流程有些许不同,差异主要体现在与远程服务仓库的交互上;而本地的开发仍然是以原生的Git命令为主。下面我们讲解Repo的一些常用命令,读者也可以拿他和Git进行仔细比较。

1. 同步

同步操作可以让本地代码与远程仓库保持一致,它有两种形式。
如果是同步当前所有的项目:

$ repo sync

  1. 或者也可以指定需要同步的某个项目:

$ repo sync [PROJECT1] [PROJECT2]...

2. 分支操作

创建一个分支所需的命令:

$ repo start

也可以查看当前有多少分支:

$ repo branches

或者:

$ git branch

以及切换到指定分支:

$ git checkout

3. 查询操作

查询当前状态

$ repo status

查询未提交的修改:

$ repo diff

4. 版本管理操作

暂存文件:

$ git add

提交文件:

$ git commit

如果是提交修改的服务器上,首先需要同步一下:

$ repo sync

然后执行上传命令:

$ repo upload

2.1.2 Android源码下载流程

了解了Repo的常规操作后,这一小节接着分析安卓的源码下载的全过程。这既是剖析Android系统原理的前提,也是让很多新手感到困惑的地方,源码下载可以做为初学者了解Android系统的“Hello World”。

要特别提醒大家的是,以下所有步骤,都是在Ubuntu操作系统中完成的(“#”号后面表示注释内容)。

1. 下载Repo

cd ~ #进入home目录
>
mkdir bin #创建bin目录用于存放Repo脚本
PATH= /bin:PATH #将 bin 目录加入系统路径中
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/binrepo #curl 是一个基于命令行的文件传输工具,它支持嗯嗯。非常多的协议。这里我们利用 curl 来将 repo 保存到相应目录下
>
chmod a+x ~/bin/repo

注:网上有很多开发者(中国大陆地区)反映上面的地址经常无法成功访问。如果读者也有类似困扰,可以试试下面这个:

$ curl https://android.googlesource.com/repo > ~/binrepo

2. Repo配置

在开始下载源码之前,需要对Repo进行必要的配置。
如下所示:
>





第2章 Android源码下载及编译

标签:android   style   http   io   os   使用   ar   for   文件   

原文地址:http://www.cnblogs.com/bianxh/p/4020993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!