我想再没有比能成功下载了Android源码更让Android开发人员兴奋的事情了-----前后折腾了近3个周,就不贴图了吧,毕竟下载实现的案例、图例有很多了,咱直接来下载过程展示。
为了下载纯正的Android源码,开始在虚拟机的Ubuntu中下载,可是老出问题,自己就想办法装Ubuntu单根系统,即双系统;
装Ubuntu单根系统-双系统: http://blog.csdn.net/quanjin24k/article/details/12842819
在Ubuntu单根系统中下载也是老出问题,不过最终昼夜奋战,还是把Android源码下载下来了,查看了下10.4G,下载的时候没有用到分支,应该是最新源码4.3.2;一会儿编译看看;
网络上的教程或多或少的有些过时,照着操作几乎都会出现各种问题导致下载失败,下文是本人经过各种尝试之后得出的有效的下载方式,至少到目前为止方法是可行的;
话不多说,开始今天的正题
Android最新源码下载:
建议下载之前先更新下软件源及软件:
sudo apt-get update //更新软件源
sudo apt-get upgrade //更新软件
sudo apt-get autoremove //清除无用软件
1.准备下载工具:git,repo
安装git:sudo apt-get install git-core flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl valgrind
mkdir ~/bin //repo路径
PATH=~/bin:$PATH //加入环境变量
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo //下载repo
2.建立Android源码存放目录
mkdir ~/android/jellybean //源码存放目录
3.初始化repo;
进入Android源码存放路径下,对repo进行初始化
repo init -u https://android.googlesource.com/platform/manifest.git
上面是直接下载最新源码;如果要具体到某个分支版本, 后面加-b [版本] 例如【-b android-4.1.1_r3】
分支查看URL:https://android.googlesource.com/platform/manifest
4.身份认证:下载前先把这步准备工作完成了最好:
URL:https://android.googlesource.com/new-password ;
gmail登录,将其中的machine的前两行粘贴到以下创建的文件中:获取一次即可;
用户目录下创建: gedit ~/.netrc 粘贴后保存即可;初始化URL暂时先不用加入/a;
注:linux下以“.”开头的文件为隐藏文件,查看方式: ls -all; 或 ls -a
5.修改manifest.xml中的fetch: “git://Android.git.linaro.org/”
初始化之后,ls -all 可以查看到.repo
cd .repo 找到manifest.xml
gedit manifest.xml & 将fetch对应的字符串替换成:“git://Android.git.linaro.org/” 保存
之前有人提供了一个fetch,"······略········"我操作失败,故就不贴出来误导大家了;
6.写自动下载脚本--实现自动下载;
在存放Android源码的目录下:
gedit download.sh 将下面代码粘贴进来;
chmod 777 download.sh 给足权限;其实只给可执行权限即可,也可以这么写:chmod a+x download.sh
源码目录下 ls -all , 找到download.sh, ./download.sh即开启下载;
#!/bin/bash
echo "=======start rep sync============"
repo sync
while[$? == 1]; do
echo "=======sync failed, re-sync again========"
sleep 3
repo sync
done
出错处理:
1.出现EOF;多试几次,目前翻阅大量博客,没找到比较合适的解决办法,无奈只能多试几次;
2.出现:fatal:'../platform/abi/cpp.git' does not appear to be a hit repository 修改manifest.xml中的fetch,见上文。
3. 还有个错误在深夜没抓拍下来, 解决方案:.repo中的manifest中对git进行 -d 什么的 我稍后查阅下以补充上,已有解决办法。
尾注:
1.上文仅限于下载,如有不妥请指正。
2.下载成功后的编译-调试等操作还要根据官网的提示进行相应的准备,不是本文所侧重,稍后博客会浅谈。
3. 当然,下载期间也参阅了不少牛哥们的博客,具体链接对不上号了,寒暄一句:感谢他们的付出。本博文是自己参照众博客的Android源码下载实现,不排除不同机器、系统下载过程可能出现些不同的问题的可能性,欢迎留言商讨,共同学习,共同进步。