`
lx82319214
  • 浏览: 108393 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

如何在Ubuntu编译Android2.3源代码以及制作自己的SDK

阅读更多

经过2两周断续的搜索网上编译的东西、得到了有用的编译之道

系统:

要是不会装系统在此本人分享下心得

网上下一个软碟通软通(UitraISO)工具、然后去官网上下载一个64位ubuntu.*.iso系统文件、然后软碟通工具自己制作一个USB启动盘(非常简单)不会用软碟通的百度一下一大把!、系统最好是10.40以上的版本

使用的是ubuntu官网下载的ubuntu10.04 LTS 64位版本(ubuntu-10.04.2-desktop-amd64.iso)

 

配置软件源:

系统安装完毕以后应该首先换一个速度快的软件源

一般用的是ubuntu.cn99.com

不然下载各种更新和软件包的时候非常的慢

 

安装JDK:

我要编译的是2.3姜饼的源代码 所以需要使用jdk6 (还需要是64位的系统)

如果是32为系统藐视jdk要安装jdk5.0的吧!藐视说有个doc什么的不行!所以系统一般装64的、如果是32的小伙们赶快把jdk看看

安装方法:

打开终端

输入

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

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

sudo apt-get update

sudo apt-get install sun-java6-jdk

就安装好了 (ubuntu10.04 LTS版会自带那两个源)

并且不需要配置环境变量

这一步可以参考 http://source.android.com/source/initializing.html

 

(安装包安装实例)

hehangjun@hehangjun-Ubuntu:~$ uname -a
Linux hehangjun-Ubuntu 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

用此命令查看系统的信息,如果是32位的则不会显示后面的_64 只会显示x86

 

0.1--下载

              JAVA JDK下载地址:

              http://www.oracle.com/technetwork/java/javase/downloads/index.html

              点击DOWNLOAD JDK,我下载的是这个

              Linux x64 - Self Extracting Installer //jdk-6u25-linux-x64.bin //81.36 MB

              直接用FireFox下载保存

0.2--安装

              hehangjun@hehangjun-Ubuntu:/usr/lib/jvm/java$ sudo cp /home/hehangjun/下载/jdk-6u25-linux-x64.bin ./

              进入:/usr/lib/jvm/java该目录,将jdk复制到当前目录

              执行命令sudo chmod +x jdk-6u25-linux-x64.bin,为JDK增加可执行权限

              执行命令sudo ./jdk-6u25-linux-x64.bin,安装JDK至当前目录

             

0.3--配置

             执行sudo gedit /etc/environment,添加配置

             PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java/jdk1.6.0_25/bin"
             CLASSPATH=".:/usr/lib/jvm/java/jdk1.6.0_25/bin/lib"
             JAVA_HOME="/usr/lib/jvm/java/jdk1.6.0_25"

 

             sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_25/bin/java 300

             sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_25/bin/javac 300

             然后是sudo update-alternatives --config java配置首选项,敲入数字做选择

             因为Ubuntu11.04中好像默认没有安装任何的javaJdk,所以你安装配置了之后

             执行java -version查看

             java version "1.6.0_25"
            Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
            Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)

             以上信息,OK

 

安装各种软件包:

终端中输入

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 texinfo libsdl-dev libwxgtk2.6-dev

最后三个是我补充的 其他都是官方文档提供的

这一步可以参考 http://source.android.com/source/initializing.html

 

下载源代码:

打开终端并输入

mkdir ~/bin

PATH=~/bin:$PATH

这两句是在你的个人文件夹下创建了一个名字叫bin的文件夹 并且把其加入到了环境变量中

 

再输入

curl https://android.git.kernel.org/repo > ~/bin/repo

chmod a+x ~/bin/repo

这两句首先在bin目录下面下载了一个repo文件 repo简单来说就说用来版本控制的 我们就是用的它来同步代码

 

然后建立一个用来存放源代码的文件夹 我的这个文件夹的名字是android2.3

输入

mkdir android2.3

cd android2.3

进入android2.3目录

 

输入

repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread

   在此说明一下:

安卓总称:“机器人

 1.5系统:“纸杯蛋糕

Android 1.6 Donut甜甜圈
Android 2.0 Eclair松饼
Android 2.1 Eclair松饼
Android 2.2 Froyo冻酸奶
Android 2.3 Gingerbread姜饼(以上系统都是用于手机的)官方消息说2.4准备出来了!至于3.0目前只用于平板电脑

Android 4.0 Ice Cream Sandwich(简称ICS,冰淇淋三明治),             

 

 

 

表示你需要的代码是姜饼的 所以最后是gingerbread 如果是2.2代码 就把gingerbread改成froyo

然后你需要输入你的名字跟邮箱地址

如果提示找不到repo命令的话 需要重新设置环境变量 就是之前的PATH=~/bin:$PATH

 

输入

repo sync

开始同步代码 这个过程会根据你的网速来决定快慢

这一步需要下载的数据有3g那么大

可以续传 一次没下完也没关系

 

如果之前就已经下过一次的话 只需要把源代码目录(我的是android2.3)下有一个叫.repo的隐藏文件夹里的projects文件夹备份出来就可以了

以后还需要同步的时候再把projects文件夹拷贝回去

ctrl+h查看隐藏文件

 

这一步可以参考 http://source.android.com/source/downloading.html

 

编译整个源代码:

cd android2.3

进入你的代码目录

输入

. build/envsetup.sh

注意.和build中间有个空格

输入

lunch full-eng

make -j2

输入make就是开始编译代码了 加一个-j2参数就是开两个线程去编译 速度会快些 我花了两个小时的时间

 

编译完毕以后马上输入

emulator

就可以运行模拟器了 系统能跑起来就说明编译成功了

如果提示找不到emulator命令的话

需要添加环境变量

 

在android2.3目录下的out/target/product/generic文件夹下会看到system.img

能看到的话应该算是成功了

 

这一步可以参考 http://source.android.com/source/building.html

 

编译SDK:

 这一步在官方网站上没有说明

但是在源代码文件夹里面有文档提到了

就是在android2.3/sdk/docs目录下有一个叫howto_build_SDK.txt的文件介绍了如何编译SDK

原文

 

Then once you have all the source, simply build the SDK using:

  $ cd ~/my-android-git
  $ . build/envsetup.sh
  $ lunch sdk-eng
  $ make sdk

看来不需要先编译整个系统再编译SDK 可以直接上来就编译SDK

 

按提示输入

make到时候也可以加上-j参数 比如 make -j2 sdk

但是不推荐 因为容易编译失败 而且编译SDK只需要二十多分钟到时间 不算很长

 

当出现

 

Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip

的时候 就表示编译成功了 其中<build-id>默认是系统的用户名

 

 

howto_build_SDK.txt中还提到了编译ADT插件

我发现自己编译到ADT插件竟然认不到platform 自己编译出来到SDK也一样

原因不明

只要使用官方的SDK和ADT就没有问题了

具体就是把自己编译出来platform拷贝到官方SDK里到platforms文件夹下 搞过Android开发都懂的

 

最后:

非常简单的一步

就是直接修改源代码然后编译SDK就可以得到自己的SDK了

我就示范一个简单的例子 抛砖引玉

 

首先我找到TextView的代码

在frameworks/base/core/java/android/widget 如图

我在updateTextColors方法的开头添加了一句System.out.println

打印了一句话"Source Code Changed"

updateTextColors方法会在TextView的setTextColor方法中被调用

 

好 保存

编译

然后使用这个platform

新建一个项目

调用一下TextView的setTextColor方法看看有什么效果

 

 

如图

一个很简单的例子

 

 

 

看看

Source Code Changed被打出来了

SDK修改成功得意

 

 

 

 

分享到:
评论
1 楼 lerous 2012-08-13  
~
不错~ 收了

相关推荐

    Ubuntu-32位机安装编译Android2.3源码及内核

    在Ubuntu 10.04 LTS 32位系统上,安装Java Development Kit (JDK) 版本6是至关重要的,因为Android 2.3需要这个版本的JDK来编译源代码。你可以通过以下命令安装JDK6: 1. 添加Canonical仓库: ``` sudo add-apt-...

    Ubuntu-32位机安装编译Android2.3源码及内核.doc

    在本文档中,我们将深入探讨如何在Ubuntu 10.04 32位系统上安装和编译Android 2.3(代号Gingerbread)的源代码和内核。这一过程涉及到多个步骤,包括Java开发环境的配置、必要的软件包安装、Android源码的获取与编译...

    在Ubuntu上下载、编译和安装Android最新源代码

    ### 在Ubuntu上下载、编译和安装Android最新源代码 #### 概述 本文将详细介绍如何在Ubuntu系统中下载、编译并安装Android最新源代码的过程。为了完成这一任务,首先需要在一个虚拟机环境中安装Ubuntu操作系统,这...

    webrtc_android源代码获取以及编译

    Depot Tools是Chromium项目的编译工具,用于管理和编译源代码。 首先,我们需要安装 Depot Tools。安装完成后,我们可以使用 Depot Tools来下载和编译Webrtc源代码。 三、获取源代码 获取Webrtc源代码可以通过Git...

    Android下载代码及编译代码

    本文主要针对smdkv210平台,介绍如何下载Android源代码和Linux Kernel源代码,以及如何编译这两个核心组件。 首先,我们来详细了解下载过程: 1. **下载repo工具**: 在Ubuntu系统中,你需要获取repo工具来管理...

    ubuntu11.10(64位)虚拟linux系统下 ---修改编译android工程

    在Ubuntu 11.10 64位操作系统上,如果你想要修改并编译一个Android 2.3.5(Gingerbread)工程,这里提供了一步步的详细指南。首先,你需要下载Android 2.3.5的源代码并将其解压到/home/xxx/android2.3/source目录下...

    ubuntu 下面编译linphone 的全部过程 包括java等环境的搭建

    通过上述步骤,您可以在 Ubuntu Kylin 14.04.1 系统上成功地编译并安装 Linphone,以及配置 Java 开发环境。这为后续的 SIP 应用开发奠定了坚实的基础。在整个过程中,关键在于仔细阅读官方文档,并确保所有依赖库都...

    在Ubuntu上编译android.pdf

    在Ubuntu系统上编译Android源码是一个复杂但非常有趣的过程,涉及到许多软件开发的知识点。下面是对给定文件内容中提到的相关知识点的详细说明: 1. **Ubuntu操作系统版本**:文档中提到了Ubuntu 7.10和Ubuntu 8.04...

    Android_SDK编译,带自己api的android.jar编译.docx

    在Android开发过程中,有时我们需要对Android SDK进行定制,比如添加自己的API到`android.jar`中。这个过程涉及到Android源码的编译和构建系统。以下是详细的步骤,教你如何在Android SDK中集成自定义API。 首先,...

    Android内核源代码交叉编译[归类].pdf

    本文将详细讲解在Ubuntu 10.10环境下,如何进行Android内核源代码的交叉编译过程。 首先,为了进行Android内核的模拟器开发,需要安装Android SDK并创建Android虚拟设备(AVD)。AVD是用于模拟不同Android版本的...

    VLC for Android最新源代码

    6. **编译流程**:在Ubuntu下编译VLC源代码,开发者需要配置环境,设置路径,然后运行构建脚本来生成APK。这通常涉及运行`./gradlew build`或者类似的命令。 7. **自定义功能开发**:通过源代码,开发者可以添加...

    ubuntu10.4编译funambol android源码

    本文将详细介绍如何在Ubuntu 10.4环境下编译Funambol的Android源码,为初学者提供指导。 1. **环境准备** - **Sun Java 1.6 SDK**:使用`sudo apt-get install sun-java6-jdk`安装,并设置环境变量。 - **...

    Android 系统 8.1源码

    它由Google公司维护,并且是开放源代码项目(AOSP)的一部分。Android系统以其高度可定制性和广泛的硬件支持而闻名,这使得它成为世界上最受欢迎的移动操作系统之一。 #### 二、Android 8.1版本特点 Android 8.1...

    Android_SDK编译,带自己api的android.jar编译.pdf

    通过以上步骤,你就能得到一个包含了自定义API的Android SDK,可以在自己的应用程序中使用这些新的API。注意,这通常用于系统应用或需要访问系统级别的API,对于常规应用开发,一般不需要直接修改`android.jar`。在...

    AndroidSDK编译,带自己api的androidjar编译.pdf

    在Android开发过程中,有时我们需要对Android系统框架进行扩展或自定义,这可能涉及到对Android SDK的编译,以便将我们自己的API打包进`android.jar`。以下是一个详细步骤的指导,教你如何在Android源码的基础上编译...

    ubuntu编译QOCI驱动

    - 在安装过程中,确保选择自定义安装,并勾选"Source Code"选项,以便获得编译QOCI所需的源代码。 3. **编译QOCI驱动**: - 导航到Qt源码目录下的`$QTDIR/QtSources/4.8.0/src/plugins/sqldrivers/oci`。 - 把...

    Android_SDK编译,带自己api的android.jar编译[文].pdf

    在Android应用开发中,有时我们需要对Android SDK进行定制,以便包含自己的API或特定功能。这个过程涉及到对Android源码的编译和修改。下面详细解释如何在Android SDK中添加自定义API并编译生成带有这些API的`...

    RK3588-Android12环境搭建与版本编译下载文档

    RK3588_Android12环境搭建与版本编译下载, 1. 编译依赖库 apt-get install liblz4-tool apt-get install device-tree-compiler 将本目录下的lz4文件拷贝到/usr/bin/目录下 cp lz4 /usr/bin/lz4 2. 代码编译 ...

Global site tag (gtag.js) - Google Analytics