首先说明。随着最近(2014年6月開始)GFW的升级。这个站点:http://www.android.com/ 已经不能正常訪问了,以下的这些操作均是在我连接VPN的时候进行的。
首先,须要做一些准备工作:据这里(http://source.android.com/source/initializing.html)介绍。Mac
OS中文件系统的特点是:case-preserving but case-insensitive。也就是保留大写和小写,但对大写和小写不敏感。这样会给兴许执行一些命令带来非常多麻烦,所以他们强烈建议新建一个大写和小写敏感的文件系统,这一点能够通过磁盘映像非常easy地实现:
在Launchpad中——其它——磁盘工具。点开之后在左上角点击“文件”——“新建”——“空白磁盘映像”。然后如图所看到的,官方建议磁盘映像的大小应该在25GB以上。
在建立好磁盘映像之后,须要每次都去挂载它,比較麻烦,所以官方也建议在:~/.bash_profile中添加这样一条:(简介一下,~表示从用户文件夹開始。所以以下这条语句中attach的dmg镜像也指的是用户文件夹。
假设大家对vim之类不太熟。能够直接执行:open
-e ~/.bash_profile 来打开上面这个文件,当然,不提倡这样做)
# mount the android file image function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
这样我们在每次挂载的时候。仅仅须要输入:mountAndroid就能够了。上面那个页面的剩余部分。介绍了一些假设希望build 4.2.X之前版本号须要做的工作,假设仅仅是想下载或build最新版本号,能够直接跳过,转而參考这个页面:http://source.android.com/source/downloading.html 。接下来依照这个页面的介绍,一步步做就能够了。简单总结一下:
$ mkdir ~/bin $ PATH=~/bin:$PATH
以上这两条命令是在用户根文件夹下建立一个bin文件夹。
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
以上这两条命令是将repo tool复制到刚才新建的bin文件夹下。
在完毕这两步之后,我们须要挂载刚才建映像。而且进入到映像中,对于刚才的配置,就进入以下这个映像:
$ cd /Volumes/android
然后在这里建一个文件夹:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
建立文件夹并进入之后,就能够下载Android源代码了:
$ repo init -u https://android.googlesource.com/platform/manifest
这条命令同一时候对repo进行初始化,并指定Android源代码的repository。
最后须要输入:
$ repo sync
以将源代码同步到本地。须要指出的是。即便是有VPN等工具,在下载过程中可能依旧非常不稳定,会多次报错或退出,这时使用repo sync能够继续下载,可是每次手动输入比較麻烦。所以非常多教程都强烈建议大家写一个bash脚本自己主动重新启动下载:
#!/bin/bash repo sync while [ $? = 1 ]; do echo "================sync failed, re-sync again =====" sleep 3 repo sync done
复制上面代码保存到刚才的源代码文件夹(WORKING_DIRECTORY)里。
如:download.sh,在终端中执行该脚本,然后就能够等待其下载完了。另外,repo在下载过程中。在文件夹下是看不到不论什么文件的。下载完毕之后会看到build等文件夹。
这就是一点经验,非常多朋友也总结了如何通过国内能訪问的镜像网站下载的经验。这一点我以后有机会也会总结一下。
----------------------------------
(2014年7月12日更新)
没想到依照上面的流程下载,还是出现了问题,这里总结一下。今天早上起来一看,居然把30GB的磁盘映像空间占满了!(我的Mac上空间确实不多了。256GB的固态硬盘。根本不够用啊)。于是乎设置了一下隐藏目录显示:
$ defaults write com.apple.finder AppleShowAllFiles -bool true $ KillAll Finder
删除以后又一次開始。自己想了一下,这次选择下载某一个版本号,Android的分支列表能够參看这个链接:https://android.googlesource.com/platform/manifest/+refs
我把上面说的download.sh改成了例如以下所看到的:
#!/bin/bash PATH=~/bin:$PATH repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1 repo sync while [ $? = 1 ]; do echo "================sync failed, re-sync again =====" sleep 3 repo sync done
然后又一次開始下载。经过漫长时间以后。似乎最终下载好了,细致看了一下。这次一共同拥有20GB左右。
准备再试试其它branch。更新一下,以免误导大家。