网上看了前人的那么多关于android源码获取方法及环境建立,门路可真多,今天我就总结一下个人学习经验,算是比较完整的了。

一、获取方法:

1、直接找到人家已经下载好的android源码,如cupcake.tar.gz(估计有1G多,如果有必要再用repo sync更新)
2、自己动手从google那里下载(第一种方法往往找不到,因为我们是个体户)

二、必要硬条件:

1、在VM虚拟机下安装好ubuntu(ubuntu8.04以上版本),而且最好分配30G空间给它(考虑到以后你要编译什么东东)
2、你虚拟机下的ubuntu要可以上网,网速最好能达到100KB/s以上的下载速度(一般家里2M的宽带可以达到)

三、必要软条件

1、安装好ubuntu后,再安装VMtools,这个很用必要的。
2、ubuntu最好是以root的身份登录,因为不用sudo的话做什么都说没权限,不爽
方法参见:《ubuntu -超级管理员root 登录》
http://blog.csdn.net/junglyfine/archive/2011/01/03/6113332.aspx

四、下载android前的准备
1、安装环境

(1)安装Python 2.4以上版本

sudo apt-get install python2.5

(2)安装JDK5

<1>官方的说法为:JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older.
以上是更新后的官方说法,之前不是这样说的。JDK6用在Froyo版本以下时,在make sdk会出现错误。知道这个情况,我们安装JDK5,因为我打算下载cupcake这个版本(关于android版本的问题请参见:《android版本及版本代号对照》http://blog.csdn.net/junglyfine/archive/2011/04/02/6299469.aspx)
<2>往往用:sudo apt-get install sun-java5-jdk 是下载不了的,以下提供两个方法
方法一:官方的方法(没验证过):
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"
sudo apt-get update
sudo apt-get install sun-java5-jdk
sudo update-java-alternatives -s java-1.5.0-sun
方法二:网上找的方法(验证OK):
请参见:《在Ubuntu 9.10 and 10.04 环境下安装sun-java5-jdk》http://blog.csdn.net/junglyfine/archive/2010/11/12/6004237.aspx

(3)安装Git 1.5.4 以上版本
方法一:sudo apt-get install git-core
方法二:从http://git-scm.com/下载最新的git源码包,如git-1.6.3.3.tar.bz2
#tar -xjf git-1.6.3.3.tar.bz2
#cd git-1.6.3.3
#./configure
#make;make install
# git --version
git version 1.6.3.3
两种方法我都试了一遍,不管你怎么搞,只要安装好就好了。

(4)安装其它环境
1)、按照官方的说法需要进行:
(更新后的说法)sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev

(之前的说法没记下来,建议用这个)sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

除了以上的环境,可选择安装:
sudo apt-get install valgrind

2)、在安装这些环境可能有些没找到,安装中断。这里解决方法有:
<1>对每一个单独进行sudo apt-get install xxx,记录下不能安装的
<2>改变ubuntu更新的源,即修改sudo gedit /etc/apt/sources.list
修改源请参见:《Ubuntu的source.lis》http://blog.csdn.net/junglyfine/archive/2011/01/02/6112498.aspx

3、总之,安装这些环境时有个原则就是:
<1>安装过的或者ubuntu本来就有的,,可能只是更新,再执行sudo apt-get install不会有什么影响
<2>能安装的尽量安装,宁多毋少,有些没安装的可能对编译是灾难性的

2、安装repo,并同步下载android源码(这里我用root登录,修改了一下官方的方法,个人认为比较好)

# curl http://android.git.kernel.org/repo > ~/bin/repo
# cp -f ~/bin/repo /bin/repo
# chmod a+x /bin/repo
# cd ~
# mkdir mydroid
# cd mydroid
# repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
# repo sync(同步下载android源码)

一些说明:
1)、repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake表示我只要同步下载cupcake这个版本的android源码,当然你也可以选择其它版本,如android 2.2 用repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
2)、repo sync有时可能会出现一些错误而中断同步下载,网上建议说用脚本循环,这个我没试过,有时间可以试一下:
$?=1;
while [ $? -ne 0 ] ;
do repo sync ;
done

3)、repo sync支持续传,所以不用担心多次重新下载。当所有源码下载完毕,repo sync可检查源码的完整性,也不用担心会重新下载。

4)、由于我用root登录,所以所有以上sudo可以不用

