创建和编辑运行/调试配置

当您运行、调试或测试代码时,Android Studio 会使用运行/调试配置来确定如何执行该操作。通常,最初创建的配置足以运行或调试应用。但是,您可以根据需要修改配置、创建新配置以及修改配置模板,以适应本页所述的开发流程。

如需了解更多信息,另请参阅以下 IntelliJ 文档

关于运行/调试配置

运行/调试配置指定了应用安装、启动和测试选项等详细信息。您可以定义一次性使用的配置,也可以保存该配置以供日后使用。保存后,您可以从工具栏内的 Select Run/Debug Configuration 下拉列表中选择该配置。Android Studio 将配置作为项目的一部分进行保存。

最初创建的运行/调试配置

首次创建项目时,Android Studio 会基于 Android App 模板为主要 activity 创建一个运行/调试配置。要运行或调试项目,您必须始终定义至少一个运行/调试配置。因此,我们建议您不要删除最初创建的配置。

项目范围和版本控制

运行/调试配置和模板更改仅适用于当前项目。您可以通过版本控制系统共享运行/调试配置(但不能共享模板)。如需了解如何共享配置的详细信息,请参阅命名和共享配置选项

打开“运行/调试配置”对话框

要打开“运行/调试配置”对话框,请选择 Run > Edit Configurations。此时将出现 Run/Debug Configurations 对话框,如图 1 所示。

图 1. Run/Debug Configurations 对话框

对话框的左侧面板按模板类型对您定义的配置进行分组,并允许您在底部编辑配置模板。您可以在右侧面板中编辑选定的配置。调整对话框大小以查看任何隐藏的项目。

在此对话框中,您可以:

创建新的运行/调试配置

您可以从 Run/Debug Configurations 对话框、Project 窗口或代码编辑器中定义新的运行/调试配置。新配置必须基于配置模板

“运行/调试配置”对话框显示您的运行/调试配置和可用的配置模板。您可以直接从模板开始新配置,也可以从另一个配置的副本开始。然后,您可以根据需要更改字段值。

或者,您可以右键单击 Project 窗口中的某项,以自动创建专门针对该项的配置。例如,如果您想运行某个特定的 activity,可以右键单击该 activity 的 Java 文件并选择 Run。根据该项的不同,Android Studio 会使用 Android AppAndroid Instrumented TestsJUnit 配置模板来创建配置。

在代码编辑器中,您可以轻松地为类或方法创建测试和运行/调试配置,然后执行它。

当您在 Run/Debug Configurations 对话框之外创建配置时,除非您保存该配置,否则它是临时的。默认情况下,在 Android Studio 开始删除它们之前,项目中最多可以有五个临时配置。要更改此默认设置,请打开 Android Studio 设置,并更改 Advanced Settings > Run/Debug > Temporary configurations limit。如需了解有关临时配置的更多信息,请参阅创建并保存临时运行/调试配置

基于模板启动配置

要基于模板定义运行/调试配置,请按以下步骤操作:

  1. 打开“运行/调试配置”对话框.
  2. 点击 Add New Configuration
  3. 选择一个配置模板
  4. Name 字段中输入名称。
  5. 根据需要修改配置。
  6. 请务必纠正对话框底部显示的任何错误。

  7. 点击 ApplyOK

从副本启动配置

要从另一个配置的副本开始定义运行/调试配置,请按以下步骤操作:

  1. 打开“运行/调试配置”对话框.
  2. 在左侧窗格中选择现有的运行/调试配置。
  3. 点击 Copy Configuration
  4. Name 字段中输入名称。
  5. 根据需要修改配置。
  6. 请务必纠正对话框底部显示的任何错误。

  7. 点击 ApplyOK

为项目中的项定义配置

Android Studio 可以为 Project 窗口中显示的某些项创建运行/调试配置。配置基于配置模板,如下所示:

要为项目中的项创建运行/调试配置,请按以下步骤操作:

  1. Android 视图或 Project 视图中打开项目。
  2. Project 窗口中,右键单击可测试项并选择 Run filenameDebug filename。Android Studio 会创建一个临时的运行/调试配置并启动应用。
  3. 打开工具栏中的 Select Run/Debug Configuration 下拉列表。
  4. 从您要保存的配置旁边的选项中选择 Save Configuration

    图 2. 保存配置

