Android源码编译调试流程
by mengke
1编译流程
linux下gcc编译的四个步骤
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(ubuntu910估计会有一些问题)
(注:官方文档说如果用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。因为只有这两个是make sdk用到的。这样的话,除了javadoc工具是用1.5版本,其它均用1.6版本:
sudo apt-get install sun-java5-jdk)
cd/etc/alternatives
sudo rm
sudo ln-s/usr/lib/jvm/java-1.5.0-sun/man/man1/
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
2make整个环境
执行make命令(最好系统不要运行别的程序,这个很耗费资源和时间,我的机器用了4个小时)
3make sdk
执行make sdk
mmm指令:编译整个andoid源码
root@mk-desktop:~/mydroid#mmm
mm指令:编译部分andoid源码
root@mk-desktop:~/mydroid/packages/apps/AlarmClock#mm
4eclipse视图介绍
打开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行前右键加断点
然后操作模拟器打开计算器,按下拨号键,此时程序就会停在断点上

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。