1.5.2 用Eclipse开发和调试源代码
Eclipse是开发调试应用层以及应用框架层源代码最适合的工具,本节讲解如何搭建Eclipse开发和调试环境。开始前,请读者自行到Eclipse官方网站(http://www.eclipse.org/downloads/)下载Eclipse,推荐使用Eclipse Juno(v 4.2)-Eclipse for Mobile Developers版。
1.配置Eclipse
步骤1 安装ADT插件。启动Eclipse,在菜单栏中依次选择Help→InstallNewSoftware……→Add之后,弹出Add Repository提示框,在提示框的Name栏填写"Android-ADT-Plugin"(或者任意能标识ADT插件的名称),Location栏里填写"https://dl-ssl.google.com/android/eclipse/",单击OK按钮,如图1-5所示。
图 1-5 安装ADT插件
安装完成后重新启动Eclipse。
步骤2 配置ADT和SDK。
ADT插件安装好后,需要在Eclipse中正确配置SDK才能使用。步骤如下:
启动Eclipse,在菜单栏中依次选择Wi ndow→Preferences→Android→Browse,选择SDK路径,然后依次单击Apply→OK,如图1-6所示。
图 1-6 在Eclipse中配置SDK
2.Eclipse调试框架层
Android框架层的设计十分精妙,如果只是阅读源码,很难掌握。Eclipse为我们提供了调试框架层源码的功能,大大简化了源码的阅读。在Eclipse中调试框架层源码,需要遵循以下步骤:
步骤1 复制配置文件。
Android源代码中提供了Eclipse Java项目的配置文件,位于Android源码根目录下的development/ide/eclipse/.classpath路径下,我们将该文件复制到Android源码的根目录中。笔者机器的根目录为~/android/jellybean。
步骤2 新建Java项目。
在新建界面(New Java Project)的项目名(Project name)中填入"jellybean",项目位置(Location)选择Android源码根目录,如图1-7所示。
图 1-7 新建Java项目
注意 一定要新建Java项目,而不是Android项目。如果新建Android项目,ADT将根据Android项目的结构生成新的目录,这将直接破坏Android源代码。
项目建成后,在Package Explorer视图中显示项目的包结构,如图1-8所示。
图 1-8 项目包结构
步骤3 运行模拟器。
要调试Android源码,需要运行模拟器或者真机。本节讲解如何在源码环境下运行模拟器,真机中不需要这些步骤。在终端中进入源码根目录,运行以下命令启动模拟器:
.build/envsetup.sh
lunch 1
1emulator
执行后出现模拟器界面。模拟器启动后,在Eclipse中切换到DDMS视图,就可以看到模拟器中运行的进程号及其端口号,如图1-9所示。
图 1-9 DDMS界面
步骤4 如果要调试某个进程,需要首先在该进程对应的源码中加入断点。
以联系人应用为例,首先在需要调试的源码中加入断点,然后在DDMS视图中选中联系人对应的进程即com.android.contacts(鼠标单击即为选中),并记下其端口号(8612),如图1-10所示。
图 1-10 选中联系人进程
然后在Eclipse主菜单中依次选择Run-Debug Configurations→Remote Java Application,在弹出的Debug Configurations窗口中设置Name和Port。Name可以用jellybean-contacts, Port填入contacts的端口8612。
然后依次单击Apply→Debug,进入调试页面。
注意 如果出现"Failed to connect to remote VM"错误提示,说明端口被占用,需要在DDMS中“杀死”要调试的进程后重新运行该程序,然后再选中该程序。