问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Android Studio应用构建与运行指南

创作时间:
作者:
@小白创作中心

Android Studio应用构建与运行指南

引用
1
来源
1.
https://android-docs.cn/studio/run

本文将详细介绍如何在Android Studio中构建和运行应用,包括基本构建和运行、监视构建过程、高级构建和运行功能(如应用更改、实时编辑等)以及如何更改构建变体和运行/调试配置。

要查看您的应用在设备上的外观和行为,您需要构建并运行它。Android Studio 设置新项目,以便您只需点击几下即可将应用部署到虚拟设备或物理设备。
此概述重点介绍如何使用 Android Studio 构建和运行应用以进行测试和调试。有关如何使用 Android Studio 构建应用以将其发布给用户的更多信息,请参阅为用户构建发布版应用。有关使用或不使用 Android Studio 管理和自定义构建的更详细的信息,请参阅配置构建。

基本构建和运行

要构建和运行您的应用,请按照以下步骤操作
2. 在工具栏中,从运行配置菜单中选择您的应用。
4.
在目标设备菜单中,选择要运行应用的设备。

如果您没有配置任何设备,则需要创建一个 Android 虚拟设备以使用Android 模拟器,或者连接物理设备。
6.
点击运行

如果您尝试将项目启动到与之关联有错误或警告的设备,Android Studio 会发出警告。图标和样式更改区分了错误(导致配置错误的设备选择)和警告(可能会导致意外行为但仍可运行的设备选择)。
注意:Android Studio 包含针对 Android 11 或更高版本增量更改的部署优化。如果您在增量更改之间手动清除应用数据,则某些更改可能会在未经警告的情况下被丢弃。这可能导致您的应用运行过时的代码。如果您需要在部署之间清除应用数据,请在“运行/调试”配置中选中“始终使用包管理器安装”选项。这将绕过这些部署优化,并确保每次运行应用时都部署最新版本的应用代码。

监视构建过程

要查看有关构建过程的详细信息,请选择查看 > 工具窗口 > 构建或点击工具窗口栏中的构建
构建工具窗口显示 Gradle 为构建应用而执行的任务,如图 1 所示。
图 1.Android Studio 中的构建工具窗口。
2. 同步选项卡:显示 Gradle 为与您的项目文件同步而执行的任务。与构建输出选项卡类似,如果您遇到同步错误,请选择树中的元素以获取有关错误的更多信息。还显示下载影响的摘要,以确定依赖项下载是否对您的构建产生负面影响。
4. 构建输出选项卡:以树的形式显示 Gradle 执行的任务,其中每个节点表示构建阶段或一组任务依赖项。如果您收到构建时或编译时错误,请检查树并选择一个元素以读取错误输出,如图 2 所示。
图 2.检查构建输出选项卡以获取错误消息。
6. 构建分析器选项卡:提供有关构建的构建性能分析信息。有关更多信息,请参阅使用构建分析器排查构建性能问题。
8. 重新启动:再次执行上次构建操作。如果您上次运行构建 > 生成选定模块,它将构建当前模块。如果您上次运行构建 > 生成项目,它将为项目中的所有模块生成中间构建文件。
10. 过滤器:过滤掉成功完成的警告、任务或两者。这可以使查找输出中的问题变得更容易。
如果您的构建变体使用产品变种,Gradle 还会调用任务来构建这些产品变种。要查看所有可用构建任务的列表,请点击查看 > 工具窗口 > Gradle或点击工具窗口栏中的Gradle

如果在构建过程中发生错误,Gradle 可能会推荐命令行选项来帮助您解决问题,例如
--stacktrace

--debug
。要将命令行选项与您的构建过程一起使用
2. 打开设置首选项对话框

  • 在 Windows 或 Linux 上,从菜单栏中选择文件 > 设置
  • 在 macOS 上,从菜单栏中选择Android Studio > 首选项
  1. 导航到构建、执行、部署 > 编译器
  2. 命令行选项旁边的文本字段中,输入您的命令行选项。
  3. 点击确定以保存并退出。
    下次尝试构建应用时,Gradle 将应用这些命令行选项。

高级构建和运行功能

在 Android Studio 中构建和运行应用的默认方法应该足以测试简单的应用。但是,您可以将这些构建和运行功能用于更高级的用例

