Ubuntu编译android源代码---获取源码
做了一定时间的android应用开发,自己也觉得有必要研究下源码了,第一步当然就是学会下载源码了。经过各种百度谷歌,绕了一大圈,才知道自己目前的需求--下载源码。终于完成各种步骤,现在正在下载中...,趁这个时间,我把自己配置环境的步骤记录一下,以防止自己忘记后又得重新找资料。
---首先在这里感谢这些博客给我参考:
http://blog.csdn.net/speedingboy/article/details/5455037
http://blog.chinaunix.net/uid-20791108-id-3761713.html
http://www.cnblogs.com/xingfuzzhd/archive/2012/09/05/2671973.html
http://blog.csdn.net/legendof1991/article/details/17005849
http://www.cnblogs.com/ouling/archive/2011/09/02/2163829.html
http://lirui.blog.51cto.com/2336974/523876
http://hi.baidu.com/glzlaohuai/item/bd3596c33350cd145050584d
注意:我的前提环境:Ubuntu12.04 -32位,JDK1.7,截至目前最新的源码是android4.4_r1.2
其实最规范的步骤肯定是http://source.android.com/source/downloading.html即官网上的说明了,如果英文好的话,跟着官网一步步来不会有啥问题,而且官网也提供了常见问题的解决方法。
一,添加包
如果你只是下载源码则运行命令:
sudo apt-get install git-core curl
如果你想以后编译源码或内核则运行命令:
64位系统:
$ sudo apt-get install git gnupg flex bison gperf build-essential
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
libgl1-mesa-dev g++-multilib mingw32 tofrodos
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
32位系统:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos
python-markdown libxml2-utils xsltproc
二,下载repo
1,在根目录下建立目录bin
$ mkdir ~/bin
$ PATH=~/bin:$PATH
2,将repo下载到~/bin目录中,并为目录添加执行权限
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
三,初始化一个Repo客户端
1,创建一个空目录用来存放android源码,名称随便起。
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
这里有个问题,我用的是virsualbox装的ubuntu,我把目录创建在了ubuntu和主机的共享文件夹里,运行repo init后一直报一个错:[Errno 30] Read-only file system,这个困扰我好久,一直找不到解决方法,后来我把目录创建在别的目录下,问题解决。个人觉得是不是因为是共享文件夹不是真正挂载到ubuntu上的原因,有待补充。
2,运行repo init
获取最新的源代码列表
$ repo init -u https://android.googlesource.com/platform/manifest
使用 -b 来制定下载哪一个branch
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
这里会提示填写名称和邮箱地址,填写完输入y确认。
四,同步代码
$ repo sync
同步过程中会时常中断,可以执行Ctrl+Z手动中断后,继续 $ repo sync,断点续传。
补充:我刚开始下载速度还可以,后来怎么都链接不到,找到一个方法:
1,找到.repo/manifest/default.xml
修改fetch= "https://android.googlesource.com/"
2,修改/etc/hosts文件,添加
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173cache.pack.google.com