搞了几个月的Android应用开发,勉强算是个Android开发者了吧,Android本就是开源的,还是把源代码下载下来自己编译一下,看看是个什么东西,出于好奇,和以后的职业发展,开始了无休止的Android研究过程。。。

这篇连载博客用来记录我从下载源代码到编译的整个过程,开始百度和谷歌了无数资料,遇到了不少的问题,以总结出来,希望对后来者有所帮助,于我也算是一种总结吧

接下来首先开发获取最新的Android源代码,目前最新版本是4.0

要获取源代码,当然还得先看官方文档怎么说http://source.android.com/source/initializing.html


第一步:初始化编译环境

To build the Android source files, you will need to use Linux or Mac OS. Building under Windows is not currently supported

大概意思就是指要编译Android源代码文件,你需要使用Linux或者Mac OS系统,在Windows下编译当前不是被支持的,所以,得安个Linux,我目前用的是装在虚拟机的Ubuntu,当然其它的也可以的。

Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.

这一句表示有空间容量的限制,我还在下载,据说完全下载后有6G左右,建议有多大空间就分多大吧,多多益善。

第二步:建立一个Linux的编译环境

在虚拟机中安装Ubuntu以后(在安装Ubuntu的时候,建议断开网络,或者是在连网下载东西的时候,选择skip跳过,这样安装的快一些,我用的最新的ubuntu11.10),接下来:

安装JDK

一般ubuntu安装好后自带有openJDK,这里我们需要使用的是Sun公司的JDK,但是Sun JDK不再ubuntu的软件源里面,为了下载到它,需要增加一个软件源地址,对于到底用JDK5还是用JDK6呢?官方有做解释的,JDK6适合于编译Gingerbread (姜饼)或者更新的版本,就是2.3或者2.3以上的版本吧,对于2.2或者更低版本的,推荐用JDK5 ,这里我们编译4.0的,当然就用JDK6了

在终端中运行下面三句:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

根据提示,一步一步地安装,记得安装的时候,会在终端中出来一个提示框,类似于许可协议的,下面有个确定,但就是点不上,按一下Tab键就选中了,直接确定就会安装,这样就安装好了JDK,可以在终端中测试一下,运行

$java -version

如果有相应的版本提示信息的话,就表示安装成功了。

接下来,如果是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

如果是64位,运行

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc

官方推荐用64位的,我当时没看到,用32位也不会有太大的问题,执行到这步,就已经安装好了Git和Python,除了JDK,这两个也是必须的。下面就要准备下载源码了。。。

第三步:准备下载Android源代码

接下来需要安装、初始化和配置Repo工具

  • 安装Repo

首先确保在你的home目录下面有一个bin目录,如果没有的话,执行下面命令:

$ mkdir ~/bin
$ PATH=~/bin:$PATH

然后下载Repo脚本并确保它能够执行

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
  • 初始化配置Repo客户端

首先创建一个空目录用来保存工作文件

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

然后初始化Repo

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

第四步:开始下载Androd源文件

$ repo sync

这是一个很漫长的过程,等吧,如果发现屏幕卡住了,没动了,而且也没有流量显示,或者感觉不到在下载,类似于这种

建议中断一下(按ctrl + z),然后重新执行第三步(repo sync),这时你会看到会有下载信息。第一次执行repo sync的时候,可能会有错误提示,记不清楚了,百度一下也会出来,重新运行一下repo sync命令就行了。。。

目前我正在下载中,等吧

在Ubuntu下获取Android4.0源代码并编译(一)的更多相关文章

  1. ubuntu下tesseract 4.0安装及参数使用

    tesseract是一个开源的OCR引擎,最初是由惠普公司开发用来作为其平板扫描仪的OCR引擎,2005年惠普将其开源出来,之后google接手负责维护.目前稳定的版本是3.0.4.0版本加入了基 ...

  2. ubuntu 下获取Let's Encrypt免费ssl证书

    # ubuntu 下获取Let's Encrypt免费ssl证书 # 一.安装Nginx https://www.cnblogs.com/watermeloncode/p/15476317.html ...

  3. Ubuntu下安装并配置VS Code编译C++

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7069091.html Ubuntu下安装并配置VS Code编译C++ 安装 ...

  4. ubuntu下C程序的编辑、编译、运行

    均以hello world程序为例 一.vim hello.c/hello.cpp 创建hello.c/hello.cpp文件,并进入vim界面 二.此时按键盘上的很多键均不会有任何反应,键入i,进入 ...

  5. ubuntu下安装selenium2.0 环境

    参考:http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html ubuntu 安装过程: 1.安装:setuptools $ apt-ge ...

  6. Ubuntu下获取内核源码

    查看当前系统使用的内核版本: apt-cache search linux-source 输出如下: linux-source - Linux kernel source with Ubuntu pa ...

  7. QT210 android2.3 和android4.0 烧写编译日记

    QT210下载烧录编译android2.3过程 工作环境:ubuntu12.04.5 | QT210开发板光盘 | QT210开发板 android2.3编译环境:gcc version 4.4.7  ...

  8. QT210 Android4.0源码编译和烧录文档整理

    开发环境说明: Ubuntu 12.04 LTS 32bit 源码文件目录: 勤研光盘2013-5-4\4.0 https://github.com/jackyh (建议在Linux环境下通过git下 ...

  9. 在Ubuntu 14.04 TLS下openvas V8.0源代码安装过程

    [Qboy原创]详细记录源代码的安装过程 1.下载原代码 在http://www.openvas.org/install-source.html下载 Libraries 8.0.8 Scanner 5 ...

随机推荐

  1. configure: error: Cannot find php_pdo_driver.h.

    安装pdo_mysql cd /usr/local/src/php-5.4.0/ext/pdo_mysql/ /usr/local/php/bin/phpize   # /usr/local/php为 ...

  2. lib无法访问另外lib中的头文件

    工程中app已经有设置User Header Search Paths来包含了需要的头文件,但是个别的lib依然找不到头文件.解决方法: 选择这个lib,在Build Settings中查找选项Use ...

  3. 有方向的运动js

    <!doctype html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  4. 三期_day05_Dao层的准备工作_II

    工作文件夹: 实体类:UserInfo.java package com.yc.crm.entity; import java.util.Date; public class UserInfo { p ...

  5. Dynamics CRM 2015中的SSRS Report集成配置

    大家应该都知道.Dynamics CRM能集成SSRS Report,而且我也在之前的博文中讨论过怎样制作一个简单的SSRS Report并部署到Dynamics CRM中.今天我们来看看一些比較有用 ...

  6. OSI七层模型详解(转)

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  7. 设计模式入门之原型模式Prototype

    //原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 //简单来说,当进行面向接口编程时,假设须要复制这一接口对象时.因为不知道他的详细类型并且不能实例化一个接口 //这时就须要 ...

  8. HDU 2669 Romantic(扩展欧几里德)

    题目链接:pid=2669">http://acm.hdu.edu.cn/showproblem.php?pid=2669 Problem Description The Sky is ...

  9. Arrays.asList基本用法

    目录 说明 基本用法 陷阱 改观 说明 asList 是 java.util.Arrays 类的一个方法 public static <T> List<T> asList(T. ...

  10. Comparable 和 Comparator的理解

    对Comparable 的解释 Comparable是一个排序接口 此接口给实现类提供了一个排序的方法,此接口有且只有一个方法 public int compareTo(T o); compareTo ...