`
jandroid
  • 浏览: 1977956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android源码的获取和编译

 
阅读更多

这两天着手编译源码的准备工作,在此记录下过程,方便自己备份的同时也希望能对后来者有所帮助。

Attention:本文环境是在ubuntu 11.04下获取并编译android 2.3.3的源码,过程参考了easwy的博文http://easwy.com/blog/archives/compile-android-gingerbread-2-3-1/ 以及google官网 http://source.android.com/source/downloading.html 。

官网上的要求信息为:

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.5.4 or newer. You can find it at git-scm.com.

  • (optional) Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc. Download from valgrind.org.

另外补充:需要6GB以上磁盘空间,依赖的deb包:flex、bison、gperf、libsdl-dev、libesd0-dev、libwxgtk2.6-dev、build-essential、zip、curl

一、下载前准备工作

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

 $ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 

在此处,需要注意两点:1.libsdl版本为1.2;2.zlib1g-dev别看错了是1而不是l,当然非手敲的tx就不存在这个问题了。

然后需要安装java环境,直接在终端查看下version:

wayne@ubuntu:~$ java -version
程序“java”已包含在下列软件包中:
 * gcj-4.4-jre-headless
 * gcj-4.5-jre-headless
 * openjdk-6-jre-headless
请尝试:sudo apt-get install <选定的软件包>

输入:sudo apt-get install openjdk-6-jre-headless,安装就ok了,再查看下version:

wayne@ubuntu:~$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1)
OpenJDK Server VM (build 20.0-b11, mixed mode)

jdk就安装好了。

二、下载源码

现在我们已经准备好了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。

 

0
0
分享到:
评论

相关推荐

    Android源码获取及编译

    Android源码获取及编译

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

    这份名为“安卓Android源码——系统源码获取及编译”的压缩包文件,显然提供了关于如何获取和编译Android系统源码的教程。接下来,我们将详细探讨这个主题。 首先,获取Android源码主要涉及Git工具的使用。Android...

    Android应用源码之系统源码获取及编译.rar

    3. **JDK与SDK**:Java Development Kit用于编译过程,Android Software Development Kit包含了编译和调试所需的工具。 4. **Android NDK**:Native Development Kit,用于处理C/C++原生代码。 5. **Build-Tools**:...

    android的源码获取与编译

    Android 源码获取与编译是一个复杂的过程,涉及到多个步骤和工具的使用。本文将详细介绍如何在 Ubuntu 系统上获取和编译 Android 的源码。 首先,我们需要确保系统中已经安装了必要的工具,包括 Git 和 cURL。Git ...

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

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

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

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

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

    这个压缩包"安卓Android源码——系统源码获取及编译.rar"显然包含了关于如何获取和编译Android操作系统源码的教程,这对于开发者来说是非常有价值的。我们将详细探讨这个过程。 首先,获取Android源码的官方途径是...

    android源码上编译APK

    总结起来,编译Android源码上的APK需要耐心和精确的操作。遇到问题时,重做编译过程或仔细检查每个步骤通常能解决问题。在整个过程中,熟悉Android的构建系统、资源管理和Makefile语法至关重要。同时,保持源码和...

    安卓开发-Android系统源码获取及编译.zip.zip

    本资源“安卓开发-Android系统源码获取及编译.zip”将引导你完成从获取Android源码到编译成可运行系统的全过程。下面我们将详细探讨这个过程中的关键步骤和相关知识点。 1. 获取Android源码: Android源码主要存储...

    Android应用源码之系统源码获取及编译.zip

    7. **模块化编译**:Android源码采用模块化的构建方式,如HAL(硬件抽象层)使得硬件厂商能够轻松适配Android,而AOSP中的各种服务和应用也是独立模块,方便单独编译和调试。 8. **Android版本差异**:不同版本的...

    第1节 QGIS源码获取和编译(QGIS)QGIS预编译二次开发包

    在本节中,我们将深入探讨如何获取和编译QGIS...总之,QGIS的源码获取和编译是开源GIS开发的重要一环,预编译的SDK则为开发者提供了便捷的起点。结合提供的资源和文档,开发者能够更高效地学习和利用QGIS进行二次开发。

    Android应用源码之系统源码获取及编译-IT计算机-毕业设计.zip

    例如,Android运行时(ART)负责应用的编译和执行,而frameworks则包含了Android系统的大部分核心服务和API。 对于移动开发App的毕业设计,这个过程不仅有助于理解底层操作,还可以探索如何修改源码以实现特定功能...

    Android 源码编译的jar包

    本文将详细阐述如何编译Android源码以生成`classes.jar`,以及这个过程中的关键知识点。 首先,让我们了解`classes.jar`的作用。它包含了Android系统的Java类库,包含了Android Framework的核心API,开发者可以从中...

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

    总结,Android交叉编译iperf3.0涉及到多个环节,包括安装环境、配置编译选项、编译源码、生成动态库以及打包和测试。每个步骤都需要细心操作,确保所有依赖项正确无误。希望这个详尽的指南能帮助你成功编译iperf3,...

    Android源码下载与编译.zip

    了解了下载、编译和分析Android源码的基本步骤后,开发者可以进一步探索特定领域的知识,如UI框架、权限管理、内存管理等,这将有助于提升开发技能,解决实际问题,并为定制化Android系统打下坚实基础。

    Android 源码编译过程

    了解和掌握Android源码编译流程不仅可以帮助开发者深入理解Android系统的运作机制,还能够使他们在定制系统、优化性能、修复bug等方面更加得心应手。在Android源代码编译过程.txt文件中,应该记录了编译过程中的具体...

    android源码编译环境搭建方法说明

    整个Android源码编译环境的搭建涉及到源码的获取、解压,软件环境的准备,JDK的安装与配置,交叉编译器的部署,以及最终的源码编译步骤。每个环节都需仔细操作,确保没有遗漏。掌握这一系列流程,对于深入理解...

    Ubuntu系统下Android源码编译.pdf

    总之,Ubuntu系统下的Android源码编译涉及多个环节,包括环境准备、源码获取、编译配置和问题解决。理解并掌握这些步骤,对于Android开发者来说,不仅能够提升开发效率,也更有利于深入理解Android系统的内部工作...

    编译Android源码全过程

    在开始编译Android源码之前,首先需要确保获取完整的Android源代码。这一部分将详细介绍如何使用Git和Repo脚本完成这一任务。 ##### Git简介 Git是一种分布式版本控制系统,由Linux之父Linus Torvalds开发,旨在更...

Global site tag (gtag.js) - Google Analytics