repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。(也就是说,他是用来管理git所管理的一个个仓库)可以简化android开发中git的使用。
 
-----------------  repo使用方法 ---------------------
$repo init -u URL [OPTIONS]
Options:
-u: specify a URL from which to retrieve a manifest repository. The common manifest can be found atgit://android.git.kernel.org/platform/manifest.git
指定一个网址,从这个网址里 检索清单资料库,常见的应用是 android.git.kernel.org/platform/manifest.git
-m: select a manifest file within the repository. If no manifest name is selected, the default is default.xml.
在仓库内 选择一个 清单文件(manifest),如果没有你要的文件,那么 默认是default.xml
-b: specify a particular manifest-branch.
    指定 一个特定的 在清单里的 分支
$repo sync [PROJECT_LIST]
---------------------------------------
 以下操作是在ubuntu上,其实 其他的linux基本都一样!
1.安装git和curl
命令:
$sudo apt-get install git-core curl

说明:
      curl是一个向服务器或从服务器传输数据的工具,它支持HTTP 、HTTPS、FTP 、 FTPS 、 SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE等协议。对于web开发人员来说,它对 HTTP POST的支持为我们提供了很大的帮助。

git是分布式的版本控制系统,在这里负责把远程版本库的源代码clone下来

2. 安装repo
命令:(是一个便于git管理的工具)

$mkdir bin 

//下载repo脚本到本地bin文件夹下 
$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo>~/bin/repo

//设置本地repo的可执行权限 
$chmod a+x ~/bin/repo  

//临时把repo添加到环境变量中,方便后面执行。 
$export PATH=~/bin:$PATH

说明:
      repo是一个基于git的版本库管理工具,可以简化android开发中使git的使用。在这里,使用repo和官方提供的android project列表自动批量下载android整个项目,免去了大量下载各个项目的手动工作量。

3.初始化repo客户端(版本库)

如果是想把Android当前主线上最新版本的所有的sourcecode拿下来,我们需要repo的帮助。
先建立一个目录,进去以后用repo init命令即可,然后就可以用repo sync 抓去 android source code 。

命令:

//创建目录android/android-source来存放下载的源码
$mkdir android/android-source -p  
//进入目录
$cd android/android-source  
//获取项目列表并且初始化目录
$repo init -u https://android.googlesource.com/platform/manifest 
    解释:repo init -u URL 用以 在当前目录下 安装 repository ,会在当前目录创建一个目录 ".repo"  -u 参数指定一个URL, 从这个URL 中取得repository 的 manifest (清单)文件
    获取的manifest文件放在.repo目录中。命名manifest.xml。这个文件的内容其实就是所有被git管理的仓库的列表!可以用 -m 参数来选择获取 repository 中的某一个特定的 manifest 文件,果不具体指定,那么表示为 将要获取 默认的 mainfest 文件 (default.xml)
(有诸多供我们选择的manifest文件,所有的manifest文件都放在目录.repo/manifests中,该目录本身亦被git所管理)可以用 -b 参数 来 指定 某个manifest 的分支。注意 .repo/manifests是个被git管理的仓库,这里放的是所有的manifest文件(*.xml),因为被git管理,固然有分支,-b可以切换到你想要的分支然后再下载相关的xml文件,当然具体下载那个xml还要看-m参数了,所以如果你仅仅指定-b而没有-m的话,就是下载-b指定分支下的default.xml文件,如果不指定-b参数,那么会默认使用master分支 
按照提示输入 用户名 和 邮箱
 初始化完成后会显示repo initialized in /home/http://www.cnblogs.com/xx,如下图:

 

  这样就说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。  
注意:如果想拿 某个branch而不是主线上的代码,我们需要用 -b 参数制定branch名字,如:
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo-amlogic-mid
另一种情况是,我们只需要某一个project的代码,比如kernel/common,就不需要repo了,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这也需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.git的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。


4.同步版本库命令:

$repo sync

这样 我们把整个android代码树做到同步到本地,

    解释:如果是第一次运行 repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。 如果不是第一次运行 repo sync , 则相当于 git remote update ;  git rebase origin/branch .  

repo sync 会更新 .repo 下面的文件。 如果在merge 的过程中出现冲突, 这需要手动运行  git  rebase --continue

      说白了,就是从服务器上下载最新的代码。

接下来就是漫长的等待,本人10M带宽,依然下载了几个小时。

同样,我们可以用类似
repo sync project1 project2 …
这样的命令来同步某几个项目,如果是同步Android中的单个项目,只要在项目目录下执行简单的git pull即可。

