- 浏览: 43202 次
- 性别:
- 来自: 成都
文章分类
最新评论
在网上看到一篇编译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 1865he good thing about building ma ... -
android上一些方法的区别和用法的注意事项
2011-07-07 10:03 2011Intent中的addflags()和se ... -
ubuntu 10.04和10.10上下载编译环境配置android2.2-froyo
2011-05-17 23:11 1953ubuntu 10.04和10.10上下载编译环境配置andr ... -
android进程间通信:使用AIDL
2011-05-17 15:07 1298欢迎阅读本文,你能关注本文,你知道你需要进程间通信、需要AID ... -
android 设置线程的优先级
2011-05-17 15:03 3899有两处API可以设置线程的优先级: (1)an ... -
StatusBar (状态栏)的架构(Android 2.3)
2011-05-17 15:02 1104以前我的文章分析过 StatusBar上图标显示的流程, ... -
对Task和Activity在ANDROID中的解释
2011-03-25 10:39 1359android:allowTaskReparenting ... -
如何调用SQLITE工具查看数据库
2011-02-10 14:33 2540Find and connect to a database ... -
Android IPC机制详解
2010-12-13 16:40 843o IBinder接口 IBinder接口是对跨进程 ... -
android 多线程
2010-12-11 17:47 954在Android下面也有多线程 ... -
android中activity的四种加载模式
2010-12-11 16:46 1152一、何为加载模式 在android的多activ ...
相关推荐
介绍android源码下载方法步骤、编译过程、编译后运行的方法。
Ubuntu_10.04下编译Android源码全过程
Ubuntu 8.04下编译Android源码全过程
Ubuntu 10.04下编译Android源码全过程
Ubuntu10.04下编译Android源码全过程.pdf
(修正的)Ubuntu_10.04下编译Android源码全过程
Ubuntu 10.04 下编译Android源码全过程
ubuntu 安装,android4源代码下载编译全过程
Ubuntu平台下Android2.3源码下载编译全过程
Android 源码下载、配置、编译全过程;有关“私有文件”的方法请参考“翻译一个源代码编译G1ROM的教程,很好很入门”
史上最详细的android4.4源码下载和编译过程,文档每个步骤都采用图解的方式详细讲解以及错误的解决方案。包括了最新版的android4.4的源码下载,编译和vm安装,ubuntu12.04的安装,很详细,很详细。文档见。
此文章为iTOP-4412开发板Android操作系统源码编译过程索与故障及解决办法。
最近一直在搭建Android系统开发环境,找了好多资料,但是大都都有问题(最起码现在用起来有问题),所以把自己的过程记录下来,备忘,也希望能给别人帮个小忙,当然,顺便赚点小分~~吼吼
该文档为亲手实践总结,绝对靠谱,从下载openssh源码到成功使用的全过程,凝聚了网上很多经验。
深入Android应用开发:核心技术解析与最佳实践以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为...
Android Killer 是一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一 身,支持logcat日志输出,语法高亮,基于关键字(支持单行...
深入Android应用开发:核心技术解析与最佳实践以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为...
将会支持 Google 可能发布的手机操作系统或者应用软件,共同开发名为 Android 的开放源代码的移动 系 统。 谷歌早在 2002 年就进入了移动领域,可是由于目前的手机操作系统企业和手机企业相对封闭,提高了 行业的...