自学内容网 自学内容网

Android 内核开发之—— repo 使用教程

前言

repo 是一个用于管理多个 Git 仓库的工具,特别适用于管理大型项目如 Android 的源码。它是由 Google 开发的,用于解决多个 Git 仓库的同步、管理和代码审查等问题。因此,做 Android 内核开发,首先要了解 repo 是什么,它是如何使用的?

1 repo 的概念

repo 是一种代码版本管理工具,它是由一系列的 Python 脚本组成,封装了一系列的 Git 命令,用来统一管理多个 Git 仓库。

2 repo 的作用

Android 源码引用了很多开源项目,每一个子项目都是一个 Git 仓库,每个 Git 仓库都有很多分支版本,为了方便统一管理各个子项目的 Git 仓库,需要一个上层工具批量进行处理,因此 repo 诞生。
repo 也会建立一个 Git 仓库,用来记录当前 Android 版本下各个子项目的 Git 仓库分别处于哪一个分支,这个仓库通常叫做:manifest 仓库。

3 repo 的安装

官方的 repo 脚本下载方法:

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >  ./repo

由于官网被墙,目前可以使用的 repo 脚本下载方法如下(clone 命令两者选一):

$ git clone git://git.omapzoom.org/git-repo.git
$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/  
$ cp git-repo/repo  ./repo

4 源码的下载

Android 源码分支其实由一个叫 manifest 仓库来管理起来的,因此,下载源码首先要 clone 这个 manifest 仓库。这个仓库里面有一个 XML 文件,其实就是一个文件清单,列出了本代码仓库依赖哪些代码,该去哪下载,分支是什么。
一般用 repo init 命令来 clone 这个 manifest 仓库,例如,如果要下载 Android 源码,则方法如下:

$ repo init -u https://android.googlesource.com/platform/manifest

当然,上面的官网被墙了,因此,推荐如下镜像(两者选一):

$ repo init -u git://git.omapzoom.org/platform/manifest.git
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest

初始化完毕后,你会在本地的.repo 文件夹中看到 manifest 仓库的内容,这个文件夹中最重要的文件是 manifest.xml(有的仓库用的是 default.xml,然后指向具体的 xml),它就是上面说到的文件清单。
如果要选择特定版本的 Android 源码,或者在已下载的源码基础上切换到其他版本,则可以使用-b选项:

$ repo init -u git://git.omapzoom.org/platform/manifest.git -b android-13.0.0_r3
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-13.0.0_r3

然后使用 repo sync 命令进行同步即可下载好全部的 Android 源码了。

5 manifest.xml 文件清单的组成

上面提到了 repo init 需要初始化一个 manifest 仓库,仓库中含有一个很重要的 manifest.xml 文件清单,其实这个 manifest.xml 并不复杂的,它就是用 XML 文件的格式记录了本项目依赖的各个 Git 仓库的名称、地址,以及分支等信息。常用的元素如下所示:

  1. manifest 最顶层的 XML 元素
  2. remote 设置远程 git 服务器的属性,如名称、根 URL 地址等
  3. project 需要 clone 的 Git 仓库,path 表示本机路径,name 表示远程版本库的相对路径
  4. copyfile 执行拷贝操作,把URL/ s r c 地址的文件拷贝到 . / src地址的文件拷贝到./ src地址的文件拷贝到./dest
    其实,如果不使用 repo 工具,也是可以对照 manifest.xml 文件清单直接使用“git clone”的方式一个 project 一个 project 的下载的,然后对每个 project 进行 git checkout 特定的分支。

6 常用 repo 命令

常用命令如下:

  1. 初始化 repo 仓库
repo init
  1. 下载最新源码
repo sync
  1. 创建分支
repo start
  1. 换分支
repo checkout
  1. 查看分支
repo branches
  1. 查看文件状态
repo status
  1. 查看修改
repo diff
  1. 查看仓库信息
repo info

原文地址:https://blog.csdn.net/hello_1995/article/details/128340765

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!