repo manifest -r -o xxx.xml #获取 当前的源代码的manifest,并保存为 xxx.xml

==============

 5.小结

      源码下来就是一笔财富,坚持查看源代码,分析其中的底层实现和框架模式,都绝对是极佳的学习经历,一定大有益处。

使用repo和git下载android源码 和 相关解释相关推荐

  1. repo/git下载android源码断后重新下载

    方案1: #!/bin/bash while [ 1 ]doecho "Enter infinity loop.... "if [ ! -d emacs ];then#如果下载断了 ...

  2. windows下使用GIT下载ANDROID源码

    1.安装msysgit 2.运行msysgit, 进入bash界面 3.切换工作目录 cd /d/android/source 4.初始化目录 git init 5.下载 git clone http ...

  3. 下载Android 源码(高墙之下,只能用镜像啦)

    按照http://source.android.com上的步骤并不能获取android源代码,估计又是被墙了.不过经过研究发现可以从一些镜像站点上获取android源代码 Step 1.按照http: ...

  4. 下载Android源码流程(完整版)

      要在Linux环境下操作,要在Linux环境下操作,要在Linux环境下操作~~ 不要想在Windows环境下操作,因为会有各种问题.Windows环境的童鞋又不想装双系统的可以跟着下面的操作,L ...

  5. 【Linux/Ubuntu学习6】unbuntu 下载android源码

    在Windows下安装Cygwin,通过Cygwin也可在Windows里通过本文的下载步骤下载Android源码. 以下为在Ubuntu下下载Google Android4.4源码的步骤: 1. 安 ...

  6. android源码下载过程的一些注意事项,windows下载android源码

    网上目前有很多下载android源码的方法,在linux下基本上用 repo 脚本,先repo init 然后在 repo sync一下 最后提取的时候的 使用 repo sync -l 一下. 所有 ...

  7. android 清华镜像,清华镜像网站下载android源码并编译

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 下载android源码方法: 我的系统是ubuntu 18.04,主要参考了blog通过清华大学镜像下载Android源 ...

  8. Arndale Octa开发板下载android源码

    Arndale是由insignal公司开发制作的一款开发板,用了三星目前最先进的SoC Exynos5420,搭载了3GB的RAM,4G EMMC(这个有点坑),AX88796 10/100M网卡(略 ...

  9. AOSP: 下载 android 源码

    很高兴,今天与android开发网站,源码网站都扯上关系啦,虽然有点爬山涉水,但还是大大的值得,呵呵!! 小结下载源码的方法,来自http://source.android.com/source/do ...

最新文章

  1. SQL2000 统计每周,每月,每季,每年的数据
  2. AXURE RP8实战手册(完整版)
  3. H3C通过端口ID决定端口角色
  4. paypal创建订单后怎么获得id_PayPal开放加密数字货币买卖 2021年将支持2600万家商户购物...
  5. android 智能家居 pdf,智能家居项目化教程.pdf
  6. 吃下这枚安利!翠贝卡电影节上这五部VR视频不容错过
  7. LinQ—Lambda表达式
  8. Delphi Android下包含第三方DEX
  9. 深圳有哪些牛逼的互联网公司?看完你再跳槽!
  10. 统计细菌基因组ORF
  11. 在做模具设计过程中应注意哪些问题
  12. 教你如何在b站实现炫酷弹幕墙(文末送十六进制颜色代码一览表)
  13. 目标检测中常见指标 AP MAP coco Pascal voc 评价指标说明
  14. Amap【高德】/Google-开发,无人机航迹规划演示
  15. 调试技巧(Debugging)
  16. Golang 如何限制木马图片上传服务器
  17. jq 修改元素css伪类样式
  18. VR全景航拍补天教程
  19. nodejs 遍历目录(文件夹)下的所有文件
  20. 停用计算机网络,如何禁用电脑上网功能

热门文章

  1. vba如何变vbk—— 微软Word中的ahk应用
  2. css给图片添加阴影效果方法
  3. 【区块链与密码学】第1-3讲:加密数字货币的通俗故事
  4. u盘安装linux怎么样,怎么用U盘安装Linux
  5. 产品运营|提高用户留存的方法
  6. 基于protues的51单片机交通灯仿真
  7. 【LoRa】sx1276/77/78 6个DIO引脚映射配置关系
  8. matlab之cat函数
  9. 使用TableTree4J实现javascript 表格树(树型表格、菜单)
  10. 2020CCPC威海 J.Steins;Game