`
dss16694
  • 浏览: 148443 次
社区版块
存档分类
最新评论

android源码的下载与编译

 
阅读更多

之前我写了ubuntu 11.04下android源码的获取http://www.cnblogs.com/dwayne/archive/2011/11/11/2245383.html,在进行编译之后,发现了一些问题,所以再次发上了补充篇。

下载之后源码的编译部分是在ubuntu 11.10下完成的,编译源码的过程在整理出来以后wayne会写出来跟大家分享。本文是在记录编译源码过程中的问题和解决方法后,对以后再准备进行android源码的分析工作做出提醒和经验建议。

在我之前的源码获取篇的基础上,有以下几点建议做出调整:

1.避免选择wubi安装ubuntu系统(不稳定,可能导致编译失败)。

2.在安装开发过程中所需要的一些开发包时,为避免编译过程中遇到些莫名问题,在先前所说基础上,建议安装以下包:

$ sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

3.安装java环境时,选择在线安装方式会更方便。因为它会安装sun-java6-bin和sun-java6-jre,自动配置编译环境。

 

以下是修改后的完整过程总结:

Attention:本文环境是在ubuntu 11.04+下获取并编译android 2.3.3_r1的源码,记录下过程,方便自己备份的同时也希望能对后来者有所帮助。

官网上的要求信息为:

In general you will need:

  • Python 2.4 -- 2.7, which you can download from python.org.

  • JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both from java.sun.com.

  • Git 1.7 or newer. You can find it at git-scm.com.

一、下载前准备工作

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.

1.首先,准备好所需磁盘空间后,就来安装开发过程中需要的一些开发包,在终端中执行以下命令:

$ 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 lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

2.安装java环境

安装Java 6,因为在现在的ubuntu系统包库里,已经不再包含JDK,因此我们需要手动添加库,执行如下命令:

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

之前安装jdk时,官网上给出了两条添加库语句,第二条

$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"

是会提示错误的

Error: 'deb-src http://archive.canonical.com/ lucid partner' invalid

昨天再看官网已经更新了,去掉了这一条,很给力啊有木有~

 

二、开始下载源码(这部分同ubuntu 11.04下android源码的获取http://www.cnblogs.com/dwayne/archive/2011/11/11/2245383.html

现在我们已经准备好了android源码开发所需的环境(无错误),下载源码的过程由于Android的源码很是庞大,需要分Android源码和内核两部分获取。内核部分的源码我暂时是不用的,所以这里只下载源码。

1.先新建一个文件夹存放Android目录,并初始化repo:

wayne@ubuntu:~$ mkdir Android
wayne@ubuntu:~$ cd Android
wayne@ubuntu:~/Android$ mkdir bin
wayne@ubuntu:~/Android$ cd bin
wayne@ubuntu:~/Android/bin$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo >repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 19731 100 19731 0 0 14034 0 0:00:01 0:00:01 --:--:-- 17157


在这里,几个月前http://android.git.kernel.org/已经无法访问了,很多朋友如果用的是这个源下载站点,就会出现如下情况:

wayne@ubuntu:~/Android/bin$ curl http://android.git.kernel.org/repo >repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 244 100 244 0 0 75 0 0:00:03 0:00:03 --:--:-- 976

然后在之后的代码初始化时就会出现如下错误:

./bin/repo: 行 1: 未预期的符号 `newline' 附近有语法错误
./bin/repo: 行 1: `<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'

2.现在继续。建立存放源码目录source,初始化所需的android源码版本,在终端执行如下命令:

wayne@ubuntu:~/Android/bin$ sudo chmod a+x repo
wayne@ubuntu:~/Android/bin$ cd
wayne@ubuntu:~$ cd Android/source/
wayne@ubuntu:~/Android/source$ ../bin/repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1
gpg: 钥匙环‘/home/wayne/.repoconfig/gnupg/secring.gpg’已建立
gpg: 钥匙环‘/home/wayne/.repoconfig/gnupg/pubring.gpg’已建立
gpg: /home/wayne/.repoconfig/gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 920F5C65:公钥“Repo Maintainer <repo@android.kernel.org>”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1

Get https://android.googlesource.com/tools/repo
remote: Counting objects: 1414, done
remote: Finding sources: 100% (78/78)
remote: Total 1414 (delta 917), reused 1414 (delta 917)
Receiving objects: 100% (1414/1414), 429.88 KiB | 169 KiB/s, done.
Resolving deltas: 100% (917/917), done.
From https://android.googlesource.com/tools/repo
* [new branch] maint -> origin/maint
* [new branch] master -> origin/master
* [new branch] stable -> origin/stable
...

这样下来之后,会要求输入用户名和邮箱地址,随意写个就ok。

初始化完毕之后会出现:

repo initialized in /home/wayne/Android/source

现在完成初始化之后便可以下载了,在终端执行如下命令,开始下载:

wayne@ubuntu:~/Android/source$ ../bin/repo sync

下载全部的源码需要很长时间,现在正在经历漫长的等待……

过程中时常看一下,也许会出错而中断:

error: Exited sync due to fetch errors

遇到这些问题时,重新执行一遍../bin/repo sync就ok。

Fetching projects: 100% (165/165), done.
Checking out files: 100% (3573/3573), done.ut files: 30% (1078/3573)
Checking out files: 100% (4679/4679), done.out files: 33% (1580/4679)
Checking out files: 100% (10008/10008), done.t files: 23% (2370/10008)
Checking out files: 100% (11980/11980), done.t files: 0% (64/11980)
Checking out files: 100% (9601/9601), done. out files: 0% (67/9601)
Syncing work tree: 100% (165/165), done.

下载完成。接下来就是编译源码了,敬请期待。

还是一样,欢迎交流指正!

分享到:
评论

相关推荐

    Android源码下载与编译.zip

    **二、Android源码编译** 编译Android源码是一个相对复杂的过程,需要配置好编译环境,包括Java JDK、NDK、以及一些依赖库。在Linux系统上,确保安装了以下软件: ```bash sudo apt-get install build-essential ...

    android源码下载编译

    以下是一个详细的指南,讲解如何在Ubuntu环境下搭建Android源码编译环境,下载Android 4.0.3(Ice Cream Sandwich,简称ICS)的源码,并进行编译。 1. **安装Ubuntu虚拟机**: - 首先,你需要在主机上安装一个支持...

    android 源码的下载,及其编译步骤

    ### Android源码的下载与编译详解 在深入探索Android操作系统的世界时,了解其源代码的获取和编译过程是至关重要的一步。本文将详细解析从环境搭建到源码编译的全过程,确保读者能够顺利地从零开始构建自己的...

    详细android源码下载编译图文教程定义.pdf

    Android源码下载与编译是Android开发者深入理解操作系统工作原理和进行系统级开发的重要步骤。以下是一份详细的Android源码下载和编译教程。 首先,你需要安装必要的工具,包括Git和Curl。Git是一个分布式版本控制...

    详细android源码下载编译图文教程.pdf

    这篇教程主要介绍了如何在Ubuntu 11.04系统中下载和编译Android源码的详细步骤,适合Android开发者和对...通过实践这些步骤,你将能够掌握Android源码下载与编译的基础流程,为进一步的Android系统定制和优化打下基础。

    android P android9源码编译.ipr.iml文件

    需要注意的是,编译Android源码可能需要大量的计算资源,包括内存和磁盘空间。此外,由于源码的复杂性,可能需要解决依赖问题、编译错误或配置问题。熟悉Android的构建系统,如`build.gradle`文件和`Android.mk`文件...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    "安卓Android源码——Android Launcher 源码修改可编译.zip" 这个标题表明我们关注的是Android操作系统的源代码,特别是与启动器(Launcher)相关的部分。Launcher是用户与Android系统交互的主要界面,它管理应用...

    android2[1].3源码下载编译过程

    在Android开发领域,掌握源码下载与编译过程是一项至关重要的技能。对于Android 2.3(也称为Gingerbread)版本,虽然现在已经较为陈旧,但了解其源码的获取与编译方法有助于理解Android系统的底层工作原理,对开发者...

    Android Launcher 源码修改可编译.zip项目安卓应用源码下载

    Android Launcher 源码修改可编译.zip项目安卓应用源码下载Android Launcher 源码修改可编译.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    android源码上编译APK

    在Android源码上编译APK是一个复杂但必要的过程,特别是当你需要开发具有系统权限的应用,例如修改系统时间或实现关机功能。以下是对整个流程的详细解释: 首先,你需要编译Android源码。这通常涉及到获取源码、...

    Android Launcher 源码修改可编译.zip源码资源下载

    本文将深入探讨Android Launcher的源码结构、关键组件以及如何进行修改和编译。 首先,理解Android Launcher的源码结构是至关重要的。源码通常包括多个模块,如UI布局文件、Java代码、资源文件(如图片、字符串资源...

    史上最详细android4.4源码下载和编译全过程

    史上最详细的android4.4源码下载和编译过程,文档每个步骤都采用图解的方式详细讲解以及错误的解决方案。包括了最新版的android4.4的源码下载,编译和vm安装,ubuntu12.04的安装,很详细,很详细。文档见。

    android 9.0 源码下载(28 r6)

    下载和编译Android源码是一项复杂的任务,需要耐心和一定的技术背景。不过,通过这个过程,开发者可以深入了解Android的工作机制,实现更深层次的定制和优化。如果你对Android有浓厚的兴趣,这绝对是一个值得投入的...

    Android交叉编译环境&Iperf3;.0源码编译

    6. **编译与安装**:现在可以编译iperf3源码并将其安装到指定目录。 ``` make make install ``` 7. **生成动态库**:iperf可能需要动态库支持,使用NDK的交叉编译工具链创建动态库。 ``` $ANDROID_NDK/...

    安卓Android源码——系统源码获取及编译.zip

    Android源码编译完成后,生成的系统映像可以烧录到设备上进行测试,也可以通过模拟器运行。这需要使用fastboot和adb工具,通过命令将系统映像传输到设备,并进行刷机。 对于初学者,理解和编译Android源码可能需要...

    Android 4.2.1 源码下载和编译环境安装及编译

    在进行Android源码的下载和编译之前,首先要确保你拥有一个适合开发的环境。在这个案例中,用户是在Ubuntu 10.04的64位系统上进行操作。以下是一个详细的步骤指南: 1. **下载前的准备** - **安装curl**:用于从...

    Android 源码编译的jar包

    在Android开发中,源码编译的jar包是开发者深入理解系统运作、定制化系统或者进行二次开发的重要工具。本文将详细阐述如何编译Android源码以生成`classes.jar`,以及这个过程中的关键知识点。 首先,让我们了解`...

    Android源码反编译工具包

    这个"Android源码反编译工具包"就是专为这种需求设计的,它包含了查看和分析Android应用源码所需的各种工具。下面将详细介绍这个工具包的关键组件和使用流程。 首先,反编译过程通常包括以下几个步骤: 1. **...

Global site tag (gtag.js) - Google Analytics