阳光沙滩-课程笔记 阳光沙滩-课程笔记
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
  • Android开发基础

  • Android项目-喜马拉雅FM

  • Android项目-领券联盟

  • AndroidStudio使用技巧

  • Android-Jetpack

  • ConstraintLayout

  • RecyclerView

  • 自定义控件系列

  • AOSP

    • AOSP课程计划
    • AOSP团队开发模式
    • Android格式化sd卡
    • AOSP-android必备基础知识 Linux Shell
    • AOSP日记,修改分辨率,修改dpi,全屏禁止下拉拖出状态栏
    • Android系统编译说明(AOSP)
    • Android系统编译-AOSP-创建自己公司的产品
    • AOSP-Android系统定制下载系统源码
    • AOSP-Android系统源码目录结构
    • 常见的变量说明
    • 编译Android系统的步骤
    • 安装Samba
    • AOSP-Repo代码管理
      • 什么是Repo?
      • 为什么要使用repo
      • 删除repo
      • 删除git
      • Repo清单文件配置说明
    • Android.mk
    • 编译可执行so库和可执行程序
    • AOSP-Androidmk里:=与+=的区别是啥?
    • 创建属于自己的产品
    • iphone12
  • ADB

  • 安卓
  • AOSP
TrillGates
2021-10-17
目录

AOSP-Repo代码管理

# AOSP-Repo代码管理

想了解repo,先要有版本管理相关的知识。

比如说代码树、主干、分支等概念。

# 什么是Repo?

  • Repo是一个用Python编写程序
  • Repo用来管理git库

从上面简短的两句话能获取到什么信息?首先Repo只是一个脚本程序,他并没有git那么庞大,能力也没有git强,代码库的主要管理责任大部分还是由git去负责;Repo比较像是高层老板,Git比较像是中层管理或者员工,Repo管理Git库就像老板管理员工;Repo只有一个,而git库可能会有很多。

图片描述

# 为什么要使用repo

单独管理git不方便

根据不同的设备,不同的产品编译不好控制

# 删除repo

rm -rfv .repo
1

# 删除git

find ./ -name ".git" | xargs rm -rf
1

先查出来,然后再删除

# Repo清单文件配置说明

  • manifest 这个是配置的顶层元素,即根标志

  • remote

    name:在每一个.git/config文件的remote项中用到这个name,即表示每个git的远程服务器的名字(这个名字很关键,如果多个remote属性的话,default属性中需要指定default remote)。git pull、get fetch的时候会用到这个- - --remote name。 alias :可以覆盖之前定义的remote name,name必须是固定的,但是alias可以不同,可以用来指向不同的remote url fetch :所有git url真正路径的前缀,所有git 的project name加上这个前缀,就是git url的真正路径 review :指定Gerrit的服务器名,用于repo upload操作。如果没有指定,则repo upload没有效果

  • default 设定所有projects的默认属性值,如果在project元素里没有指定一个属性,则使用default元素的属性值。 remote :远程服务器的名字(上面remote属性中提到过,多个remote的时候需要指定default remote,就是这里设置了) revision :所有git的默认branch,后面project没有特殊指出revision的话,就用这个branch sync_j : 在repo sync中默认并行的数目 sync_c :如果设置为true,则只同步指定的分支(revision 属性指定),而不是所有的ref内容 sync_s : 如果设置为true,则会同步git的子项目

  • manifest-server 它的url属性用于指定manifest服务的URL,通常是一个XML RPC 服务 它要支持一下RPC方法: GetApprovedManifest(branch, target) :返回一个manifest用于指示所有projects的分支和编译目标。 target参数来自环境变量TARGET_PRODUCT和TARGET_BUILD_VARIANT,组成$TARGET_PRODUCT-$TARGET_BUILD_VARIANT GetManifest(tag) :返回指定tag的manifest

  • project 需要clone的单独git name :git 的名称,用于生成git url。URL格式是:${remote fetch}/${project name}.git 其中的 fetch就是上面提到的remote 中的fetch元素,name 就是此处的name path :clone到本地的git的工作目录,如果没有配置的话,跟name一样 remote :定义remote name,如果没有定义的话就用default中定义的remote name revision :指定需要获取的git提交点,可以定义成固定的branch,或者是明确的commit 哈希值 groups :列出project所属的组,以空格或者逗号分隔多个组名。所有的project都自动属于"all"组。每一个project自动属于 name:'name' 和path:'path'组。例如,它自动属于default, name:monkeys, and path:barrel-of组。如果一个project属于notdefault组,则,repo sync时不会下载 sync_c :如果设置为true,则只同步指定的分支(revision 属性指定),而不是所有的ref内容。 sync_s : 如果设置为true,则会同步git的子项目 upstream :在哪个git分支可以找到一个SHA1。用于同步revision锁定的manifest(-c 模式)。该模式可以避免同步整个ref空间 annotation :可以有0个或多个annotation,格式是name-value,repo forall命令是会用来定义环境变量

  • include 通过name属性可以引入另外一个manifest文件(路径相对与当前的manifest.xml 的路径) name :另一个需要导入的manifest文件名字 可以在当前的路径下添加一个another_manifest.xml,这样可以在另一个xml中添加或删除project

  • remove-project 从内部的manifest表中删除指定的project。经常用于本地的manifest文件,用户可以替换一个project的定义

编辑 (opens new window)
安装Samba
Android.mk

← 安装Samba Android.mk→

Theme by Vdoing | Copyright © 2022-2022 sunofbeach.net
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式