android开发杂识Android FrameworkAndroid所有文章都配视频讲解

android系统定制从听说到入门六-从红灯区从业者到谷歌开发者

2017-06-24  本文已影响1205人  小怪兽打葫芦娃

Android程序员面试宝典

android系统定制系列:

本文配套视频:

http://www.365yg.com/item/6435004372127580673/

repo与git的关系

AOSP:本质上是一堆使用git进行版本控制的project。
repo:针对AOSP大量git仓库的管理工具。可以执行批量git同步,更新,提交等操作。
原理:通过读取manifest.git里维护的manifests.xml文件当中配置的projects的git仓库地址,分支等信息执行git操作。将服务器上按照特定目录结构保存的project原封不动的同步到本地。
关系:repo基于git,让超大型的项目代码管理更有效率。

manifest.xml文件解释:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote fetch="https://android.googlesource.com"  name="aosp" review="android-review.googlesource.com" revision="refs/tags/android-6.0.1_r74" />
  <!-- 可以配置多个remote -->

  <remote  name="repo_remote"  
             fetch="." />            
             <!-- 配置git remote 远程服务器信息 -->
             <!-- name ,远程服务器的名字 -->
              <!--fetch: 以下projects仓库地址的公共前缀。如果是(.)(..),则是相对路径形式(相对manifest.git)比如:aosp的manifest的仓库地址为https://android.googlesource.com/platform/manifest
                    配置..代表公共前缀为https://android.googlesource.com/
                    配置.代表公共前缀为https://android.googlesource.com/platform
                  ${remote_fetch}/${project_name}.git 组成git仓库的remote url  -->
  <!-- project 默认的配置 -->
  <default revision="master"  
           remote="repo_remote"
           sync-j="4" /> 
           <!-- revision:project 节点默认的revision值 
                remote:project 节点默认的remote值
                sync-j: 执行repo sync -j的参数值。多任务
          -->
  <project path="build/project1" name="project1"  remote="repo_remote" revision="master"/>
  <!--  
  path:告诉repo,project1代码下载下来保存在WORK_DIR下的那个目录)
  name:服务器仓库的名字。拼接在remote_fetch 的后面,组成git服务器仓库的remote url地址。
  remote: 告诉repo,project1的remote是走那一个<remote>节点的配置
  revision: 告诉repo,下载这个Git project 的那个分支
  -->
  <project path="project1" name="project1" remote="repo_remote" revision="master"/>
</manifest>
上一篇下一篇

猜你喜欢

热点阅读