- 浏览: 44478 次
- 性别:
- 来自: 成都
文章分类
最新评论
在网上看到一篇编译android源码的文章,照着做挺行的,
通过参考网上的相关资料,我编译Android源码的步骤如下:
* 1 我的系统是Ubuntu 8.04
* 2 系统上必须安装以下工具(摘自网上的资料):
sudo apt-get install build-essential
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libc6-dev
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install patch
sudo apt-get install texinfo
sudo apt-get install libncurses-dev
sudo apt-get install git-core gnupg //(gnupg系统可能已自带)
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install ncurses-dev
sudo apt-get install zlib1g-dev
sudo apt-get install valgrind(可选,有21M大,我觉得一般人是用不到的)
sudo apt-get install python2.5 (实际上不用装,Ubuntu 8.04 已经自带)
sudo apt-get install sun-java5-jdk
注意:
a. 不要用 sun-java6-jdk, 不然在make sdk, 具体来说是make doc这一步中, 遇到这个错误:
Docs droiddoc: out/target/common/docs/dx
javadoc: error - In doclet class DroidDoc, method start has thrown an
exception java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
sun.util.resources.OpenListResourceBundle not found
b. 网上资料说需要设置环境变量, 但我并没有设置:
export ANDROID_JAVA_HOME=$JAVA_HOME
c. 网上并没有提及要安装ncurses-dev, 但安装之前我编译过程中会出现编译错误.
* 3 建立android源码的存放目录
$ mkdir ~/open_src
$ mkdir ~/open_src/android
$ cd ~/open_src/android
$ mkdir bi
* 4 下载repo脚本,放到~/open_src/android/bin目录下,加上可执行权
$ curl http://android.git.kernel.org/repo > repo
$ sudo mv repo ~/open_src/android/bin
$ sudo chmod a+x ~/open_src/android/bin/repo
* 5 在源码存放目录android中执行
$ ~/open_src/android/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
//中间会提示输入电子邮件什么的,如果你打算要提交patch的话,用google accounts注册过的邮箱
* 6 在android目录中执行repo sync就可以开始下载源码了.
我们也可以从其他地方把源码复制到android目录, 而我正是这么做的.
* 7 编译源码, 并得到~/open_src/android/out 目录
在命令行执行make命令:
$make
这是一个很漫长的过程, 等吧......
* 8 测试运行
8.1 先设置环境变量:
打开~/.bashrc文件, 并在最后添加下面两行:
export PATH=$PATH:~/open_src/android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/open_src/android/out/target/product/generic
8.2 运行模拟器:
emulator --debug-init -skin QVGA-L //可能会提示unknown option: --debug-init, 去掉--debug-init即可
或者直接执行emulator, 这样使用的是默认的皮肤
如果最后能进入到系统并看到一个大时钟, 说明就大功告成了.
* 9 后续编译:
先在android目录下执行
$ . build/envsetup.sh
然后你就会多出几个可用的命令。在改了Contacts联系人项目后,可以简单的执行一下命令来单独编译这个部分:
$mmm packages/apps/Contacts/
为了可以直接测试改动,需要生成新的system.img,在android目录下执行:
$ make snod
当然,如果你改动的是emulator或者其它外围相关的,而非系统内部的东西,就不只是要重新生成system.img了
http://blog.csdn.net/liaoshengjiong/archive/2009/03/04/3957749.aspx
http://hi.baidu.com/garnetttt/blog/item/13426d222f72b3ae4623e8f3.html
通过参考网上的相关资料,我编译Android源码的步骤如下:
* 1 我的系统是Ubuntu 8.04
* 2 系统上必须安装以下工具(摘自网上的资料):
sudo apt-get install build-essential
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libc6-dev
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install patch
sudo apt-get install texinfo
sudo apt-get install libncurses-dev
sudo apt-get install git-core gnupg //(gnupg系统可能已自带)
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install ncurses-dev
sudo apt-get install zlib1g-dev
sudo apt-get install valgrind(可选,有21M大,我觉得一般人是用不到的)
sudo apt-get install python2.5 (实际上不用装,Ubuntu 8.04 已经自带)
sudo apt-get install sun-java5-jdk
注意:
a. 不要用 sun-java6-jdk, 不然在make sdk, 具体来说是make doc这一步中, 遇到这个错误:
Docs droiddoc: out/target/common/docs/dx
javadoc: error - In doclet class DroidDoc, method start has thrown an
exception java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
sun.util.resources.OpenListResourceBundle not found
b. 网上资料说需要设置环境变量, 但我并没有设置:
export ANDROID_JAVA_HOME=$JAVA_HOME
c. 网上并没有提及要安装ncurses-dev, 但安装之前我编译过程中会出现编译错误.
* 3 建立android源码的存放目录
$ mkdir ~/open_src
$ mkdir ~/open_src/android
$ cd ~/open_src/android
$ mkdir bi
* 4 下载repo脚本,放到~/open_src/android/bin目录下,加上可执行权
$ curl http://android.git.kernel.org/repo > repo
$ sudo mv repo ~/open_src/android/bin
$ sudo chmod a+x ~/open_src/android/bin/repo
* 5 在源码存放目录android中执行
$ ~/open_src/android/bin/repo init -u git://android.git.kernel.org/platform/manifest.git
//中间会提示输入电子邮件什么的,如果你打算要提交patch的话,用google accounts注册过的邮箱
* 6 在android目录中执行repo sync就可以开始下载源码了.
我们也可以从其他地方把源码复制到android目录, 而我正是这么做的.
* 7 编译源码, 并得到~/open_src/android/out 目录
在命令行执行make命令:
$make
这是一个很漫长的过程, 等吧......
* 8 测试运行
8.1 先设置环境变量:
打开~/.bashrc文件, 并在最后添加下面两行:
export PATH=$PATH:~/open_src/android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/open_src/android/out/target/product/generic
8.2 运行模拟器:
emulator --debug-init -skin QVGA-L //可能会提示unknown option: --debug-init, 去掉--debug-init即可
或者直接执行emulator, 这样使用的是默认的皮肤
如果最后能进入到系统并看到一个大时钟, 说明就大功告成了.
* 9 后续编译:
先在android目录下执行
$ . build/envsetup.sh
然后你就会多出几个可用的命令。在改了Contacts联系人项目后,可以简单的执行一下命令来单独编译这个部分:
$mmm packages/apps/Contacts/
为了可以直接测试改动,需要生成新的system.img,在android目录下执行:
$ make snod
当然,如果你改动的是emulator或者其它外围相关的,而非系统内部的东西,就不只是要重新生成system.img了
http://blog.csdn.net/liaoshengjiong/archive/2009/03/04/3957749.aspx
http://hi.baidu.com/garnetttt/blog/item/13426d222f72b3ae4623e8f3.html
发表评论
-
如何手动编译一个APK
2011-07-07 14:55 1925he good thing about building ma ... -
android上一些方法的区别和用法的注意事项
2011-07-07 10:03 2094Intent中的addflags()和se ... -
ubuntu 10.04和10.10上下载编译环境配置android2.2-froyo
2011-05-17 23:11 2001ubuntu 10.04和10.10上下载编译环境配置andr ... -
android进程间通信:使用AIDL
2011-05-17 15:07 1332欢迎阅读本文,你能关注本文,你知道你需要进程间通信、需要AID ... -
android 设置线程的优先级
2011-05-17 15:03 3943有两处API可以设置线程的优先级: (1)an ... -
StatusBar (状态栏)的架构(Android 2.3)
2011-05-17 15:02 1138以前我的文章分析过 StatusBar上图标显示的流程, ... -
对Task和Activity在ANDROID中的解释
2011-03-25 10:39 1403android:allowTaskReparenting ... -
如何调用SQLITE工具查看数据库
2011-02-10 14:33 2591Find and connect to a database ... -
Android IPC机制详解
2010-12-13 16:40 874o IBinder接口 IBinder接口是对跨进程 ... -
android 多线程
2010-12-11 17:47 995在Android下面也有多线程 ... -
android中activity的四种加载模式
2010-12-11 16:46 1184一、何为加载模式 在android的多activ ...
相关推荐
本文详细介绍了在Ubuntu 10.04环境下从零开始编译Android源码的全过程,包括获取源代码、安装必要的依赖库以及执行编译等关键步骤。通过本文的指导,你可以顺利地完成Android源码的编译,并进一步进行定制和开发工作...
### Ubuntu 8.04下编译Android源码全过程知识点详解 #### 一、获取Android源代码 在本文档中,介绍了如何在Ubuntu 8.04系统环境下获取Android源代码的过程。此过程主要涉及到了Git版本控制系统的使用以及Repo脚本...
### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 **Git与集中式版本控制系统对比** - **Git**:由 Linux Torvalds 开发,是一种分布式版本控制系统。与 Subversion 和 CVS 这样的...
### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 1. **Git 的介绍与安装**: - Git 是一种分布式版本控制系统,由 Linux Torvalds 为了更好地管理 Linux 内核开发而创建。 - **...
在Ubuntu 10.04环境下编译Android源码的过程是一项复杂的任务,涉及到多个步骤和技术。首先,要了解Git,这是一个分布式版本控制系统,由Linux Torvalds创建,用于管理Linux内核开发。与传统的集中式版本控制系统如...
### 编译 Android 全过程详解 #### 一、获取 Android 源代码 在开始编译 Android 源码之前,第一步自然是获取完整的源代码。对于 Ubuntu 10.04 这样的 Linux 发行版,有几种方法可以获得源码,其中最常见的是使用 ...
- 首先,安装Java Development Kit(JDK),这是编译Android源码的基础。官方推荐使用Sun JDK 1.5版本,尽管1.6版本也能用于部分编译过程,但在特定环节如make sdk时,仍需1.5版本的javadoc。 - 设置环境变量,将...
本文将详细阐述如何编译Android源码以生成`classes.jar`,以及这个过程中的关键知识点。 首先,让我们了解`classes.jar`的作用。它包含了Android系统的Java类库,包含了Android Framework的核心API,开发者可以从中...
在Ubuntu平台上编译Android 2.3源码是一项复杂的过程,需要遵循一系列步骤。首先,确保你的系统满足必要的要求,即运行Ubuntu 10.04或更新版本,并且是64位系统。同时,安装Java Development Kit (JDK) 1.6或更高...
编译Android源码是一项复杂但重要的任务,它涉及到从源代码构建整个Android操作系统,并最终生成可以在Android设备上运行的应用程序包(APK)。本篇文章将详细介绍从建立编译环境到最终生成APK的全过程。 #### 二、...
Ubuntu 8.04下编译Android源码全过程** - **环境准备**:确保已安装必要的软件包,如GCC、Make等。 - **编译脚本**:使用`. build/envsetup.sh`脚本设置编译环境。 - **编译目标选择**:通过`lunch`命令指定编译的...
ubuntu 安装,android4源代码下载编译全过程
### Android源码从下载到编译全过程 #### 一、环境搭建 在开始介绍如何从零开始搭建Android系统开发环境并完成源码的下载及编译前,我们需要明确几个关键点: 1. **操作系统**: 本教程适用于Ubuntu 10.04 x86 32...
源码编译是将操作系统源代码通过编译器转化成可在特定硬件上运行的二进制文件的过程。本文详细记录了在iTOP-4412开发板上编译Android操作系统源码的完整流程以及遇到的问题和解决方法。 首先,编译Android系统源码...
构建SQLCipher for Android源码通常需要在Linux或Mac OS X系统上,使用Android NDK(Native Development Kit)进行编译。这意味着需要配置Android SDK、JDK、NDK等开发环境,并确保它们的路径被配置为系统环境变量。...
史上最详细的android4.4源码下载和编译过程,文档每个步骤都采用图解的方式详细讲解以及错误的解决方案。包括了最新版的android4.4的源码下载,编译和vm安装,ubuntu12.04的安装,很详细,很详细。文档见。
在IT行业中,反编译是将已编译的二进制程序转换回源代码的过程,目的是为了理解其工作原理或进行逆向工程。本资源是一个关于京东App的反编译结果,提供了对这款流行电子商务应用的内部机制一窥究竟的机会。这个...
在Android开发过程中,有时我们需要对已有的APK应用进行反编译,以便了解其工作原理、查看源代码或进行二次开发。"Android反编译全套工具"是一个集合了多种工具的压缩包,提供了完整的反编译流程支持,包括APK的拆解...