用Repo管理自己的本地仓库
2024-09-05 16:17:35
AOSP使用Repo工具管理项目源码。而Repo工具则依赖一个名叫manifest的git仓库来记录Android源码中都包含哪些子仓库。
进入Android源码根目录下的.repo目录,可以看到manifest仓库的相关信息:
查看manifest.xml
文件,可以看到:
它引用了default.xml
文件,再看一下manifests/default.xml
文件:
可以看到default.xml
文件定义了整个Android源码所用到的所有子项目,Repo就根据这个文件来同步代码。
那么问题来了,如何在Android源码中添加其它子仓库呢?或者如何添加我们自己的仓库?从而实现每次repo sync
时自动也帮我们同步一下自己的仓库。比如Android源码中内核是编译好后放进来的(没有相关内核源码),我想每次编译完自己的内核后将其放入一个git仓库,然后执行repo sync
将这个自己的内核拉到Android源码目录下,这个需求如何实现?
首先创建一个git仓库来放编译后的Android内核,这里是android_kernel
目录:
在.repo
下新建local_manifests
目录,在下面创建自己的仓库定义文件,我这里叫kernel.xml
文件内容如下:
- remote表示定义一个远程仓库,name随便,表示仓库名称,fetch表示地址,我这里是一个本地的git仓库;
- project表示定义一个工程,path表示将在Android源码根目录下产生一个叫kernel的目录;name对应原仓库下这个工程的名称,这里就是目录名称;remote是对上面remote的引用,名称和上面所说remote的name一致;
然后进入Android源码根目录cd /usr/source/android
,执行repo sync android_kernel
,当前目录下就会多一个kernel目录。
原理就是Repo会将local_manifests
目录下的xml文件和默认的xml文件合并,拉取所有仓库。
最新文章
- 阿里云推送SDK在某些机型(某米为主)下崩溃问题的解决方法
- Akka-actor使用入门
- [deviceone开发]-多种样式下拉菜单demo
- python date
- oracle第一招之神马都是浮云
- CSS Hack大全-可区分出IE6-IE10、FireFox、Chrome、Opera
- jquery 中的 this 和 $(this)
- 当函数没有return时错误
- 与useradd命令相关的两个默认配置文件
- mysql 创建临时节点
- mysql 千分位 Format
- Byte Array to Hexadecimal String
- gen_create_syn.sql
- Android为TV端助力之解决setOnItemSelectedListener一进来就自动执行一次的问题
- 第三篇 功能实现(3) (Android学习笔记)
- Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC 配置校验器
- 《DSP using MATLAB》Problem 6.17
- 常用 Git 命令清单【转】
- 基础002_V7-CLB
- Vue 引入第三方js.css的方式
热门文章
- pandas数据读取
- 如何更愉快地使用rem —— 别说你懂CSS相对单位
- canvas动画—圆形扩散、运动轨迹
- nextSibling和lastSibling
- 7步学会在Windows下上架iOS APP流程
- 在小程序Canvas中使用measureText
- 布局框架frameset
- 防止自己的页面不被其他网站的页面的iframe引用
- git的下载安装以及基本操作
- 解决“WARNINGThe remote SSH server rejected X11 forwarding request.“警告