注意:如果您右键单击并运行或调试同一项(但不是 activity),Android Studio 会创建一个新配置。

为类或方法定义测试配置

Android Studio 允许您为类或方法定义测试运行配置,然后执行它。例如,如果您创建了一个新类,则可以为其创建并运行测试。如果测试通过,您可以运行项目中其余部分的测试,以确保您的新代码不会破坏其他地方的内容。

Android Studio 会使用 Android Instrumented TestsAndroid JUnit 模板,具体取决于您的源集。对于本地单元测试,您可以选择运行代码覆盖率

要为 Java 代码中的类或方法创建运行/调试配置,请按以下步骤操作:

  1. Android 视图或 Project 视图中打开项目。
  2. 在代码编辑器中打开一个 Java 文件。
  3. 在代码中选择一个类或方法,然后按 Control+Shift+T (Command+Shift+T)。
  4. 从出现的菜单中选择 Create New Test
  5. Create Test 对话框中,可以根据需要更改或设置值,然后点击 OK
  6. Choose Destination Directory 对话框中,选择您希望 Android Studio 将测试放置在项目中的位置。您可以按目录结构指定位置,也可以选择相邻的类。
  7. 点击 **OK**。

    新测试将出现在 Project 窗口中对应的测试源集中。

  8. 要运行测试,请执行以下操作之一:
    • Project 窗口中,右键单击该测试并选择 RunDebug
    • 在代码编辑器中,右键单击测试文件中的类定义或方法名称,然后选择 RunDebug 以测试类中的所有方法。
  9. 打开工具栏中的 Select Run/Debug Configuration 下拉列表。
  10. 从您要保存的配置旁边的选项中选择 Save Configuration

    图 3. 保存配置

使用保存的配置运行或调试应用

如果您已保存运行/调试配置,则可以在运行或调试应用之前选择它。

要使用保存的运行/调试配置,请按以下步骤操作:

  1. 工具栏内的 Select Run/Debug Configuration 下拉列表中选择该运行/调试配置。
  2. 下拉列表位于 Run Debug 的左侧;例如:

  3. 选择 Run > RunRun > Debug
  4. 或者,点击 Run Debug

编辑运行/调试配置

要编辑运行/调试配置,请按以下步骤操作:

  1. 打开“运行/调试配置”对话框.
  2. 在左侧窗格中选择一个配置。
  3. 根据需要修改配置。
  4. 请务必纠正对话框底部显示的任何错误。

  5. 点击 ApplyOK

编辑运行/调试配置模板

您可以编辑 Android Studio 提供的配置模板,以适合您的开发过程。当您编辑模板时,它不会影响使用该模板的现有配置。因此,举例来说,如果您需要创建多个某种类型的配置,可以编辑该模板,完成后再将其改回原样。

虽然您不能创建新模板,但可以创建类似于模板的配置以供使用。您可以复制一个配置并编辑副本以创建新配置。

要编辑模板,请按以下步骤操作:

  1. 打开“运行/调试配置”对话框.
  2. 点击 Edit configuration templates...
  3. 选择一个配置模板。
  4. 根据需要修改配置。
  5. 请务必纠正对话框底部显示的任何错误。

  6. 点击 ApplyOK

对配置进行排序和分组

Run/Debug Configurations 对话框中,您可以对配置进行排序以便快速找到它们。您可以按字母顺序对文件夹中的项目进行排序,并创建新文件夹对配置进行分组。

要按字母顺序对配置进行排序,请按以下步骤操作:

  1. 打开“运行/调试配置”对话框.
  2. 选择一个包含配置的文件夹。
  3. 点击 Sort Configurations
  4. 点击 OK 关闭对话框。