总结:其实对于每一个版本的ubuntu都可以写一个android源码获取及环境建立的执行脚本,这样对自己或很多菜鸟来说都是福音。我有时间可能会试一下。

至此,android源码获取完成。记住,现在已经下载了一下cupcake版本的android源码,很有必要用tar命令对这个源码目录进行压缩备份,以便不时之需。

后面,我将写一篇关于android源码编译的文章。

最完整的android源码获取方法及环境建立相关推荐

  1. Android 源码获取-----在Windows环境下通过Git得到Android源代码

    在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过  ...

  2. android源码下载方法 批量下载 基于windows os

    安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...

  3. 各种资源被封后android源码下载方法

    各种资源被封后android源码下载方法. 分类: Android 源码下载2013-08-29 22:27 579人阅读 评论(0) 收藏 举报 先给个国内的下载链接,转至:http://www.a ...

  4. android源码使用方法,android源码中使用到的设计模式(创建型)

    1.单例模式 1.1定义 确保某个类只有一个实例,而且自行实例化并向整个系统提供者个实例. 1.2单例的形式 饿汉模式:第一次就加载,用空间换时间. public class SingleTon { ...

  5. Android源码阅读方法

    很多读者,尤其是初学者特别抗拒去看源码,这里我说明一下为什么要进行源码分析.其中包括下面一些好处: 学习Android源码有助于我们学习其中的设计模式.思想.架构. 熟悉整个源码的架构,有助于我们更加 ...

  6. 【android4.3】记一次完整的android源码截屏事件的捕获(不同于网上的老版本)

    感谢网友cjd6568358的帮助,新版的Android系统截屏功能已经实现,需要的朋友请移步项目主页:https://github.com/Android-ScreenShot/AndroidScr ...

  7. Android源码下载方法、云盘链接、在线阅读

    文章目录 前言 环境 操作 1.下载repo脚本 2.建立工作目录 3.初始化仓库 4.同步源码 云盘直接下载 线上阅读 参考 前言 需要研究下android底层源码及实现,跟着学习的书籍是: < ...

  8. Android源码分析工具及方法

    转载自:http://bbs.pediy.com/showthread.php?t=183278 标 题: [原创]Android源码分析工具及方法 作 者: MindMac 时 间: 2014-01 ...

  9. 《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码

    本节书摘来自异步社区<深入解析Android 虚拟机>一书中的第1章,第1.3节编译Android源码,作者 钟世礼,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

最新文章

  1. Android控件点击圆形阴影反馈解决方案
  2. intellij haskell 插件使用分享
  3. matlab 邵玉斌,matlab 清华大学出版社 邵玉斌编写的《通信系统建模与仿真实例分析》一书的所有MATLAB和SIMULINK代码 - 下载 - 搜珍网...
  4. 如何在 SAP Spartacus 产品明细页面添加自定义 UI
  5. 【转】【C++学习笔记】C++异常处理
  6. MySQL事件与定时器,mysql下存储过程与定时器
  7. POP3与IMAP协议
  8. 梳理一下自己的技术关注面[转]
  9. Luogu P2048 [NOI2010]超级钢琴
  10. VLAN、OSPF、GRE或IPSEC配置作业与抓包内容(新手入门)
  11. windows 2003 server 企业英文版 序列号
  12. 【面向对象-09】子类、父类方法重写和覆盖
  13. 000webhost免费申请
  14. 杂谈——科比球鞋(Nike)全记录
  15. 如何快速实现往全国寄快递?
  16. android sqlite 分词,sqlite fts3自定义分词器 zz
  17. 漏斗周期漏斗数据关联优化
  18. Element UI Element Plus之改变表格单元格颜色
  19. c语言鸣炮21响,肱二头肌高级训练:”21响礼炮”训练法
  20. 如何高效地学习开源项目

热门文章

  1. 算法导论第八章__实现计数排序
  2. 根据年月打印出该月有多少天
  3. PacMan开发-碰撞检测实现
  4. [unity3d]自定义鼠标指针
  5. kvm虚拟机块对齐问题研究
  6. 使用as3crypto在Flex中实现AES加密
  7. java远程调试服务器的工程配置
  8. 再谈js对象数据结构底层实现原理-object array map set
  9. Redis数据类型详解(五种)
  10. HBuilder创建app 基础