在Mac OS X中下载Android源码的一些经验

来源:互联网 发布:sysbench for mysql 编辑:程序博客网 时间:2024/05/21 00:54

首先说明,随着近期(2014年6月开始)GFW的升级,这个网站:http://www.android.com/ 已经不能正常访问了,下面的这些操作均是在我连接VPN的时候进行的。

首先,需要做一些准备工作:据这里(http://source.android.com/source/initializing.html)介绍,Mac OS中文件系统的特点是:case-preserving but case-insensitive,也就是保留大小写,但对大小写不敏感,这样会给后续运行一些命令带来很多麻烦,所以他们强烈建议新建一个大小写敏感的文件系统,这一点可以通过磁盘映像很容易地实现:

在Launchpad中——其他——磁盘工具,点开之后在左上角点击“文件”——“新建”——“空白磁盘映像”,然后如图所示,官方建议磁盘映像的大小应该在25GB以上。


在建立好磁盘映像之后,需要每次都去挂载它,比较麻烦,所以官方也建议在:~/.bash_profile中增加这样一条:(简单介绍一下,~表示从用户目录开始,所以下面这条语句中attach的dmg镜像也指的是用户目录。如果大家对vim之类不太熟,可以直接运行:open -e ~/.bash_profile 来打开上面这个文件,当然,不提倡这样做)

# mount the android file imagefunction 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/bashrepo syncwhile [ $? = 1 ]; do    echo "================sync failed, re-sync again ====="    sleep 3    repo syncdone

复制上面代码保存到刚才的源码目录(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/bashPATH=~/bin:$PATHrepo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1repo syncwhile [ $? = 1 ]; do    echo "================sync failed, re-sync again ====="    sleep 3    repo syncdone

然后重新开始下载,经过漫长时间以后,似乎终于下载好了,仔细看了一下,这次一共有20GB左右。准备再试试其他branch。更新一下,以免误导大家。

0 0
原创粉丝点击