当前位置:文档之家› Android 源码编译 流程

Android 源码编译 流程

Android 源码编译调试流程
by mengke
1 编译流程
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 patch
sudo apt-get install texinfo
sudo apt-get install libncurses-dev
sudo apt-get install git-core 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
sudo apt-get install python2.5
安装java环境
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts sun-java6-jdk
sudo apt-get install sun-java5-jdk (ubuntu 910 估计会有一些问题)
(注:官方文档说如果用sun-java6-jdk可出问题,得要用sun-java5-jdk。

经测试发现,如果仅仅make(make不包括make sdk),用sun-java6-jdk是没有问题的。

而make sdk,就会有问题,严格来说是在make doc出问题,它需要的javadoc版本为1.5。

因此,我们安装完sun-java6-jdk后最好再安装sun-java5-jdk,或者只安装sun-java5-jdk。

这里sun-java6-jdk和sun-java5-jdk都安装,并只修改javadoc.1.gz和javadoc。

因为只有这两个是make sdk用到的。

这样的话,除了javadoc工具是用1.5版本,其它均用1.6版本:
sudo apt-get install sun-java5-jdk)
cd /etc/alternatives
sudo rm javadoc.1.gz
sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
sudo rm javadoc
sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
假设源代码的目录为mydroid
root@mk-desktop:~/mydroid# ls
Makefile build development frameworks out sdk
bionic cts device hardware packages system
bootable dalvik external ndk prebuilt vendor
2 make 整个环境
执行make 命令(最好系统不要运行别的程序,这个很耗费资源和时间,我的机器用了4个小时)
3 make sdk
执行make sdk
mmm指令:编译整个andoid源码
root@mk-desktop:~/mydroid# mmm
mm指令:编译部分andoid源码
root@mk-desktop:~/mydroid/packages/apps/AlarmClock# mm
4 eclipse 视图介绍
打开eclipse后我们需要用到的是第二三四个
第二个像个小机器人,就是ddms视图
第三个右上有个J,这个是最常用的编辑试图
第四个像个小强,这个是调试的时候需要使用的调试试图
调试
5 在模拟器上运行编译好Android
编译好Android之后,emulator在~/mydroid/out/host/linux-x86 /bin下,
ramdisk.img system.img userdata.img则在~/mydroid/out/target/product/generic下
cd ~/mydroid/out/host/linux-x86/bin
增加环境变量
vim ~/.bashrc
在.bashrc中新增环境变量,如下
#java 程序开发/运行的一些环境变量export
Android_PRODUCT_OUT=~/mydroid/out/target/product/generic
Android_PRODUCT_OUT_BIN=~/mydroid/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}
最后,同步这些变化:
source ~/.bashrc
启动emulator
root@mk-desktop:~/mydroid/out/target/product/generic# emulator -image system.img -data userdata.img -ramdisk ramdisk.img
启动eclipse
在eclipse的ddms视图中选择好进程,
在eclipse的编辑试图Run->Debug Configurations->Remotejavaapplication上双击,然后,”Host:”设为localhost,”Port:”设为8700,”ConnectionType”为
Standard(SocketAttach)
然后“Apply”
6 单步调试例子:
在/mydroid_test/packages/apps/Calculator/src/com/android/calculator2/Calculator.java
第155行前右键加断点
然后操作模拟器打开计算器,按下拨号键,此时程序就会停在断点上。

相关主题