使用“应用更改”增量部署

在 Android Studio 3.5 及更高版本中,“应用更改”允许您将代码和资源更改推送到正在运行的应用,而无需重新启动应用,并且在某些情况下,无需重新启动当前活动。这种灵活性有助于您控制在想要部署和测试小幅增量更改时重新启动应用的程度,同时保留设备的当前状态。
“应用更改”使用Android JVMTI 实现中支持的功能,这些功能在运行 Android 8.0(API 级别 26)或更高版本的设备上受支持。要详细了解“应用更改”的工作原理,请参阅Android Studio 项目 Marble:“应用更改”。

要求

只有在满足以下条件时,才能使用“应用更改”操作

  • 您使用调试构建变体构建应用的 APK。
  • 您将应用部署到运行 Android 8.0(API 级别 26)或更高版本的目标设备或模拟器。

使用“应用更改”

当您想要将更改部署到兼容设备时,请使用以下选项
应用更改并重新启动活动
:尝试通过重新启动活动来应用您的资源和代码更改,但不会重新启动应用。通常,当您修改了方法主体中的代码或修改了现有资源时,可以使用此选项。
您也可以通过按Control+Alt+F10(在 macOS 上为Control+Command+Shift+R)来执行此操作。
应用代码更改
:尝试仅应用代码更改,而无需重新启动任何内容。通常,当您修改了方法主体中的代码但未修改任何资源时,可以使用此选项。如果您同时修改了代码和资源,请改为使用应用更改并重新启动活动
您也可以通过按Control+F10(在 macOS 上为Control+Command+R)来执行此操作。
运行
:部署所有更改并重新启动应用。当您所做的更改无法使用任何“应用更改”选项应用时,请使用此选项。要详细了解需要应用重新启动的更改类型,请参阅“应用更改”的限制部分。

为“应用更改”启用运行回退

当您点击应用更改并重新启动活动应用代码更改时,Android Studio 会构建一个新的 APK 并确定是否可以应用更改。如果无法应用更改并且会导致“应用更改”失败,Android Studio 会提示您运行
应用以代替。
如果您不希望每次发生这种情况时都收到提示,则可以配置 Android Studio 在无法应用更改时自动重新运行应用。要启用此行为,请按照以下步骤操作
2.
打开设置首选项对话框

  • 在 Windows 或 Linux 上,从菜单中选择文件 > 设置
  • 在 macOS 上,从菜单中选择Android Studio > 首选项
  1. 导航到构建、执行、部署 > 部署
  2. 选中复选框以启用“应用更改”操作的自动运行回退。
  3. 点击确定
    注意:某些类型的更改不会导致“应用更改”失败,但仍需要您手动重新启动应用才能看到这些更改。例如,如果您对活动的
    onCreate()
    方法进行了更改,则这些更改仅在活动重新启动后才会生效,因此您必须重新启动应用才能看到这些更改。

平台相关的更改

“应用更改”的某些功能取决于特定版本的 Android 平台。要应用这些类型的更改,您的应用必须部署到运行该版本 Android(或更高版本)的设备。例如,添加方法需要 Android 11 或更高版本。

“应用更改”的限制

“应用更改”旨在加快应用部署过程。但是,在使用时存在一些限制。
需要应用重新启动的代码更改
某些代码和资源更改在应用重新启动之前无法应用,包括以下内容

  • 添加或删除字段
  • 删除方法
  • 更改方法签名
  • 更改方法或类的修饰符
  • 更改类继承
  • 更改枚举中的值
  • 添加或删除资源
  • 更改应用清单
  • 更改原生库(SO 文件)
    库和插件
    某些库和插件会自动对应用的清单文件或清单中引用的资源进行更改。这些自动更新可能会以以下方式干扰“应用更改”
  • 如果库或插件对应用的清单进行了更改,则无法使用“应用更改”。您必须重新启动应用才能看到更改。
  • 如果库或插件对应用的资源文件进行了更改,则无法使用应用代码更改
    。您必须使用应用更改并重新启动活动
    (或重新启动应用)才能看到更改。
    为避免这些限制,请禁用调试构建变体的所有自动更新。
    例如,Firebase Crashlytics在每次构建期间都会使用唯一的构建 ID 更新应用程序资源,这会阻止您使用应用代码更改
    ,并要求您重新启动应用程序的活动才能查看更改。禁用此行为以在您的调试构建中将应用代码更改与 Crashlytics 结合使用。
    直接引用已安装 APK 中内容的代码
    如果您的代码直接引用了设备上安装的应用程序 APK 中的内容,则在点击应用代码更改
    后,该代码可能会导致崩溃或行为异常。出现此行为是因为当您点击应用代码更改时,设备上的底层 APK 会在安装过程中被替换。在这些情况下,您可以点击应用更改并重新启动活动
    运行
    而不是。
    如果您在使用应用更改时遇到任何其他问题,请提交错误报告。

