ANDROID 源码编译 流程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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(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.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

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行前右键加断点

然后操作模拟器打开计算器,按下拨号键,此时程序就会停在断点上

相关文档
最新文档