搞了几个月的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. NFV产品如何才能走向规模商用

    作者简介:王晔,烽火通信科技股份有限公司ICT网络产品线NFV产品总监,高级工程师,研究方向为SDN\NFV\MEC\AI\光通信. 自2013年AT&T率先提出DOMAIN 2.0网络转型计 ...

  2. noip 2013 luogu P1969 积木大赛

    题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...

  3. Go --- GC优化经验

    不想看长篇大论的,这里先给个结论,go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用. 想知道如何提前预防和解决问 ...

  4. 【c++】面向对象程序设计之虚函数详解

    一.动态绑定什么时候发生 当且仅当通过指针或引用调用虚函数时,才会在运行时解析该调用 二.派生类中的虚函数 当我们在派生类中覆盖了某个虚函数时,可以再一次使用virtual指出该函数的性质,但是这么做 ...

  5. Android电子书项目实训【项目说明】【1】

    概述: 本实训项目是本科教学中,Android课程实训的项目,旨在训练Android App訪问server,获取server数据,解析,并呈现的流程.主要包括的功能有: 1.用户注冊 2.登录 3. ...

  6. 哈理工2015 暑假训练赛 zoj 2976 Light Bulbs

    MS    Memory Limit:65536KB    64bit IO Format:%lld & %llu SubmitStatusid=14946">Practice ...

  7. springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定

    springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...

  8. SQL数据分组后取最大值或者取前几个值(依照某一列排序)

    今日做项目的时候,项目中遇到须要将数据分组后,分组中的最大值,想了想,不知道怎么做.于是网上查了查,最终找到了思路,经过比較这个查询时眼下用时最快的,事实上还有别的方法,可是我认为我们仅仅掌握最快的方 ...

  9. OpenCV中使用SVM简介

    下面这是opencv官方文档中的代码,我加了一部分注释: #include "stdafx.h" #include "opencv2/core/core.hpp" ...

  10. 记录魅族m1note编译TWRP recovery 3.1.0-0,包括mtk机型的处理方法

    1.安装64位linux系统,我用的是deepin os 15.3 2.将系统升级到最新版本 sudo apt-get update && sudo apt-get upgrade 3 ...