搞了几个月的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. Angular Material & Hello World

    前言 Angular Material(下称Material)的组件样式至少是可以满足一般的个人开发需求(我真是毫无设计天赋),也是Angular官方推荐的组件.我们通过用这个UI库来快速实现自己的i ...

  2. noip2009提高组解题报告

    NOIP2009潜伏者 题目描述 R 国和S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历尽艰险后,潜伏于 S 国的R 国间谍小C 终于摸清了S 国军用密码的编码规则: 1. S 国 ...

  3. nodejs启动前端项目步骤

    在.nuxt目录下打开命令行: 一:npm rm node-sass 二:npm install node-sass 三:npm install 四:npm run dev

  4. Linux下sh/bash/source/.命令的区别(转)

    一..sh文件介绍 .sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件. 二.点命令(.) .命令和source是同一个命令,可以理解为sour ...

  5. 转:某运维DBA的mysql学习心得

    转自:http://www.cnblogs.com/lyhabc/p/3691555.html 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心 ...

  6. 修改ubuntu系统时区

    ubuntu默认时区是Etc/UTC,和我们的北京时间相差8个时区,需要修改系统的时区,以下有两种简单方式修改系统时区: 1.修改/etc/timezone文件 vi /etc/timezone 把E ...

  7. javaproject积累——树形结构的操作

    近期一直被树形结构整的非常头大,又是递归.又是循环.可是,好在我们在经历了千辛万苦后.最终弄出来了.事实上就是组织机构的常规操作,有些是我们过度设计.有些是我们想错了.而对数的逻辑读取,我们就属于想错 ...

  8. SolidEdge 工程图中如何显示彩色工程图

    点击这个按钮,然后更新视图   效果如下图所示,注意如果你的装配图(.dft文件)是单独拷贝出来的,装配图所引用的零件无法追溯到,则无法渲染这些零件,因此无法制作彩色工程图.

  9. Solidworks 不能生成实体,因为这将导致厚度为零的零件怎么办

    如下图所示,我认为我长出一块东西根本不会对其他零件有什么影响.   去掉合并结果之后就好了.   钣金要比方钢高出1mm,这样焊接上去才方便.              

  10. spring MVC使用Interceptor做用户登录判断

    在任何一个项目中,我们必须要用到的就是用户登录,那么就少不了用户是否登录的判断,如果我们每一个请求都要去做一次判断,那么就会变得很麻烦,但我们复制粘贴的时候我们就要考虑我们的代码写的是不是有问题,是不 ...