在 Android Studio 中配置源码路径

  我们使用 Android Studio 开发 Android App 时,有时候可能需要断点调试一下 Android Framework 层的代码。有两种方法可以在 Android Studio 中配置 Android Framework 层的源码。

方法一:通过 Project Structure 进行配置

配置步骤如下:

  1. File -> Project Structure,将弹出如下窗口:
在 Android Studio 中配置源码路径_第1张图片
  1. 点击窗口左侧的 SDKs
  2. 选择对应的 Android SDK 版本
  3. 点击 Sourcepath
  4. 点击最右侧的 ‘+’,添加对应的源码路径,然后保存即可。

  注意:如果无法按照方法一进行配置(比如,打开的 Project Structure 设置界面没有相关的设置项),可以使用下面的方法二。

方法二:修改 Android Studio 的 jdk.table.xml 配置文件

  此文件位于 C:\Users\test\.AndroidStudio3.2\config\options 目录。其中 test 是你的电脑的用户名,.AndroidStudio3.2 是您使用的对应 Android Studio 版本的配置文件夹。所以您在修改时,请选择正确的路径。

  此文件的大致内容如下:

...
<jdk version="2">
  <name value="Android API 26 Platform" />
  <type value="Android SDK" />
  ...
  <additional jdk="1.8" sdk="android-26" />
jdk>
<jdk version="2">
  <name value="Android API 27 Platform" />
  <type value="Android SDK" />
  ...
  <additional jdk="1.8" sdk="android-27" />
jdk>
<jdk version="2">
  <name value="Android API 28 Platform" />
  <type value="Android SDK" />
  <version value="java version "1.8.0_152-release"" />
  <homePath value="D:\Android\sdk" />
  <roots>
    ...
    <sourcePath>
      <root type="composite">
        <root url="file://D:/Android/sdk/sources/android-28" type="simple" />
      root>
    sourcePath>
  roots>
  <additional jdk="1.8" sdk="android-28" />
jdk>
...

  按照上面文件列出的在 sourcePath 元素下添加你下载的 Android Framework 层源码存放的地址:

    <sourcePath>
      <root type="composite">
        <root url="file://D:/Android/sdk/sources/android-28" type="simple" />
      root>
    sourcePath>

  在这个文件中会为不同的 Android SDK 版本分别配置源码路径,所以你需要在正确的 Android SDK 版本元素下进行配置。例如您的 App 正在使用 Android SDK 28,所以需要在 Android API 28 Platform 下进行配置。

  注意:修改完文件并保存后,需要重启一下 Android Studio,才会生效。

注意事项(以上两种方法都适用):

  • 填写(或选择)路径时需要注意。例如,View.java 的存放路径为 ...\core\java\android\view\View.java,那么你填写路径是应该为 file://.../core/java。因为 View.java 的 Package 为 android.view,所以填写的路径到 android/view/View.java 的上一级目录即可。
  • 我们还可以填写(或选择)多个路径,会优先从前面的路径中查找源码。

  对 Android 手机厂商的软件工程师来说,这个配置非常有用。我们可以将源码路径替换为与我们正在调试机型相对应的 Android Framework 层的源码。这样我们在调试 Android Framework 层的代码时会很方便,从而提高开发效率。

你可能感兴趣的:(02_Android,学习)