实时编辑

实时编辑是 Android Studio 中的一项实验性功能,允许您实时更新模拟器和物理设备上的可组合项。此功能最大限度地减少了编写和构建应用程序之间的上下文切换,让您能够更长时间地专注于编写代码而不会被打断。
详细了解实时编辑

更改构建变体

默认情况下,当您点击运行
时,Android Studio 会构建应用程序的调试版本,该版本仅供开发期间使用。
要更改 Android Studio 使用的构建变体,请执行以下操作之一

  • 在菜单中选择构建>选择构建变体
  • 在菜单中选择查看>工具窗口>构建变体
  • 点击工具窗口栏上的构建变体选项卡。
    对于没有原生/C++ 代码的项目,构建变体面板有两列:模块活动构建变体。模块的活动构建变体值决定了 IDE 部署到连接设备的构建变体,并且在编辑器中可见。
    图 9.对于没有原生/C++ 代码的项目,构建变体面板有两列。
    要切换变体,请点击模块的活动构建变体单元格,然后从列表中选择所需的变体。
    对于具有原生/C++ 代码的项目,构建变体面板有三列
  • 模块
  • 活动构建变体
  • 活动 ABI
    模块的活动构建变体值决定了 IDE 部署到设备的构建变体,并且在编辑器中可见。对于原生模块,活动 ABI值决定了编辑器使用的ABI,但不会影响部署的内容。

    图 10.对于具有原生/C++ 代码的项目,构建变体面板会添加活动 ABI列。
    要更改构建变体或 ABI,请点击活动构建变体活动 ABI列的单元格,然后从列表中选择所需的变体或 ABI。更改选择后,IDE 会自动同步您的项目。更改应用程序或库模块的任一列都会将更改应用于所有依赖行。
    默认情况下,新项目会设置两个构建变体:调试变体和发布变体。您需要构建发布变体才能准备您的应用程序以供公开发布。要使用不同的功能或设备要求定义应用程序的其他变体,您可以定义其他构建变体。

Android Studio 构建变体对话框中的冲突

在 Android Studio 的构建变体对话框中,您可能会看到错误消息,指示构建变体之间存在冲突,例如以下内容
此错误并不表示 Gradle 存在构建问题。它表示 Android Studio IDE 无法解析所选模块的变体之间的符号。
例如,如果您有一个模块
M1
依赖于模块
M2
的变体
v1
,但
M2
在 IDE 中选择了变体
v2
,则 IDE 中存在未解析的符号。假设
M1
依赖于仅在
v1
中可用的类;当选择
v2
时,IDE 不知道该类。因此,它无法解析类名并在
M1
模块的代码中显示错误。
这些错误消息出现是因为 IDE 无法同时加载多个变体的代码。但是,就应用程序的构建而言,此对话框中选择的变体没有任何影响,因为 Gradle 会根据 Gradle 构建配方中指定的源代码构建您的应用程序,而不是根据 IDE 中当前加载的内容。

更改运行/调试配置

首次运行应用程序时,Android Studio 会使用默认的运行配置。运行配置指定是从 APK 部署应用程序还是从Android App Bundle部署应用程序,以及要运行的模块、要部署的包、要启动的活动、目标设备、模拟器设置、Logcat 选项等。
默认的运行/调试配置会构建一个 APK,启动默认的项目活动,并使用选择部署目标对话框进行目标设备选择。如果默认设置不适合您的项目或模块,您可以自定义运行/调试配置或在项目、默认和模块级别创建新的运行/调试配置。
要编辑运行/调试配置,请选择运行 > 编辑配置。有关更多信息,请参阅创建和编辑运行/调试配置。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号