要将配置分组到文件夹中,请按以下步骤操作:

  1. 打开“运行/调试配置”对话框.
  2. 选择一个包含配置的文件夹。
  3. 点击 Create New Folder
  4. Folder Name 字段中输入名称。
  5. 点击 Apply 保存名称。
  • 将同一模板类别的项拖入文件夹中。
  • 通过拖动位置,对同一模板类别中的文件夹和配置进行排序。
  • 点击 OK 关闭对话框。
  • 定义启动前操作

    您可以指定在应用运行/调试配置之前执行的任务。任务将按照它们在列表中出现的顺序执行。

    注意:定义启动前任务是一项高级功能。我们建议不要使用此功能,而是将任何准备逻辑作为任务放在 build.gradle 文件中,这样当您从命令行构建时就会执行这些逻辑。

    要创建任务列表,请按以下步骤操作:

    1. Run/Debug Configurations 对话框底部的 Before launch 下(您可能需要向下滚动),点击 Add 并选择任务类型。如果打开了对话框,请填写字段并点击 OK
    2. 根据需要添加更多任务。
    3. 要调整任务顺序,请拖动任务,或者选择一个任务并点击 Up Down 在列表中向上或向下移动任务。
    4. 如果您想在应用运行/调试配置设置之前显示这些设置,请选择 Show this page

      此选项默认未勾选。

    5. 如果您想在运行或调试应用时激活 RunDebug 工具窗口,请选择 Active tool window

      此选项默认已勾选。

    要从列表中删除任务,请按以下步骤操作:

    1. 选择一个任务。
    2. 点击 Remove

    要编辑任务,请按以下步骤操作:

    1. 选择一个任务。
    2. 点击 Edit
    3. 在打开的对话框中编辑任务设置,然后点击 OK

    下表列出了您可以添加的可用任务。

    任务 描述
    运行外部工具 (Run External tool) 运行 Android Studio 之外的应用程序。在 External Tools 对话框中,选择一个或多个您想运行的应用程序,然后点击 OK。如果该应用程序尚未在 Android Studio 中定义,请在 Create Tools 对话框中添加其定义。如需更多信息,请参阅配置第三方工具外部工具
    运行另一个配置 (Run Another Configuration) 执行现有的运行/调试配置之一。在 Choose Configuration to Execute 对话框中,选择一个要执行的配置,然后点击 OK
    编译 (Make) 编译项目或模块。如果运行/调试配置指定了特定模块,Android Studio 会执行 Make Module 命令;如果没有指定模块,则执行 Make Project 命令
    编译项目 (Make Project) 编译项目。Android Studio 执行 Make Project 命令
    编译,不进行错误检查 (Make, no error check) 此选项与 Make 相同,不同之处在于无论编译结果如何,Android Studio 都会执行运行/调试配置。
    构建产物 (Build Artifacts) Android Studio 中不支持。
    运行 Gradle 任务 (Run Gradle task) 运行 Gradle 任务。在打开的对话框中指定详细信息,然后点击 OK。如需了解更多信息,请参阅 Gradle
    支持 Gradle 的 Make (Gradle-aware Make) 编译项目并运行 Gradle。
    App Engine Gradle 构建器 (App Engine Gradle builder) App Engine Gradle 构建器任务会同步项目,然后构建模块。

    配置模板

    Android Studio 提供了配置模板来帮助您快速入门。以下各节描述了适用于 Android Studio 开发 Android 的模板:

    注意: Android Studio 2.1.x 及更低版本具有“原生应用程序”(Native Application) 模板,但更高版本没有。如果项目中有原生应用程序模板,Android Studio 在加载项目时会将其转换为 Android App。Convert Project 对话框会引导您完成整个过程。

    不受支持的模板

    以下不受支持的模板来自 IntelliJ IDEA,并非专门用于 Android Studio 的 Android 开发。有关使用这些模板的信息,请按照链接访问 IntelliJ IDEA 文档。

    常用配置选项

    NameAllow parallel runStore as project file 选项在多个配置模板中通用。要了解有关它们的更多信息,请参阅通用设置

    Android Studio 将共享运行/调试配置存储在 project_directory/.idea/runConfigurations/ 文件夹下的各个 XML 文件中。如需了解更多信息,请参阅 IntelliJ 项目文档中的基于目录的格式

    Android 应用 (Android App)

    通过使用基于此模板的配置,您可以在虚拟设备或硬件设备上运行或调试 Android 应用和 activity。

    General 标签页

    General 标签页中,您可以指定安装、启动和部署选项。Miscellaneous 标签页也包含安装选项。

    字段 描述
    Module 选择一个应用此配置的模块
    Installation Options: Deploy

    选择一个选项

    • Default APK - 为您当前选择的变体构建并部署 APK。
    • APK from app bundle - 从 Android App Bundle 构建并部署应用。也就是说,Android Studio 首先将应用项目转换为包含所有应用编译代码和资源的 app bundle。然后,Android Studio 从该 app bundle 中仅生成部署应用到连接设备所需的 APK。由于从 app bundle 部署会延长总构建时间,通常应在测试打算上传到 Google Play 的 app bundle 时使用此选项。
    • Custom Artifact - Android Studio 中不支持。
    • Nothing - 不要在设备上安装 APK。例如,如果您倾向于手动安装 APK,则不需要 Android Studio 来安装它。
    Installation Options: Deploy as instant app 如果您的应用支持即时体验(也就是说,您在创建新项目时添加了对即时应用的支持,或者您创建了一个或多个启用了即时的功能模块),您可以通过勾选 Deploy as instant app 旁的复选框来选择部署这些启用了即时的模块。
    Installation Options: Features to deploy 如果应用包含功能模块,请勾选您要在部署应用时包含的每个功能旁边的复选框。仅当应用包含功能模块时,您才会看到此选项。

    注意:如果您想测试按需下载和安装功能模块,必须在发布 app bundle 后并使用 Play 管理中心内部测试轨道进行测试。要了解更多信息,请阅读将 app bundle 上传到 Play 管理中心

    Installation Options: Install Flags 输入您想使用的任何 adb pm install 选项。格式化选项的方法与在命令行上相同,但不要带路径。以下是一些示例:

    -i foo.bar.baz -r /path/to/apk

    -d -r

    默认:无选项。

    Launch Options: Launch

    选择一个选项

    • Nothing - 当您选择 RunDebug 时不启动任何内容。但是,如果您的应用已经在运行且您选择 Debug,Android Studio 会将调试器连接到应用进程。
    • Default Activity - 启动您在清单中标记为启动的 activity。例如:
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    • Specified Activity - 启动模块中特定的应用 activity。选择后,下方会出现 Activity 字段,您可以在其中输入要启动的 activity 名称,或者点击 More 从列表中选择一个 activity。
    • URL - 启动与应用清单中的 intent 过滤器匹配的 URL。选择后,下方会出现 URL 字段,您可以在其中输入 URL。

      您必须填写此字段才能启动 Android 即时应用 (Android Instant App)。您也可以使用它来测试 Android App Links

    Launch Options: Launch Flags 输入您想使用的任何 adb am start 选项。格式化选项的方法与在命令行上相同,但不要带 intent。例如:

    -W

    如果您将 Launch 值选择为 Nothing,则此选项不会出现。

    默认:无选项。

    Deployment Target Options: Target

    选择一个选项

    • Open Select Deployment Target Dialog - 打开 Select Deployment Target 对话框以选择虚拟或硬件设备。
    • USB Device - 使用通过 USB 端口连接到开发计算机的硬件设备。如果有多台设备,会出现对话框供您选择。
    • Emulator - 使用虚拟设备。在配置中,您可以选择一个 AVD;否则,它只会使用列表中的第一个 AVD。

    Deployment Target Options: Use same device for future launches

    默认情况下未勾选此选项,因此每次运行应用时都会显示 Select Deployment 对话框供您选择设备。当您勾选此选项然后运行应用时,会显示 Select Deployment 对话框供您选择设备。此后,每次运行应用时,它都会在您选择的设备上启动,而不显示 Select Deployment 对话框。要在不同设备上运行应用,要么取消勾选 Use same device for future launches,要么通过 Run > Stop appStop 停止应用,然后再启动。届时将显示 Select Deployment 对话框供您选择设备。
    Before Launch 请参阅定义启动前操作

    Miscellaneous 标签页

    Miscellaneous 标签页中,您可以指定 logcat、安装、启动和部署选项。General 标签页也包含安装选项。

    字段 描述
    Logcat: Show logcat automatically 勾选此选项后,每次使用此配置成功部署并启动应用时,都会打开 Logcat 窗口。默认:已勾选。
    Logcat: Clear log before launch 如果您希望 Android Studio 在启动应用前从日志文件中移除之前会话的数据,请选择此选项。默认:未勾选。
    Installation Options: Skip installation if APK has not changed. 勾选后,如果 Android Studio 检测到 APK 未更改,则不会重新部署。如果您希望 Android Studio 即使 APK 未更改也强制安装,请取消勾选此选项。默认:已勾选。
    Installation Options: Force stop running application before launching activity

    如果勾选,当 Android Studio 检测到 APK 未更改而无需重新安装时,它会强制停止应用,以便应用从默认启动 activity 启动。如果取消勾选此选项,Android Studio 不会强制停止应用。

    此选项与控制是否安装 APK 的上一个选项配合使用。对于 Installation Options 中的这两个字段,除非您明确希望每次都强制安装,否则请保持默认设置。

    在某些情况下,您可能想取消勾选此选项。例如,如果您正在编写输入法编辑器 (IME),强制停止应用会使其不再作为当前键盘被选中,这可能不是您想要的。

    默认:已勾选。

    Before Launch 请参阅定义启动前操作

    Debugger 标签页

    Debugger 标签页中指定调试选项。

    对于 C 和 C++ 代码,Android Studio 使用 LLDB 调试器。除了正常的 Android Studio UI 之外,调试器窗口还有一个 LLDB 标签页,允许您在调试期间输入 LLDB 命令。您可以输入 Android Studio 用来在调试器 UI 中显示信息的相同命令,也可以执行其他操作。

    对于 C 和 C++ 项目,您可以在 Debugger 标签页中添加符号目录以及 LLDB 启动和连接后命令。为此,您可以使用类似于以下的按钮:

    • Add - 添加目录或命令。
    • Remove - 选择一个目录或命令,然后点击此按钮删除该项。
    • Up - 选择一个目录或命令,然后点击此按钮在列表中向上移动该项。
    • Down - 选择一个目录或命令,然后点击此按钮在列表中向下移动该项。

    有关 Android Studio 调试的更多信息,请参阅调试应用

    字段 描述
    Debug type

    选择以下选项之一:

    • Java only - 仅调试 Java 代码。
    • Detect Automatically - 让 Android Studio 为您的项目选择最佳调试类型。
    • Native Only - 仅调试原生 C 或 C++ 代码。
    • Dual (Java + Native) - 在两个独立的调试会话中调试 Java 和原生代码。

    建议选择 Detect Automatically 选项,因为它会为您的项目选择正确的调试类型。

    Symbol Directories

    如果您想添加符号文件,以便为调试器提供在 Android Studio 之外生成的 C 或 C++ 信息,可以在此处添加一个或多个目录。Android Studio 会优先使用这些目录中的任何文件,而不是由 Android Plugin for Gradle 生成的文件。调试器会按顺序从上到下搜索目录,直到找到所需内容。它会递归搜索目录中的文件。为了优化列表并节省时间,请将最常用的目录放在列表顶部。

    如果您指定了树结构中位置较高的目录,搜索所有子目录的时间可能会更长。如果您添加了一个非常具体的目录,搜索时间则较短。您需要在速度和找到调试所需文件之间找到适当的平衡。例如,如果您有一个目录包含不同 Android 二进制接口 (ABI) 的子目录,您可以选择为特定 ABI 或所有 ABI 添加目录。虽然搜索上层目录可能需要更长时间,但如果您决定在不同设备上调试,这样也更不容易出错。

    请注意,您不需要添加包含 Gradle 符号文件的目录,因为调试器会自动使用它们。

    LLDB Startup Commands

    添加您希望在调试器连接到进程之前执行的 LLDB 命令。例如,您可以定义环境设置,如下列命令所示:

    settings set target.max-memory-read-size 2048

    LLDB 会按从上到下的顺序执行命令。

    LLDB Post Attach Commands

    添加您希望在调试器连接到进程之后立即执行的 LLDB 命令。例如:

    process handle SIGPIPE -n true -p true -s false

    LLDB 会按从上到下的顺序执行命令。

    Host working directory 指定 LLDB 工作目录。
    Logging: Target channels

    指定 LLDB 日志选项。Android Studio 根据团队经验设置默认选项——这样既不会太慢,又包含排查问题所需的信息。Android Studio 错误报告通常需要此日志。默认值为:

    lldb process:gdb-remote packets

    您可以更改默认设置以收集更多信息。例如,以下日志选项收集有关特定 platform 的信息:

    lldb process platform:gdb-remote packets

    如需完整的日志命令列表,请在 Android Studio 的 LLDB shell 窗口中输入 log list 命令。

    Android Studio 将设备日志放在以下位置,其中 ApplicationId 是构建的 APK 清单中使用的唯一应用 ID,用于在设备和 Google Play 商店中识别您的应用:

    /data/data/ApplicationId/lldb/log

    或者,如果多个用户访问一台设备,它会将日志放在以下位置,其中 AndroidUserId 是设备上用户的唯一标识符:

    /data/user/AndroidUserId/ApplicationId/lldb/log

    有关使用 LLDB 进行远程调试的信息,请参阅远程调试

    Before Launch 请参阅定义启动前操作

    Profiling 标签页

    当设备运行 Android 7.1 或更低版本时,必须勾选 Enable advanced profiling 选项才能在 Android Profiler 中启用某些功能。

    Android 测试 (Android Tests)

    应使用的测试模板取决于您的源集。Android Instrumented Tests 模板用于插桩测试。Android JUnit 模板用于本地单元测试。

    注意:如果您使用 Firebase Test Lab 在各种设备上进行测试,可以使用 Android JUnit 模板来定义您的插桩测试。如需更多信息,请参阅使用 Firebase Test Lab 运行测试

    以下标签页说明涵盖了 Android Instrumented test 模板的标签页和字段。有关 Android JUnit test 模板的标签页和字段的信息,请参阅 IntelliJ Run/Debug Configuration: JUnit 页面。

    General 标签页

    General 标签页中,您可以指定测试位置、检测运行器 (instrumentation runner)、adb shell 和部署选项。

    字段 描述
    Module 选择一个应用此配置的模块
    测试

    在此区域,指定要运行的测试位置:

    • All in module - 启动选定模块中的所有测试。
    • All in package - 启动在 Package 字段中指定的软件包中的所有测试。输入名称,或者点击 More 从对话框中选择软件包。
    • Class - 启动在 Class 字段中指定的类中的测试。输入名称,或者点击 More 从对话框中选择类。
    • Method - 启动测试方法。在 Class 字段中,指定包含该方法的类。在 Method 字段中,指定该方法。输入名称,或者点击 More 从对话框中选择类或方法。
    特定的检测运行器 (Specific instrumentation runner)(可选) 输入 检测运行器 (instrumentation runner) 的位置;点击 More 使用对话框。build.gradle 文件指定了检测运行器的位置;此值会覆盖它。默认通常是来自 AndroidX TestAndroidJUnitRunner 类。
    额外选项

    输入您想使用的任何 adb am instrument 选项。不要输入组件。例如,如果您正在使用来自 AndroidX Test AndroidJUnitRunner,可以使用此字段将其他选项传递给运行器,例如 -e size small

    默认:无选项

    Deployment Target Options: Target

    选择一个选项

    • Open Select Deployment Target Dialog - 打开 Select Deployment Target 对话框以选择虚拟或硬件设备。
    • USB Device - 使用通过 USB 端口连接到开发计算机的硬件设备。如果有多台设备,会出现对话框供您选择。
    • Emulator - 使用虚拟设备。在配置中,您可以选择一个 AVD;否则,它只会使用列表中的第一个 AVD。
    • Firebase Test Lab Device Matrix - 请参阅使用 Firebase Test Lab 运行测试
    Deployment Target Options: Use same device for future launches 如果您希望以后自动使用通过 Select Deployment Target 对话框选择的设备,请选择此选项。如果设备不可用,您将收到一个对话框。默认:未勾选。
    Before Launch 请参阅定义启动前操作

    Miscellaneous 标签页

    Miscellaneous 标签页包含 logcat 和安装选项。

    字段 描述
    Logcat: Clear log before launch 如果您希望 Android Studio 在启动应用前从日志文件中移除之前会话的数据,请选择此选项。默认:未勾选。
    Installation Options: Skip installation if APK has not changed 勾选后,如果 Android Studio 检测到 APK 未更改,则不会重新部署。如果您希望 Android Studio 即使 APK 未更改也强制安装,请取消勾选此选项。默认:已勾选。
    Installation Options: Force stop running application before launching activity

    如果勾选,当 Android Studio 检测到 APK 未更改而无需重新安装时,它会强制停止应用,以便应用从默认启动 activity 启动。如果取消勾选此选项,Android Studio 不会强制停止应用。

    此选项与控制是否安装 APK 的上一个选项配合使用。对于 Installation Options 中的这两个字段,除非您明确希望每次都强制安装,否则请保持默认设置。

    在某些情况下,您可能想取消勾选此选项。例如,如果您正在编写输入法编辑器 (IME),强制停止应用会使其不再作为当前键盘被选中,这可能不是您想要的。

    默认:已勾选。

    Before Launch 请参阅定义启动前操作

    Debugger 标签页

    Debugger 标签页中指定调试选项。

    对于 C 和 C++ 代码,Android Studio 使用 LLDB 调试器。除了正常的 Android Studio UI 之外,调试器窗口还有一个 LLDB 标签页,允许您在调试期间输入 LLDB 命令。您可以输入 Android Studio 用来在调试器 UI 中显示信息的相同命令,也可以执行其他操作。

    对于 C 和 C++ 项目,您可以在 Debugger 标签页中添加符号目录以及 LLDB 启动和连接后命令。为此,您可以使用类似于以下的按钮:

    • Add - 添加目录或命令。
    • Remove - 选择一个目录或命令,然后点击此按钮删除该项。
    • Up - 选择一个目录或命令,然后点击此按钮在列表中向上移动该项。
    • Down - 选择一个目录或命令,然后点击此按钮在列表中向下移动该项。

    有关 Android Studio 调试的更多信息,请参阅调试应用

    字段 描述
    Debug type

    选择以下选项之一:

    • Java only - 仅调试 Java 代码。
    • Detect Automatically - 让 Android Studio 为您的项目选择最佳调试类型。
    • Native Only - 仅调试原生 C 或 C++ 代码。
    • Dual (Java + Native) - 在两个独立的调试会话中调试 Java 和原生代码。

    建议选择 Detect Automatically 选项,因为它会为您的项目选择正确的调试类型。

    Symbol Directories

    如果您想添加符号文件,以便为调试器提供在 Android Studio 之外生成的 C 或 C++ 信息,可以在此处添加一个或多个目录。Android Studio 会优先使用这些目录中的任何文件,而不是由 Android Plugin for Gradle 生成的文件。调试器会按顺序从上到下搜索目录,直到找到所需内容。它会递归搜索目录中的文件。为了优化列表并节省时间,请将最常用的目录放在列表顶部。

    如果您指定了树结构中位置较高的目录,搜索所有子目录的时间可能会更长。如果您添加了一个非常具体的目录,搜索时间则较短。您需要在速度和找到调试所需文件之间找到适当的平衡。例如,如果您有一个目录包含不同 Android 二进制接口 (ABI) 的子目录,您可以选择为特定 ABI 或所有 ABI 添加目录。虽然搜索上层目录可能需要更长时间,但如果您决定在不同设备上调试,这样也更不容易出错。

    请注意,您不需要添加包含 Gradle 符号文件的目录,因为调试器会自动使用它们。

    LLDB Startup Commands

    添加您希望在调试器连接到进程之前执行的 LLDB 命令。例如,您可以定义环境设置,如下列命令所示:

    settings set target.max-memory-read-size 2048

    LLDB 会按从上到下的顺序执行命令。

    LLDB Post Attach Commands

    添加您希望在调试器连接到进程之后立即执行的 LLDB 命令。例如:

    process handle SIGPIPE -n true -p true -s false

    LLDB 会按从上到下的顺序执行命令。

    Host working directory 指定 LLDB 工作目录。
    Logging: Target channels

    指定 LLDB 日志选项。Android Studio 根据团队经验设置默认选项——这样既不会太慢,又包含排查问题所需的信息。Android Studio 错误报告通常需要此日志。默认值为:

    lldb process:gdb-remote packets

    您可以更改默认设置以收集更多信息。例如,以下日志选项收集有关特定 platform 的信息:

    lldb process platform:gdb-remote packets

    如需完整的日志命令列表,请在 Android Studio 的 LLDB shell 窗口中输入 log list 命令。

    Android Studio 将设备日志放在以下位置,其中 ApplicationId 是构建的 APK 清单中使用的唯一应用 ID,用于在设备和 Google Play 商店中识别您的应用:

    /data/data/ApplicationId/lldb/log

    或者,如果多个用户访问一台设备,它会将日志放在以下位置,其中 AndroidUserId 是设备上用户的唯一标识符:

    /data/user/AndroidUserId/ApplicationId/lldb/log

    有关使用 LLDB 进行远程调试的信息,请参阅远程调试

    Before Launch 请参阅定义启动前操作

    App Engine DevAppServer

    此运行/调试配置适用于 Google Cloud Platform。当您执行这些步骤并将项目同步到 build.gradle 文件时,Android Studio 会为您创建一个 App Engine DevAppServer 配置。

    请注意,IntelliJ IDEA 的 App Engine Server 模板是一个不同的模板,在 Android Studio 中不可用。

    字段 描述
    仅限单实例 (Single instance only) 如果您想确保当前仅执行该运行/调试配置的一个实例,请选择此选项。它不允许同时多次运行同一配置。默认:已勾选。
    Module 选择一个应用此配置的模块
    与 build.gradle 配置同步 (Synchronize with build.gradle configuration) 如果您添加了 App Engine 模块并同步到 build.gradle 文件,App Engine DevAppServer 配置字段将为您自动填写(推荐)。选择 File > Sync Project with Gradle Files 也会同步项目。默认:已勾选。
    App Engine SDK 输入本地机器上 Java 版 Google App Engine SDK 的路径。点击 ... 从对话框中选择。
    War Path 输入您在本地开发服务器上部署的应用的 Web 应用程序归档 (WAR) 目录路径。点击 ... 从对话框中选择。
    VM Args

    指定要传递给启动 DevAppServer 的 VM 的命令行选项。指定选项时:

    • 使用空格分隔不同的选项。
    • 对于包含空格的选项,请将空格括在引号 (" ") 中。
    • 如果选项包含引号,请在引号前添加反斜杠 (\")。

    有关 VM 选项的更多信息,请参阅适用于您的 J2SE 版本的文档,例如 java JDK 7java JDK 8

    默认:无选项

    Server Address 输入用于服务器的主机地址。您可能需要提供该地址,以便从网络上的另一台计算机访问开发服务器。地址 0.0.0.0 允许 localhost 访问和主机名访问。默认:localhost。
    Server Port 输入用于服务器的端口号。默认:8080。
    禁用检查 App Engine SDK 更新 (Disable Check for App Engine SDK Updates) 如果提供,开发服务器将不会联系 App Engine 来检查 SDK 是否有新版本可用。默认情况下,服务器在启动时会检查新版本,如果有新版本可用,则会打印消息。
    Before Launch 请参阅定义启动前操作

    Wear OS 运行/调试配置

    Wear OS Complication、Tile 和 Watch Face 模板让您可以在虚拟或硬件设备上运行或调试 Wear OS 应用。大多数模板配置选项与 Android App 选项相同。以下是更具 Wear OS 运行/调试配置特色的选项:

    • 对于所有 Wear 运行/调试配置,您必须选择特定的复杂功能数据源、卡片 (tile) 或表盘(取决于模板)来应用配置。通常,这些实体中的每一个都对应代码中的一个类。
    • 对于 Wear OS Complication 运行/调试配置,您必须选择要放置由复杂功能数据源提供的复杂功能数据的 Slot。您可以选择将其放置在表盘的顶部、右侧、底部、左侧或背景中。
    • 对于 Wear OS Complication 运行/调试配置,您还必须选择由复杂功能数据源提供的复杂功能数据的 Type。您可以选择的类型仅限于所选复杂功能数据源提供所选插槽支持的类型。如需了解复杂功能数据类型列表,请参阅类型和字段

    或者,您也可以从位于 surface 声明旁边的边栏图标运行这些 surface,如下图所示。如果发生错误(例如“设置卡片时出错”),请检查您是否已正确配置 surface,包括在清单中声明 surface

    Run button in the gutter next to a WatchFaceService class.
    图 1. 使用边栏图标直接运行 Wear OS surface。