android源码管理工具
Google使用git和repo管理AOSP源码。
概念区分
1、Git和git(https://source.android.com/setup/develop#git)
Git是版本控制系统,我们使用git工具进行代码仓库和分支的管理。比如我可以使用git clone
从远程仓库的一个分支下载代码到本地,可以git push
将本地仓库的某一个分支推送到远程仓库的分支,关于git使用可以参考progit
Google将android源码拆分成许多个Git仓库,我们知道每一个git仓库下有.git
文件
hinzer@ubuntu:android-10$ find -name ".git"
./developers/demos/.git
./developers/build/.git
./developers/samples/android/.git
./.repo/repo/.git
./.repo/manifests/.git
./cts/.git
./platform_testing/.git
./prebuilts/go/linux-x86/.git
./prebuilts/go/darwin-x86/.git
./prebuilts/build-tools/.git
./prebuilts/clang/host/linux-x86/.git
./prebuilts/clang/host/darwin-x86/.git
./prebuilts/checkcolor/.git
./prebuilts/android-emulator/.git
./prebuilts/asuite/.git
./prebuilts/gradle-plugin/.git
./prebuilts/manifest-merger/.git
^C
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
2、Repo和repo(https://source.android.com/setup/develop#repo)
然后使用一个Repo仓库对这些拆分开来的Git仓库集中起来进行管理,在源码根目录下有一个.repo
文件,其中manifest.xml
是一个清单文件,记录了远程分支
、本地分支
、本地目录
之间对应关系。
hinzer@ubuntu:android-10$ tree .repo -L 1
.repo
├── manifests # git仓库,清单文件列表
├── manifests.git
├── manifest.xml # 重要,当前清单文件的指向!!
├── project.list
├── project-objects
├── projects
└── repo # git仓库,包含repo运行的所有脚本
5 directories, 2 fileso
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
在.repo
目录之前,还有一个repo工具(通过repo init来初始化Repo仓库),这是一个python写的脚本,可以直接阅读源码(也就是可执行文件的位置)查看代码逻辑。
hinzer@ubuntu:android-10$ whereis repo
repo: /home/hinzer/bin/repo
hinzer@ubuntu:android-10$ cat /home/hinzer/bin/repo
...
...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
PS: google将android源码拆分成许多个Git仓库,又通过Repo将这些拆分还原回一个android源码。像不像计算机原理中的化整为零,还零为整
的思想?
平时使用o
1、Repo和Git
Repo 并非用来取代 Git,只是为了让您在 Android 环境中更轻松地使用 Git。一般我们使用repo
命令建立Repo仓库,同步android源码;使用git
命令对我们修改的其中一个模块提交。
2、Gerrit仓库
一个网页系统,用于代码审核,也方便查看别人提交的patch。
3、OpenGrok
网页系统,在线阅读源码的利器。
4、Android Studio
用于开发 Android 应用的官方集成开发环境 (IDE)。
相关资料
文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/feit2417/article/details/105187330
- 点赞
- 收藏
- 关注作者
评论(0)