本节书摘来华章计算机出版社《深入理解Android:卷III A》一书中的第1章,第1.3节,作者:张大伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。1
1.3在IDE中导入Android源代码
尽管Android的源代码并不依赖IDE进行编译,但是使用IDE进行代码的浏览、查找与跳转无疑是最方便的选择。本书所涉及的Android源代码主要是由Java语言以及C/C++语言编写的。对Java代码来说,Eclipse是最佳选择,而对C/C++代码来说,本书推荐使用速度更快的SourceInsight。
1.3.1将Android源代码导入Eclipse
首先需要将development/ide/eclipse/.classpath文件复制到源代码的根目录下。这个文件将在导入代码时告诉Eclipse在源代码的哪些文件夹中保存了Java代码,其内容片段如下:
[.classpath]
......
<classpathentry kind="src" path="packages/apps/Browser/src"/>
......
<classpathentry kind="src" path="frameworks/base/core/java"/>
<classpathentry kind="src" path="out/target/common/obj/....../core/java"/>
<classpathentry kind="src" path="out/target/common/R"/>
......
这个xml文件由一系列classpathentry组成,每一个classpathentry指定了一个包含Java代码的文件夹,而Eclipse会从这些文件夹中查找并导入Java代码。这其中一批文件夹的路径以out文件夹打头,它们就是在Android编译过程中所产生的代码。倘若在没有进行过完整编译的情况下进行代码导入就会因为这些代码的丢失而使得某些引用无法解析。另外,倘若读者对某些文件夹下的代码不感兴趣,可以在进行代码导入前将它们从.classpath中注释掉以避免花费过长的导入时间以及过多的内存占用。就本书的内容而言,建议只保留framework相关的文件夹(注意,out文件夹下的framework相关文件夹也需要保留)。
修改完.classpath文件之后,便可以通过Eclipse下的菜单“File→New→Java Project”所打开的New Java Project对话框进行Android源代码的导入,如图1-3所示。在这个对话框中为项目取一个名字,然后将Location设置为存放Android源代码的根目录,然后点击Finish按钮就可以开始导入代码。这个过程会比较慢,读者需要耐心等待。
在导入完成之后,Android将会以一个Java工程的形式出现在Eclipse的Package Explorer中,接下来就可以在Eclipse中浏览代码了。
图1-3在Eclipse中导入Android源代码
熟悉一些常用的快捷键可以极大地提高代码的阅读效率。其中最常用的有:
CTRL+SHIFT+T组合键,跳转到一个类或接口的定义。
CTRL+O组合键,跳转到当前文件中所定义的一个成员(内部类、成员变量或方法等)。
CTRL+SHIFT+R组合键,跳转到一个特定的代码文件。
CTRL+SHIFT+G组合键,查找选中的元素在工作区中的引用位置。
另外,可以在另一个Android程序的项目中将导入的Android源代码设置为一个依赖项目,这样就可以在APP代码中实现到Android Framework代码的无缝跳转。
1.3.2将Android源代码导入SourceInsight
相对于Eclipse,SourceInsight更适合用来阅读Android中的C/C++代码。读者可以从其官方网站上下载并获得30天的免费试用权。
将Android源代码导入SourceInsight非常简单。点击主菜单上的“Project→New Project”,在弹出的对话框中为新项目取一个名字然后点击OK按钮,如图1-4所示。
图1-4新建SourceInsight项目
在弹出的对话框的Project Source Directory中设置好Android源代码的根目录,点击OK按钮,如图1-5所示。
图 1-5设置Android源代码的根目录
在新对话框中选中希望导入的代码所在的文件夹,然后点击Add(仅导入选中文件夹下的代码)或Add Tree(导入选中文件夹及其子文件夹下的代码)按钮,如图1-6所示,之后点击Close按钮结束代码的导入。
图1-6在SourceInsight中选择导入的代码路径
接下来就可以方便地在SourceInsight中阅读代码了。
在SourceInsight中追加导入或移除代码文件十分方便。只要点击主菜单上的“Project→Add and Remove Project Files”就可以打开如图1-6所示的对话框,然后进行代码的追加导入或删除。