文档说明:
1,主要参考android的官网:http://source.android.com/source/initializing.html.
2,本人使用的硬件配置:MacBook Pro,Mountain Lion(10.8)系统。
3,文中所描述的步骤是作者一步一步执行下来的,但绝对并不是唯一的步骤,步骤中的一些小细节读者可以尝试各种自己习惯的方法。
4,带$ 标志的,为terminal中输入的命令语句
第一步,创建磁盘映像(初次使用,执行该步骤)
说明:尽管mac系统保存了文件名的大小写,但却不区分文件名的大小写(file.sh File.sh为同一个文件)。为了避免git大小写的问题产生的bug,建议用户将下载源代码的路径放到区分大小写的磁盘上。
打开Disk Utility(磁盘工具)--> New Image(新建映像),如下图创建磁盘映像文件:
其中的名称android_source,软件会自动加上_dmg,既磁盘挂在后的磁盘名为,android_source_dmg。在切换到该磁盘时,需要用到该名字。
第二步,下载环境配置(初次使用,执行该步骤)
1,xCode,苹果的开发工具,可以在App Store轻松下载。不同的源码所需要的最低版本也是不一样的,作者的mac为10.8,目前所有版本都可下载,具体可参考官网。
2,Command Line Tools,安装完xCode后,打开Preferrences-->Downloads,可以下载改工具,如下图:
3,安装MacPorts
验证是否安装,可以在terminal中输入
$ sudo port
命令行,确定是否存在。否则可以根据官网http://www.macports.org/install.php所要求的步骤安装(该软件的安装前需要安装xcode和command line tools)。
4,安装所需软件
terminal中执行如下命令:
$ echo $PATH
确定是否包含/opt/local/bin路径,并保证该路径在/usr/bin路径前。否则,在home路径下输入如下命令
$ open -e .bash_profile
打开.bash_profile文件后,将如下命令加入到该文件中,并保存。
$ export PATH=/opt/local/bin:$PATH
输入如下命令,安装make, git 和GPG包:
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
细心的用户可能会发现上面所列的命令中安装的git包,而文档中使用的是git-core包,作者在实际安装中使用git-core会报错,改成git会通过。
5,将make版本从3.82降为3.81
说明:首先需要编辑/opt/local/etc/macports/sources.conf文件,该文件为可读的,需要root权限才能修改。修改的内容如下:
在该文件的最后,rsycn所在行的上面加入如下数据:
file:///Users/Shared/dports
接着就可以按照官网上的步骤一个一个命令来执行了:
$ mkdir /Users/Shared/dports $ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/ $ portindex /Users/Shared/dports $ sudo port install gmake @3.81
6,设置文件描述限制
这里我的理解是修改同时打开文件的数量。打开.bash_profile,添加如下代码到该文件中。
# set the number of open files to be 1024 ulimit -S -n 1024
第三步,下载原文件
该步骤中,除第1小点,是初次调用外(保证~/bin文件夹存在),其它步骤在每次下载源码时,都需要调用,并依次调用即可。
1,安装Repo软件(初次使用,执行该步骤)
$ mkdir ~/bin $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
2,装载磁盘
找到之前新建的.dmg (本文新建的为android.dmg),右键如下图所示,
点击DiskImageMounter,成功后会在Finder的左边栏底部看到设备:
3,初始化Repo客户端
在进行该步骤之前,请确认:
- 当前目录已经切换到之前新建的磁盘映像下,装载后,使用 cd/Volumes/android_source_dmg方法可以切换该目录下。
- 确认你的google account可用,可以登陆以下网址确认:https://accounts.google.com/ServiceLogin
- 可以FQ!!至少可以顺畅浏览google及android源码的官网。
以上几个确认后,就可以初始化该客户端了。
首先,要创建一个文件夹并切换到该文件夹下,如
$ mkdir android4.0.1 $ cd android4.0.1
其次,执行如下命令,该命令时为了能够顺利的调用repo命令:
$ PATH=~/bin:$PATH
然后执行以下命令:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
可以根据需要,修改自己需要下载的版本。
4,下载源代码
执行如下命令:
$ repo sync
到目前为止,源码应该可以开始下载了,但由于文件太大,网络出错或者Google ip限制等原因,在下载过程中会出现各种错误或者中断。
5,下载优化1
下载过程中,官网会限制同时连接的数目,为了解决这个问题,官网上提供了如下方法:
- https://android.googlesource.com/new-password,访问该页面,生成帐户密码,按照页面的步骤,将生成页面中machine开头的两行复制下来。
- 在home路径下新建.netrc文件(使用vi,很方便)。
- 将上面复制的内容,拷贝到该.netrc文件中,并保存,保证可读。
- 使用如下命令初始化Repo客户端:
$ repo init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1
完成以上步骤后,可以继续下载。
6,下载优化2
由于网络等原因,会造成下载中断,尽管用户可以通过repo sync命令继续下载,但由于文件太大,出现这种情况的频率很高。因此可以使用如下命令:(源自柯元旦的android技术内核剖析一书)。
#!/bin/bash #FileName get-android.sh PATH=~/bin:$PATH repo init -u https://android.googlesource.com/platform/a/manifest -b android-4.0.1_r1 repo sync while [ $? = 1 ]; do echo "================sync failed, re-sync again =====" sleep 3 repo sync done
以上文件为可执行文件(.sh,通过chmod +x get-android.sh改变该属性),保存到下载文件夹路径下(如 android4.0.1)。
执行该文件./get-android.sh,然后就可以睡觉去了。
第二天打开电脑,如果看到100%的标识,并有done的文字出现(由于急着上班,没有切图),更重要的是,下载源码的文件夹下看到了各种文件夹,那恭喜你,下载成功了!
有什么疑问都可以留言~