多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
1.2.2 Eclipse的使用 笔者一般使用Source Insight来查看Native代码,而Android推荐的集成开发工具Eclipse却既能查看Java代码和Native代码,也能调试系统核心进程。 1. 导入Android Framework Java源码 注意,这一步必须编译完整个Android源码才可以实施,步骤如下: 1) 将Android源码目录/development/ide/eclipse/.classpath复制到Android源码根目录。 2) 打开Android源码根目录下的.classpath文件。该文件是供Eclipse使用的,其中保存的是源码目录中各个模块的路径。 由于我们只关心Framework相关的模块,因此可以把一些不是Framework的目录从该文件中注释掉。同时,去掉不必要的模块也可加快Android源码导入速度。图1-3所示为该文件的部分内容。 :-: ![](http://img.blog.csdn.net/20140302160100468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-3 .classpath文件内容示意 然后,请读者单击Eclipse菜单栏New->Java Project,弹出如图1-4所示的对话框。设置Location为Android 4.2源码所在路径。 :-: ![](http://img.blog.csdn.net/20140302160116000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-4 导入Android源码示意图 由于Android 4.2源码文件较多,导入过程会持续较长一段时间。 * * * * * **提示**: 1. 导入源码前一定要取消Eclipse的自动编译选项(通过菜单栏Project→Build Project Automatically设置)。另外,源码导入完毕后,读者千万不要清理(clean)这个工程。清理会删除之前源码编译所生成的文件,导致后续又得重新编译Android系统了。 2. 笔者在本书的共享资源中提供了一个已经配置好的.classpath文件,请读者下载并使用它。 * * * * * 2. 导入Android Native代码 本节介绍如何在Eclipse中导入Android Native代码,其步骤如下所示: - 导入Android Framework中的Java文件后,首先切换到C/C++视图(通过单击菜单栏Window→Open Perspective→选择C/C++)。 - 单击菜单栏New→C/C++,然后选择Convert to a C/C++ project。如图1-5所示: :-: ![](http://img.blog.csdn.net/20140302160139671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-5 转换成C++工程示意 按照图1-5操作之后,之前的Java工程就被转成了C++工程。不过读者仍需要完成以下几个步骤。 1. 通过Properties→C/C++ General→Paths and symbols,打开该工程的路径和符号设置对话。如图1-6所示。 :-: ![](http://img.blog.csdn.net/20140302160156421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-6 路径和符号设置 2. 在图1-6上边的框中选择Includes页面,然后点击下方框中的Import Settings,然后选择4.2源码/development/ide/eclipse/android-include-paths.xml以导入路径配置。 3. 同上,再选择图1-6中的Symbols页面,然后通过下方框中的Import Settings以导入4.2源码/development/ide/eclipse/android-symbols.xml文件。 以上配置好路径和符号文件后,读者可进一步通过图1-6上框中的Source Location页面选择此次需要导入的C++文件。这一步如图1-7所示。 :-: ![](http://img.blog.csdn.net/20140302160210093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-7 过滤C++文件 通过图1-7中Add Folder选项,读者可以选择哪些目录下的C++文件被过滤掉。笔者目前仅导入了frameworks目录下的Native代码。 当所有文件都导入完毕后,读者通过右击C++工程,然后选择Index→Rebuild来重新生成Native代码的索引。 至此,通过上述方法就能导入Android中的Native代码了。 3. 调试SystemServer 调试SystemServer的步骤如下: 1) 首先编译Android源码工程。编译过程中会有很多警告。如果有错误,大部分原因是.classpath文件将不需要的模块包含了进来。读者可根据Eclipse的提示做相应处理。笔者配置的几台机器基本都是一次配置就成功了。 2) 在Android源码工程上单击右键,依次单击Debug As→Debug Configurations,弹出如图1-8所示的对话框,然后从左边找到Remote Java Application一栏。 :-: ![](http://img.blog.csdn.net/20140302160227578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-8 Debug配置框示意图 3) 单击图1-8中黑框中的新建按钮,然后按图1-9中的黑框中的内容来设置该对话框。 :-: ![](http://img.blog.csdn.net/20140302160240109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSW5ub3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 图1-9 Remote Java Application配置示意图 由图1-9所示,需要选择Remote调试端口号为8600,Host类型为localhost。8600是SystemServer进程的调试端口号。Eclipse一旦连接到该端口,即可通过JDWP协议来调试SystemServer。 >[info] **提示**:读者也可阅读《深入理解Android:卷2》第1章来了解更多使用Eclipse的建议。