Android Studio 的过往版本  

您所在的位置:网站首页 studio3 Android Studio 的过往版本  

Android Studio 的过往版本  

2023-01-06 02:52| 来源: 网络整理| 查看: 265

本页面列出了 Android Studio 之前的每个主要版本的新功能和改进。如需了解最新版本的新功能,请参阅当前的 Android Studio 版本说明。

如需了解与发布版本有关的最新资讯(包括每个预览版中的重要修正的列表),请参阅版本更新。如需了解 Android Gradle 插件中的新变化,请参阅其版本说明。

Android Gradle 插件和 Android Studio 兼容性

Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。下表列出了各个 Android Studio 版本所需的 Android Gradle 插件版本。

如果您的项目不受某个特定版本的 Android Studio 支持,您仍然可以使用旧版 Android Studio 打开和更新您的项目。 Android Studio 版本 所需插件版本 Flamingo | 2022.2.1 3.2-8.0 Electric Eel | 2022.1.1 3.2-7.4 Dolphin | 2021.3.1 3.2-7.3 Chipmunk | 2021.2.1 3.2-7.2 Bumblebee | 2021.1.1 3.2-7.1 Arctic Fox | 2020.3.1 3.1-7.0

如需了解 Android Gradle 插件的新变化,请参阅 Android Gradle 插件版本说明。

Android Studio Chipmunk | 2021.2.1 支持使用 Jetpack Compose 创建应用 动画预览支持 animatedVisibility

Android Studio Chipmunk 支持在动画预览中使用 animatedVisibility API。如需将动画预览与 animatedVisibility 搭配使用,请使用 Compose 版本 1.1.0 或更高版本。如需详细了解动画预览,请参阅动画。

支持从“库模块”部署预览对象

通过使用预览功能,您无需在实体设备上运行应用,即可在 Android Studio 中查看应用界面。在 Android Studio Chipmunk 中,您可以将特定 @Preview 从“库模块”部署到模拟器或实体设备。如需了解详情,请参阅部署预览对象。

支持对应用进行性能分析 在 Android 12 及更高版本上检测卡顿

对于使用 Android 12 或更高版本的设备,已捕获的跟踪记录会显示在 CPU 性能分析器中 Display 窗格下的 Janky frames 轨道中。

如需检测卡顿,请按以下步骤操作:

从开发模拟器或设备启动应用。

在 Android Studio 中,依次选择 View > Tool Windows > Profiler,或点击工具栏中的 Profile 图标

如果 Select Deployment Target 对话框显示提示,请选择要将您的应用部署到哪个设备以进行性能分析。如果您已通过 USB 连接设备但系统未列出该设备,请确保您已启用 USB 调试。

点击 CPU 时间轴上的任意位置以打开 CPU 性能分析器。

您应该会在 Display 下方看到 Janky frames 轨道。默认情况下,性能分析器只会将卡顿帧显示为有待调查的候选对象。在每个卡顿帧中,红色部分突出显示了相应帧超出其渲染截止时间的时长。 卡顿帧轨道的屏幕截图

发现卡顿帧后,点击该帧;可根据需要按 M 键调整缩放程度以聚焦到所选帧。相关事件将在以下主线程中突出显示:RenderThread 和 GPU completion。 性能分析器的屏幕截图,显示了卡顿帧和主线程

通过选中或取消选中 All Frames 和 Lifecycle 复选框,您可以根据需要查看所有帧或渲染时间的细分数据。 显示上述内容的性能分析器屏幕截图,但“All Frames”和“Lifecycle”复选框为已选中状态

如需了解详情,请参阅界面卡顿检测。

补丁版本

以下是 Android Studio Chipmunk 中的补丁版本列表。

Android Studio Chipmunk | 2021.2.1 补丁 2(2022 年 8 月)

本次要更新包含以下更新和 bug 修复:

Android 平台支持

借助 Android Studio Chipmunk 补丁 2 和 Android Gradle 7.2.2,您可以通过设置 compileSdk=33 针对 Android 13 API 进行编译。支持的最低 SDK 版本最高可为 32。在 Android Gradle 插件 7.3.0-beta05 之前,不支持 minSdk = 33。

已修复的问题 C++ 调试程序 问题 37119428 系统甚至会为调试 build 变体打包依赖项目中原生库的发布版本 设计工具 问题 232045613 按下 Ctrl+D 键或“show diff”按钮不显示 git diff Dexer (D8) 问题 235325369 记录每个脱糖库版本所需的编译器版本 Gradle 问题 188871862 使用 Import Alias 时 lint UnusedResources 出现假正例 导入/同步 问题 234353685 在新版本中,当存在多个产品变种 (flavour) 时发生 build 问题 缩减器 (R8) 问题 236875523 IntSwitch 中的 ArrayIndexOutOfBoundsException 问题 236618700 R8 3.1.7-dev 及更高版本对枚举进行不当优化,导致出现 NoSuchFieldError 问题 223424356 R8 导致在 Scala 库上出现 VerifyError 问题 232379893 Gradle 7.2.0 导致 APK build 错误 com.android.tools.r8.CompilationFailedException 问题 236615030 缩减器 R8 版本 3.2.60 中的 NPE 问题 236294139 [R8 3.3.57] 出现 NoClassDefFound 错误,因为接口已替换为具有更高 SDK 要求的抽象类 问题 231030461 使用 3.3.35 时 FieldAssignmentTracker 中出现 NullPointerException Android Studio Chipmunk | 2021.2.1 补丁 1(2022 年 5 月)

本次要更新包含以下 bug 修复:

已修复的问题 Dexer (D8) 问题 218298666 版本 8 之前的 Art/Dalvik 虚拟机不支持 JDK-8272564 的修复 IntelliJ 问题 225751091 文件观察器在 Ubuntu 20.04 上未能启动 问题 206465485 缺少 MBP 15" 2018 触控栏菜单。 运行 问题 232134751 即使应用模块可用,“Devices”选项也不显示且无法运行该应用。 缩减器 (R8) 问题 228791247 为什么 R8 不向后移植默认接口方法,但 D8 会这么做? 问题 218400336 循环引用:com.android.tools.r8.internal.R10:转换为原始类型时出现非预期类型:OBJECT Android Studio Bumblebee | 2021.1.1

Android Studio Bumblebee 是一个主要版本,包含以下功能和改进。

默认启用 Compose 互动式预览

从 Android Studio Bumblebee 开始,互动式预览功能默认处于启用状态。借助互动式预览,您可以与预览互动,就像在设备上操作一样。互动式预览处于沙盒环境中,并与其他预览相互隔离,您可以在其中点击元素并在预览中输入用户输入。通过这种模式,您可以快速测试可组合项的不同状态和手势,例如勾选或清空复选框。

预览互动模式直接在 Android Studio 中运行,并未运行模拟器,因此存在一些限制:

无法访问网络。 无法访问文件。 有些 Context API 不一定完全可用。

用户是在 Android Studio 中与预览互动

动画形式的矢量可绘制对象 (AVD) 预览

动画形式的矢量可绘制对象工具使您能够预览动画形式的可绘制资源。此工具可帮助您在 Android Studio 中预览 、 和 资源,使您能够更轻松地优化自定义动画。

用户在 Android Studio 中预览和播放动画

更新了设计工具的设备选择器

为了简化针对各种 Android 设备设计应用的流程,我们在各种设计工具窗口(例如布局编辑器和布局验证)中更新了设备选择器,其中包含的参考设备能反映每种设备外形规格的热门尺寸。从手机到平板电脑,从 Wear 设备到 Android TV,您现在可以更轻松地在最能代表真实设备大小的屏幕上预览、验证或修改布局。

包含设备及其尺寸和屏幕密度的设备选择器(按类别分组)

KMP 测试执行

您可以从 Android Studio Bumblebee 针对 Kotlin Multiplatform (KMP) 项目运行测试。

为了确保测试从 Android Studio 成功运行,您必须满足以下所有要求:

AGP 7.0.0-alpha08 或更高版本 Gradle 6.8.2 或更高版本。 Kotlin 插件 1.4.30 或更高版本 非传递 R 类默认处于开启状态

非传递 R 类现在默认处于开启状态。可以将非传递 R 类与 Android Gradle 插件一起使用,以便为具有多个模块的应用构建更快的 build。这样做有助于确保每个模块的 R 类仅包含对其自身资源的引用,而不会从其依赖项中提取引用,从而帮助防止资源重复。这样可以获得较新的 build,以及避免编译的相应优势。

如需使用此功能,请依次转到 Refactor > Migrate to Non-transitive R Classes...。

Apple Silicon 支持更新

对于在 Apple Silicon (arm64) 硬件上使用 macOS 的用户,自去年以来,Android Studio Arctic Fox 和 Android 模拟器已支持这种新架构。不过,在此版本中,我们已将 Android SDK 平台工具 v32.0.0(包含 adb 和 fastboot)和构建工具 v32.1.0(包含 aapt)更新为通用二进制文件,这样 Android 开发者工具不再需要 Rosetta 二进制转译器既可运行。请参阅 SDK 平台工具版本说明。

布局检查器中的新功能 捕获布局层次结构快照

借助布局检查器,您现在可以保存正在运行应用的布局层次结构快照,以便轻松地与他人分享或日后查看。

快照会捕获您在使用布局检查器时通常会看到的数据,包括布局的详细 3D 渲染、视图的组件树、Compose 或混合布局,以及每个界面组件的详细属性。如需保存快照,请执行以下操作:

将您的应用部署到搭载 API 级别 23 或更高级别的设备中 依次选择 View > Tool Windows > Layout Inspector,打开布局检查器。 布局检查器应该会自动连接到您的应用进程。如果未自动连接,请从下拉菜单中选择相应应用进程。 如果要捕获快照,请点击布局检查器工具栏中的 Export snapshot “导出”图标。 在出现的系统对话框中,指定快照的名称和保存位置。请务必以 *.li 扩展名保存文件。

如需加载布局检查器快照,您需要从主菜单栏中依次选择 File > Open,然后打开 *.li 文件。

Sunflower 示例应用的布局检查器快照

支持检查 Compose 语义

在 Compose 中,Semantics 以无障碍服务和测试框架可以理解的替代方式描述您的界面。在 Android Studio Bumblebee 中,您现在可以使用布局检查器检查 Compose 布局中的语义信息。

通过布局检查器显示的语义信息

选择 Compose 节点时,请使用 Attributes 窗口检查它是否直接声明语义信息以及/或者是否合并其子元素中的语义。如需快速识别哪些节点包含已声明或合并的语义,请在 Component Tree 窗口中选择 View options 下拉菜单,然后选择 Highlight Semantics Layers。这样只会突出显示树中包括语义的节点,您可以使用键盘在节点之间快速导航。

避免重启 Activity

将布局检查器连接到旧版 Android Studio 上正在运行的应用会导致应用的 Activity 重启。设置设备标记以检查应用布局时,必须这样。

在 Android Studio Bumblebee 中,您可以通过以下任一步骤提前设置此标记,从而避免在连接布局检查器时重启 Activity:

启用 Run Configuration 选项

从主菜单栏中依次选择 Run > Edit Configurations。此时将显示运行/调试配置对话框。 转到要使用的运行配置。 在 Layout Inspector options 部分,选中 Connect to Layout Inspector without restarting activity 旁边的复选框。 下次要使用布局检查器检查应用时,请使用运行配置。

从命令行设置此标记:

在连接到设备的计算机上打开终端窗口 使用以下命令为您的应用设置设备标记: adb shell settings put global debug_view_attributes_application_package 将您的应用部署到设备并连接布局检查器。Android Studio 会检查该标记是否已设置,并尽可能避免重启 Activity。 注意:在不使用布局检查器的情况下设置此设备标记可能会影响应用的性能,虽然通常并不明显。 文档布局检查器快照

您现在可以捕获应用布局层次结构的快照,以便保存、分享或日后检查。快照会捕获您在使用布局检查器时通常会看到的数据,包括布局的详细 3D 渲染、视图的组件树、Compose 或混合布局,以及每个界面组件的详细属性。检查正在运行的应用的布局时,点击布局检查器工具栏中的 Export snapshot 图标 “导出”图标,并以 *.li 扩展名的形式保存快照。然后,您可以通过以下方式加载布局检查器快照:从主菜单栏中依次选择 File > Open,然后打开 *.li 文件。快照会显示在编辑器窗口的标签页中,便于您轻松将其与正在运行的应用进行比较。

App Inspection 中的新功能

Android Studio Bumblebee 在 App Inspection 窗口中新增了一些工具和功能。您可以从主菜单栏中依次选择 View > Tool Windows > App Inspection,打开 App Inspector。

Network Inspector

Profilers 工具窗口中的网络性能分析器现已移至 App Inspection 工具窗口。如果您之前使用过网络性能分析器,则所有相同的功能和丰富的网络流量数据仍然可用。只需将您的应用部署到搭载 API 级别 26 及更高级别的设备上,然后依次打开 App Inspector > Network Inspector 标签页即可。

检查作业、警报和唤醒锁

现在,除了支持检查工作器外,您还可以使用后台任务检查器检查应用的作业、警报和唤醒锁。现在,每种类型的异步任务都会显示在检查器标签页的相应标题下,便于您轻松监控其状态和进度。与工作器类似,您可以在 Task Details 面板中选择相应作业、警报或唤醒锁,以检查其详细信息。

显示作业、警报和唤醒锁的后台任务检查器

注意:此功能已从能耗性能分析器中迁出。因此,现在您应该使用后台任务检查器检查应用的所有异步任务。

由于工作器在后台使用作业和唤醒锁,因此工作器调度的这些任务会显示为每个工作器的子级。请注意,您只能在图表模式下看到工作器。

无线调试

Android Studio Bumblebee 支持在搭载 Android 11 及更高版本的设备上使用无线调试功能。无需使用 USB 线或使用命令行管理 Android 调试桥 (adb) 连接,即可通过 Wi-Fi 从 Android Studio 配对和部署应用。如需使用此功能,请找到设备选择菜单中的 Pair devices using Wi-Fi 选项,并选择一个二维码或配对 PIN 码。然后,在 Android 11 及更高版本的设备上,在开发者选项下,找到无线调试屏幕,接着通过 Android Studio 初始化并与 adb 会话进行无线连接。如需详细了解无线调试设置,请参阅通过 Wi-Fi 连接到设备 (Android 11+)。

通过 Wi-Fi 与设备配对

统一 Gradle 测试运行程序

Android Gradle 插件 7.1.0 和 Android Studio Bumblebee 及更高版本使用 Gradle 自己的 Android 插桩测试运行程序实现来运行插桩测试。如果同样使用这个测试运行程序,那么无论您是使用 AGP 从命令行运行测试(例如在持续集成服务器上),还是从 Android Studio 运行测试,结果很可能是一致的。

Bumblebee 中的统一 Gradle 测试运行程序

以前版本的 Android Studio 使用 IntelliJ Android 插桩测试运行程序,而非 Gradle 的 Android 插桩测试运行程序。因此,如果您使用的不是最新版本的 Android Studio,可能会看到不同的测试结果(具体取决于您是从 Android Studio 运行测试,还是使用 Gradle 插件从命令行运行测试),例如在使用一个运行程序时测试结果为通过,而在使用另一个运行程序时则为失败。

以前版本的 Android Studio 中的独立测试运行程序

如果您已将插桩测试配置保存到项目中,它们将使用 Gradle 在您连接的设备上运行测试。您可以使用测试类或方法旁边的边线操作创建新的插桩测试配置,如下所示。

通过边线操作运行测试

运行插桩测试时,您可以通过检查 Test Matrix for Gradle 任务输出中的测试输出,来确认 Android Studio 使用的是不是 Gradle 测试运行程序。尽管我们在针对 Android Studio 的每个版本改进此功能,但仍存在一些已知问题。如果您遇到问题,请报告 bug。您还可以停用新的测试流水线,以还原到旧行为。

Android 模拟器现在默认直接在 Android Studio 中运行

默认情况下,Android 模拟器会直接在 Android Studio 中运行。这样,您就可以节省屏幕空间,使用热键在模拟器窗口和编辑器窗口之间快速导航,并在单个应用窗口中整理 IDE 和模拟器工作流。

在 Android Studio 的工具窗口中启动的模拟器。

当模拟器运行时,您将能够使用常见模拟器操作(如旋转),以及扩展控制选项(如导航播放)。如需在单独的窗口中运行模拟器,请依次转到 File > Settings > Tools > Emulator(在 macOS 设备中则依次转到 Android Studio > Preferences > Tools > Emulator),并取消选择 Launch in a tool window。

停用新的测试流水线

默认情况下,Android Studio Bumblebee 会使用 Gradle 运行其插桩测试。如果您遇到问题,可以按以下方法停用此行为:

依次选择 File > Settings > Build, Execution, Deployment > Testing(在 MacOS 设备上,则依次选择 Android Studio > Preferences > Build, Execution, Deployment > Testing)。 取消选中 Run Android instrumented testing using Gradle 旁边的方框,然后点击 OK。

您还可以通过执行以下操作之一来还原到之前的行为:

从命令行运行 Gradle 任务时,使用以下命令行参数: -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false 将以下参数添加到项目的 gradle.properties 文件中:android.experimental.androidTest.useUnifiedTestPlatform=false

为了帮助解决您可能遇到的问题,请报告 bug。

新的设备管理器

新的“设备管理器”窗口,其中突出显示了“pair device”菜单选项

设备管理器是 AVD 管理器的替代工具,可在 Android Studio 的欢迎屏幕上或在打开项目后找到。设备管理器引入了一些新功能,可让您更轻松地创建和管理所有本地测试设备,例如:

一种更灵活的界面,支持停靠在 Android Studio 中、悬浮起来或以单独的窗口显示,就像其他 Android Studio 工具窗口一样。这样,您就可以更轻松地访问设备,而不会妨碍 Android Studio 的其他窗口。 一个 Virtual 标签页,可让您创建、管理和部署虚拟设备,一目了然地查看每个设备的详细信息,也可以直接在“设备文件浏览器”中一键检查设备。 一个 Physical 标签页,可让您使用 adb Wifi 快速与新设备配对,并一目了然地查看每个实体设备的详细信息。此外,您只需点击按钮,即可使用设备文件浏览器快速检查每台设备的文件系统。

要打开新的设备管理器,请执行以下操作之一:

在 Android Studio 欢迎屏幕上,依次选择 More Actions > Virtual Device Manager。 注意:您目前只能通过欢迎屏幕创建和管理虚拟设备。 打开项目后,从主菜单栏中依次选择 View > Tool Windows > Device Manager。 界面卡顿检测

使用搭载 Android 11(API 级别 30)或更高版本的设备分析应用性能时,CPU 性能分析器现在会显示一组新的轨迹,描述了 Frame Lifecycle 下每个帧的阶段:Application、Wait for GPU、Composition 和 Frames on display。每个轨迹都通过帧编号标记帧,并用颜色标示矩形,便于您直观了解特定帧处在其生命周期的哪个阶段,并提供了可切换的辅助线,便于您与 Vsync 事件进行对比。您可以通过此数据了解应用中可能出现卡顿的位置,并调查根本原因。在 Analysis 面板中,现在有一个 Frames 标签页,可以方便地汇总所有帧的渲染信息。如需了解详情,请参阅界面卡顿检测。

可分析应用的性能分析支持

在对应用进行性能分析时,请务必使用与您的用户将安装的应用版本最相符的应用版本生成准确的数据。为此,您现在可以在应用清单中包含 属性,以对不可调试的应用进行性能分析,如以下代码所示。

“可分析”是 Android 10 中引入的清单配置,可用于 CPU 和内存性能分析任务。使用可分析标记代替可调试标记具有降低性能衡量开销的关键优势;不过,某些性能分析功能(例如 Event 时间轴、API 发起的 CPU 性能分析、堆转储或实时位置记录)不适用于可分析 build。如需了解详情,请参阅可分析应用。

收起调用堆栈帧

现在,在性能分析器工具窗口中检查调用堆栈示例记录时,您可以收起与调查无关的帧。调用堆栈有助于您了解已执行代码的哪个部分,以及调用该部分的原因。不过,Java/Kotlin 程序的调用堆栈通常不仅包含 Java/Kotlin 代码,还包含来自原生代码的帧,可能会对用户造成干扰。如需详细了解如何优化调用堆栈视图,请参阅检查调用堆栈帧。

补丁版本

以下是 Android Studio Bumblebee 中的补丁版本列表。

Android Studio Bumblebee | 2021.1.1 补丁 3(2022 年 4 月)

本次要更新包含以下 bug 修复:

Android Gradle 插件 R8 报告的重复类问题 build 变体 如果变体的版本名称是通过新的 onVariants API 设置的,versionNameSuffix 将无法正常运行 Compose 预览 修复了与性能和稳定性相关的 bug。 解决了使用“实时修改字面量”功能时偶尔发生的冻结问题。 Network Inspector Bumblebee 更新后,新的 Network Inspector 发生崩溃 在最新版本的 Android Studio 上连接调试程序时,我总是遇到这个错误。 TrackedHttpURLConnection.getHeaderField 会崩溃并出现 NullPointerException 如需了解详情,请参阅 Android Studio Bumblebee 补丁 3 博文。

Android Studio Bumblebee | 2021.1.1 补丁 2(2022 年 2 月)

本更新包含以下 bug 修复:

C++ build ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") 不得为 null 代码编辑器 Android Studio Live Templates 中的 bug:className() 表达式无法解析类名称 D8/R8 java.lang.NoSuchMethodError:无静态方法 $jacocoInit Android 测试覆盖率因 Mockito 错误而损坏 需要针对 API 31 上的已损坏 CAS 实现提供解决方法 不支持密封类 在 Chrome 中启用水平类合并时出现 NullPointerException 合并虚拟方法后出现 AbstractMethodError init 类 out-type 不正确,无法验证堆栈帧 Dex 输入使用未定义的寄存器 版本分支中的 StringBuilderOptimizerAnalysisTest 失败了 R8 中的非确定性问题 部署 运行设备所有者应用项目失败,并显示“无法终止现有进程”这一错误消息 设计工具 启用非传递 R 类时,Compose 预览无法从其他模块查找资源 Android Studio 在构建时卡顿。 嵌入式模拟器 其他性能和稳定性改进。 导入/同步 启动 Bumblebee 时出现 IDE 错误:输出列表 build 文件不适用于 IdeBuildTasksAndOutputInformationImp 中的输出类型 Apk IntelliJ 从 Mac OS X Monterey Dock 启动时,未确定环境变量的来源 Jetpack (androidx) > 导航 升级了 SafeArgs,使其在最新的稳定 AGP 上构建 Tools Windows 无法运行 Android 设备管理器 BumbleBee 中的 Network Inspector 无法以可读格式显示 API 响应 如需了解详情,请参阅 Android Studio Bumblebee 补丁 2 博文。

Android Studio Bumblebee | 2021.1.1 补丁 1(2022 年 2 月)

本次要更新包含以下 bug 修复:

模拟器 升级到 Bumblebee 后,无法连接到嵌入式模拟器 (Mac M1) IntelliJ 从 Mac OS X Monterey Dock 启动时,未确定环境变量的来源

如需了解详情,请参阅 Android Studio Bumblebee 补丁 1 博文。

Android Studio Arctic Fox | 2020.3.1

Android Studio Arctic Fox 是一个主要版本,包含以下功能和改进。

Android Studio Arctic Fox | 2020.3.1 补丁 4(2021 年 12 月)

本次要更新包含以下 bug 修复:

Android Gradle 插件 为 VariantOutput.verison 设置 Provider 可能会因为配置缓存而中断 在签名以供发布时未更新 gradeResValues.xml D8/R8 在由 R8 压缩的 build 中,在类的构造函数中抛出 java.lang.ClassCastException dex 合并期间无法达到的类型调整 java.lang.VerifyError:验证程序验证失败,因为无法从 Reference.java.lang.Object 类型的对象访问实例字段 lint 停用 MediaCapabilities lint 检查 启用 shrinkResources 后,Lint 会报告假正例[可实例化]错误 模板 Import Module 选项呈灰显状态

如需了解详情,请参阅 2020.3.1 补丁程序 4 博文。

Android Studio Arctic Fox | 2020.3.1 补丁程序 3(2021 年 10 月)

本次要更新包含以下 bug 修复:

Android Gradle 插件 lint 独立插件无法正确处理 gradleApi() 依赖项 在 Studio 之外运行 Gradle build 时触发了 JPS build 如果某个项目中的 KSP 和 Kapt 都包含可生成源代码的处理器,则在同时启用 KSP 和 Kapt 时会中断 BundleLibraryClassesInputs C++ 编辑器 在后台进行长时间的 JniReferencesSearch 计算时界面会卡顿 Database Inspector 允许保存数据库 如果路径中含有空格,就无法使用 App Inspection/Database Inspector导出数据 Dexer (D8) 在为子类创建子类时,Java lambda 会导致出现意外行为 缩减器 (R8) r8 缩减大小过程中会出现 Cannot constrain type 错误 执行 R8 3.0.69(来自 AGP 7.0.2)和 3.0.72 时会出现问题

如需了解详情,请参阅 2020.3.1 补丁程序 3 博文。

Android Studio Arctic Fox | 2020.3.1 补丁程序 2(2021 年 9 月)

本次要更新包含以下 bug 修复:

Android Gradle 插件 在从 AS Arctic Fox Canary 7 升级到 Canary 8 的过程中,Gradle 同步启动了 10 次 脱糖和可重现的 build C++ build 如果使用了 tasks.whenTaskAdded 闭包,Android Gradle 插件 7.0.0 不会在 APK 中包含 jniLibs 修改 MergedManifestRefreshListener 在 Arctic Fox 中陷入无限循环 lint “针对 lint 检查的 lint 检查”未运行 缩减器 (R8) 在 AGP7 中使用 R8 运行 build 时抛出 ClassNotFoundException

如需了解详情,请参阅 2020.3.1 补丁程序 2 博文。

Android Studio Arctic Fox | 2020.3.1 补丁程序 1(2021 年 8 月)

此更新修复了以下问题:

Android Gradle 插件 TypedefRemover 使用 ASM5,与需要使用 ASM7 的 JDK 11 源代码不兼容 无法在 AGP 7.0.0 中通过 Groovy DSL 使用部分新的 DSL 代码块 AGP 7.0.0 稳定版在执行到 libraryVariants.all{applicationId} 时会抛出 ExternalApiUsageException C++ 调试程序 在 Mac M1 上启动原生调试会话时,系统会出现 AS Arctic Fox 错误“Found broken LLDB configuration” Resource Manager (Windows) New > Vector Asset > picture.svg:生成的 xml 文件中的“减号”字符 (-) 无效 缩减器 (R8) BridgeHoisting 中的 NPE 升级到 7.0.0 后,R8 会崩溃,并显示“Unexpected usage left in method after inline”错误

如需了解详情,请参阅 2020.3.1 补丁程序 1 博文。

新版本编号系统 更新了 Android Studio 的版本编号系统

我们更改了 Android Studio 的版本编号系统,使其与 IntelliJ IDEA(Android Studio 所基于的 IDE)更一致。

在以前的编号系统中,此版本应为 Android Studio 4.3 或 4.3.0.1。采用全新的编号系统后,现在版本为 Android Studio - Arctic Fox | 2020.3.1 或 2020.3.1。

Intellij 版本 旧名称 旧 - 编号系统 新 - 年份系统 新版本名称 2020.3 4.3 4.3.0 2020.3.1 Arctic Fox | 2020.3.1

今后,Android Studio 版本号的确定方式如下:

...

前两组数字表示特定 Android Studio 版本所基于的 IntellIj 平台版本。对于此版本,即为 2020.3。 第三组数字表示 Studio 的主要版本,从 1 开始,每个主要版本递增 1。 第四组数字表示 Studio 的次要版本/补丁程序版本,从 1 开始,每个次要版本递增 1。 此外,我们还将为每个主要版本提供版本名称,分别以 A 到 Z 的动物来命名。此版本名为 Arctic Fox。 更新了 Android Gradle 插件的版本编号系统

我们更新了 Android Gradle 插件 (AGP) 的版本编号系统,以使其更接近底层 Gradle 构建工具。因此,AGP 7.0 是继 AGP 4.2 之后的下一个版本。

如需了解详情,请参阅 AGP 版本说明中的版本编号变更。

Android Gradle 插件 7.0.0

最新版本的 Android Gradle 插件包含许多更新。如需了解详情,请阅读完整的 Android Gradle 插件版本说明。

单元测试现在使用 Gradle 测试运行程序

为提高测试作业的总体一致性,现在 Android Studio 在默认情况下使用 Gradle 运行所有单元测试。在很多情况下,此更改不会影响 IDE 中的测试工作流。

例如,当您点击上下文菜单中的 Run 命令(在您右键点击测试类时可见)或对应的边线操作 时,Android Studio 将默认使用 Gradle 运行配置来运行单元测试。

用于运行测试的上下文菜单

但是,Android Studio 不再识别现有的 Android JUnit 运行配置,因此您应将可能另存为项目文件的 Android JUnit 运行配置迁移到 Gradle 运行配置。

如需创建 Gradle 测试配置,请按照创建新的运行/调试配置中的说明选择 Gradle 模板。创建新配置后,配置会显示在 Gradle 部分的 Edit Configurations 对话框中:

在 Android Studio 中编辑测试配置

如果您要检查不再识别的 Android JUnit 配置,可以执行以下两种操作之一:

在文本编辑器中打开手动保存的配置。这些文件的位置由用户指定,但文件通常显示在 /.idea/runConfigurations/ 中。

在 /.idea/workspace.xml 中查找临时配置,并在 节点下查找。例如:

… 新增了后台任务检查器

您可以使用新增的后台任务检查器直观呈现、监控和调试应用的后台工作器。如需开始使用,请将您的应用部署到搭载 WorkManager 库 2.5.0 或更高版本的设备中,然后从菜单栏中依次选择 View > Tool Windows > App Inspection。

后台任务检查器中的活跃工作器

点击工作器可查看更详细的信息。例如,可以查看工作器的说明、执行方式、工作器链的详细信息以及执行结果。

“Worker Details”标签页

还可以从表中选择一个工作器并点击工具栏上的 Show Graph View 图标 ,查看工作器链的直观呈现形式。然后,可以选择链中的任意工作器以查看其详细信息,如果某工作器当前已加入队列或正在运行,还可停止运行该工作器。如需返回表,请点击 Show List View 图标

后台任务检查器工作器链

为帮助调查执行失败的工作器出现的问题,您可以停止当前正在运行或已加入队列的工作器,方法是从表中选择相应工作器,然后点击工具栏中的 Cancel Selected Worker 图标 。您还可以使用 All tags 下拉菜单,根据您为工作器分配的标记来过滤表中的工作器。

更新了 Database Inspector

Database Inspector 现已包含在新的 App Inspection 工具窗口中,在该窗口中,您还可以找到新的后台任务检查器。从工具窗口栏打开 App Inspection 工具窗口,或从菜单栏依次选择 View > Tool Windows > App Inspection。

从 Database Inspector 中导出数据

在 Arctic Fox 中,您可以轻松地从 Database Inspector 中导出数据库、表和查询结果,以便在本地保存、共享或重新创建。在 Android Studio 中打开一个应用项目并在 Database Inspector 中检查该项目的应用时,可以采用以下任一方法开始导出数据:

在 Databases 面板中选择数据库或表,然后点击面板顶部附近的 Export to file。 右键点击 Databases 面板中的数据库或表,然后从上下文菜单中选择 Export to file。 在标签页中检查表或查询结果时,点击表或查询结果上方的 Export to file。

选择导出操作后,请使用 Export 对话框帮助您完成最后的步骤,如下所示。根据是否需要尝试导出数据库、表或查询结果,可以选择使用以下一种或多种格式导出数据:DB、SQL 或 CSV。

“Export Database”对话框

更新了内存分析器中的录制界面

我们整合了内存分析器界面 (UI),用于不同的录制活动,例如捕获堆转储和录制 Java、Kotlin 以及原生内存分配。

内存分析器中显示的内存分配

内存分析器提供以下选项:

Capture heap dump:查看应用中在特定时间点使用内存的对象。 Record native allocations:查看每个 C/C++ 对象在一段时间内的分配情况。 Record Java/Kotlin allocations:查看每个 Java/Kotlin 对象在一段时间内的分配情况。

三个选项的使用方式如下:

如需捕获堆转储,请选择 Capture heap dump,然后选择 Record。在分析器捕获堆转储后,内存分析器界面将转换到显示堆转储的单独屏幕上。

内存分析器中的堆转储示例

如需在搭载 Android 10 及更高版本的设备上录制原生分配情况,请选择 Record native allocations,然后选择 Record。录制会持续到您点击 Stop 图标 后,内存分析器界面会转换到显示原生录制的单独屏幕。

在 Android 9 及更低版本中,Record native allocations 选项不可用。

如需录制 Java 和 Kotlin 分配情况,请选择 Record Java / Kotlin allocations,然后选择 Record。如果设备搭载的是 Android 8 或更高版本,则内存分析器界面将转换为显示正在进行录制的单独屏幕。可以与录制上方的迷你时间轴进行交互(例如,更改选择范围)。如需完成录制,请选择 Stop 图标

在内存分析器中直观呈现 Java 分配

在 Android 7.1 及更低版本上,内存分析器使用旧版分配录制功能,它会在时间轴上显示录制,直到您点击 Stop。

更新了关联的 C++ 项目的刷新

我们已将与配置无关的文件从 .cxx/ 文件夹移到了 build/ 文件夹中。CMake C++ 构建需要一个配置阶段,该阶段生成用于执行编译和链接步骤的 Ninja 项目。由 CMake 生成的项目开销高昂,并且在 Gradle 清除操作后仍应保留下来。因此,它们会存储在 build/ 文件夹旁的 .cxx/ 文件夹中。通常,Android Gradle 插件会注意到配置变更,并自动重新生成 Ninja 项目。然而,并非所有情况都能被检测到。如果发生未被检测到的情况,可以使用“Refresh Linked C++ Project”选项手动重新生成 Ninja 项目。

用于多设备测试的新测试矩阵

现在可以在多台设备上并行运行插桩测试,并且可以使用专门的插桩测试结果面板进行调查。利用此面板,可以确定测试失败的原因在于 API 级别还是硬件属性。

插桩测试面板

为确保所有用户都获得良好的应用使用体验,最好的方法之一就是采用各种 API 级别和设备类型测试您的应用。

为了充分利用这项功能,请执行以下操作:

在 IDE 正上方的目标设备下拉菜单中选择 Select Multiple Devices。

“Modify device set”对话框

选择目标设备,然后点击 OK。

“Modify device set”对话框

运行测试。

如需在 Run 面板中查看测试结果,请依次转到 View > Tool Windows > Run。

使用新的测试结果面板,您可以按状态、设备和 API 级别过滤测试结果。此外,您还可以点击各列的标题对列进行排序。点击单个测试,可以单独查看每种设备的日志和设备信息。

数据绑定中的 StateFlow 支持

对于使用协程的 Kotlin 应用,您现在可以使用 StateFlow 对象作为数据绑定来源,自动将数据变化通知给界面。数据绑定将具有生命周期感知能力,并且仅在屏幕上显示界面时才会触发。

如需将 StateFlow 对象与绑定类一起使用,需要指定生命周期所有者,以定义 StateFlow 对象的范围,并在布局中使用绑定表达式将 ViewModel 组件的属性和方法分配给相应的视图,如下面的示例所示:

class ViewModel() { val username: StateFlow }

如果您当前正在使用运行 AndroidX 的 Kotlin 应用,StateFlow 支持将自动包含在数据绑定功能(包括协程依赖项)中。

如需了解详情,请参阅使用可观察的数据对象。

改进了建议导入的内容

我们改进了建议导入的内容功能支持的库数量,并更频繁地更新索引。建议导入的内容功能可帮助您快速轻松地将某些 Google Maven 工件导入类和 Gradle 项目。当 Android Studio 检测到来自某些 Google 库的未解析符号时,IDE 会建议将相应的库导入该类和项目中。

在 Build Analyzer 中支持配置缓存

现在,Build Analyzer 可以识别项目何时没有启用配置缓存,并将其作为优化建议提供。Build Analyzer 在启用项目配置缓存前,会运行兼容性评估,以告知您项目中的配置缓存是否存在任何问题。

Build Analyzer 中的配置缓存信息

改进了适用于 AGP 的升级助理

适用于 Android Gradle 插件的升级助理现在有一个持久性工具窗口,其中列出了将完成的步骤列表。 工具窗口的右侧还会显示其他信息。如有需要,还可以选择其他 AGP 版本进行升级。点击 Refresh 按钮将更新相应的更新步骤。

升级助理中的新持久性工具窗口

重构非传递 R 类

可以将非传递 R 类与 Android Gradle 插件一起使用,以便为具有多个模块的应用构建更快的 build。这样做有助于确保每个模块的 R 类仅包含对其自身资源的引用,而不会从其依赖项中提取引用,从而帮助防止资源重复。这样可以获得较新的 build,以及避免编译的相应优势。

如需使用此功能,请依次转到 Refactor > Migrate to Non-transitive R Classes。

注意:以前,将非传递 R 类与 AGP 结合使用的选项仅适用于库。现在,在 AGP 4.2 及更高版本中,此选项适用于所有模块。 支持 Jetpack Compose 工具

我们现已对使用 Jetpack Compose 的预览和测试应用提供额外的支持。为了在使用 Jetpack Compose 进行开发时获得最佳体验,您应使用最新版本的 Android Studio Arctic Fox,以便从智能编辑器功能中受益,这些功能包括“新建项目”模板以及即时预览 Compose 界面等。

Compose 预览

@Preview 方法现在提供以下参数:

showBackground:开启和关闭预览的背景。 backgroundColor:设置仅在预览界面中使用的颜色。 uiMode:此新参数可采用任何 Configuration.UI_* 常量,且允许更改预览的行为,例如,将其设置为夜间模式以了解主题背景如何反应。

Compose 预览界面

互动式预览

可以使用此功能与界面组件交互,点击组件并查看状态如何变化。通过这种方式,可以快速获得有关界面如何反应的反馈,并可快速预览动画。如要启用此模式,只需点击 Interactive 图标 ,系统即会切换预览模式。

如需停止此模式,请点击顶部工具栏中的 Stop Interactive Preview。

互动式预览界面

部署到设备

可以使用此功能将界面代码段部署到设备。这有助于测试设备中的一小部分代码,而无需启动整个应用。

点击 @Preview 注解旁边或预览顶部的 Deploy to Device 图标 ,Android Studio 会将该 @Preview 部署到连接的设备或模拟器上。

实时修改字面量

我们添加了实时编辑文本功能,以帮助使用 Compose 的开发者快速编辑代码中的文本(字符串、数字、布尔值),并立即查看结果,而无需等待编译。此功能的目标是在预览、模拟器或物理设备中近乎即时地显示代码更改,从而帮助提高工作效率。

在预览和设备上立即修改数字和字符串更新

布局检查器中的 Compose 支持

通过布局检查器,可以深入了解在连接设备上运行的应用布局的相关详细信息。在该工具中,您可以与您的应用交互并查看实时更新,以快速调试可能出现的问题。

可以检查使用全新 Android 声明式界面框架(即 Jetpack Compose)编写的布局。无论您的应用是使用完全用 Compose 编写的布局,还是使用 Compose 和 View 的混合布局,布局检查器都可以帮助您了解您的布局如何在正在运行的设备上渲染。

使用入门

如需开始使用,请将您的应用部署到连接的设备上,然后通过依次选择 View > Tool Windows > 布局检查器 打开 布局检查器 窗口。如果布局检查器未自动连接到您的应用进程,请从进程下拉菜单中选择所需的应用进程。您应该很快就会在工具窗口中看到应用的布局。如需开始检查 Compose 布局,请选择渲染中显示的布局组件,或从 Component Tree 中选择该组件。

布局检查器界面

Attributes 窗口会显示有关当前所选 Compose 函数的详细信息。在该窗口中,您可以检查函数的参数及其值,包括修饰符和 lambda 表达式。对于 lambda 表达式,检查器提供了一个快捷方式,可帮助您导航到源代码中的表达式。

布局检查器会显示调用堆栈中所有用于向应用的布局发送组件的 Compose 函数。在许多情况下,这包括 Compose 库在内部调用的 Compose 函数。如果只想在应用直接调用的 Component Tree 中看到 Compose 函数,请点击过滤器 操作,这可能有助于将树中的节点数量减少为您可能要检查的节点数量。

改进了部署下拉菜单

设备下拉菜单现在会区分所选设备配置中的不同类型的错误。图标和样式的变更现在分成了错误(导致配置失败的设备选择)和警告(可能导致意外行为但仍可运行的设备选择)。

此外,如果尝试将项目启动到存在相关错误或警告的设备,Android Studio 将发出警告。

新增了 Wear OS 配对助理

新增的 Wear OS 配对助理直接在 Android Studio 中逐步引导开发者将 Wear OS 模拟器与实体或虚拟手机配对。该配对助理可以帮助您在手机上安装正确的 Wear OS Companion 应用,并在两台设备之间建立连接。如需开始使用,请依次转到 device dropdown > Wear OS Emulator Pairing Assistant。

Wear OS 配对助理演示

自适应布局模板

Android Studio Arctic Fox 现在包含一个全新的布局模板,该模板可以适应不同的显示尺寸和应用大小(例如手机、可折叠设备、平板电脑和分屏模式)。创建新项目或模块时,请选择 Responsive Activity 模板,以创建包含可动态调整大小的组件布局。

小屏幕中的自适应布局模板 中等屏幕中的自适应布局模板 大屏幕中的自适应布局模板

如需开始使用,请转到 File > New,选择 New Project 或 New Module 中的任意一项,然后选择 Responsive Activity 模板。

新建项目向导中的自适应布局模板

Arctic Fox 的已知问题

本部分将介绍 Android Studio Arctic Fox 当前已知的问题。

补丁程序无法在安装了 v3.6-v4.1 的 Windows 上正常使用

补丁程序可能无法在安装了从 v3.6-v4.1 到 Android Studio Arctic Fox 稳定版的 Windows 平台上正常使用。

4.2(2021 年 4 月)

Android Studio 4.2 是一个主要版本,包含各种新功能和改进。

4.2.2(2021 年 6 月)

本次要更新包含多项 bug 修复。 如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

4.2.1(2021 年 5 月)

这是一个次要更新,纳入了 Kotlin 插件 1.5.0 并包含各种 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

Android Gradle 插件 4.2.0

最新版本的 Android Gradle 插件包含许多更新。如需了解详情,请阅读完整的 Android Gradle 插件版本说明。

Gradle 兼容性和配置变更

在 Android Studio 中运行时,Gradle 构建工具会使用 Studio 所捆绑的 JDK。在之前的版本中,与 Studio 捆绑的是 JDK 8。但在 4.2 中,现在捆绑的版本为 JDK 11。在使用所捆绑的新 JDK 运行 Gradle 时,由于垃圾回收器的变更,这可能会导致某些不兼容问题或影响 JVM 性能。AGP 版本说明对这些问题进行了介绍。

优化 Gradle 同步时间的选项

为了提高 Gradle Sync 性能,Android Studio 会在同步期间跳过构建任务列表。这可让 Gradle Sync 更快地完成,并提高大型项目的界面响应速度。在 Android Studio 4.2 中,此选项默认处于启用状态。要关闭此选项,请依次点击 File > Settings > Experimental(在 Mac 上,请依次点击 Preferences > Experimental),然后取消选中 Do not build Gradle task list during Gradle sync。

Database Inspector 查询编辑器改进

Database Inspector 进行了一些改进,可帮助您编写和执行自定义 SQL 语句。当您打开检查器并打开一个 New query 标签页时,应该会看到一个更大、可调整大小的编辑器界面,用于编写查询和设置查询格式,如下所示。

Database Inspector 编辑器

此外,我们现在还提供您的先前查询的历史记录。点击 Show query history “Show query history”按钮 按钮时,您应该会看到先前针对当前所选数据库运行的查询列表。点击列表中的查询以在编辑器中查看完整查询的预览,然后按 Enter 将其复制到编辑器中。接着,点击 Run 以执行语句。

在查询编辑器中运行命令

离线模式

在旧版 Android Studio 中,在使用 Database Inspector 时断开与应用进程的连接会导致关闭检查器及其数据。在 Android Studio 4.2 中,我们添加了在进程断开连接后继续检查应用数据库的功能,以便在发生崩溃后更轻松地调试应用。

如果发生断开连接的情况,Database Inspector 会下载您的数据库,然后供您在离线模式下使用这些数据库。您可以在离线模式下打开表格并运行查询。

请注意,当您重新连接至实时应用进程时,Database Inspector 会返回到实时模式,并仅显示设备上的数据。也就是说,重新连接到应用进程后,系统不会保留离线模式下显示的数据。因此,Database Inspector 不允许在离线模式下编辑或运行修改语句。

适用于 AGP 的升级助理

适用于 Android Gradle 插件的升级助理可帮助您更新项目的 AGP 版本。

“Android Gradle plugin Upgrade Assistant”对话框

该工具以现有的 AGP 升级功能为基础构建,可指导您完成整个项目级更新/重构工作,并包含更新预览,有助于防止在执行 AGP 升级之前发生潜在的重大更改。

升级助理要执行的更改的预览

System Trace:改进了内存和图形的指标

在 CPU 性能分析器中,System Trace 功能添加了用于分析应用性能的新指标,其中包括:

“Events”表格。此表格列出了当前选定的线程中的所有跟踪事件。

BufferQueue。在“Display”部分中,这一新跟踪记录会显示应用 Surface BufferQueue 的缓冲区计数(0、1 或 2),以便帮助您了解图像缓冲区在 Android 图形组件之间切换时的状态。

System Trace 的缓冲区队列

CPU 频率。在“CPU cores”部分中,这一新跟踪记录会按核心显示 CPU 频率,以指示每个核心的运行状况。

System Trace 的 CPU 频率

Process Memory (RSS)。 这一新窗口会显示应用当前使用的物理内存量。

System Trace 的“Process Memory (RSS)”

如需了解详情,请参阅使用 CPU 性能分析器检查 CPU 活动。

新增布局检查器刷新操作

布局检查器是在 Android Studio 4.0 中引入的,旨在对正在运行的应用的界面堆栈进行实时检查。 不过,您可能并不总是希望布局检查器立即反映应用发生的情况,因为您可能希望在特定时间点检查应用布局的快照,或最大限度降低实时更新对应用性能的影响。

暂停实时更新并在布局检查器中刷新屏幕截图。

如需从应用手动加载界面数据快照,请先停用 Live updates 选项。然后,您可以点击 Refresh 按钮,以截取界面堆栈的新快照以进行检查。布局检查器现在会记住您的偏好设置,以便在会话之间保持启用或停用 Live updates。

对 Safe Args 的支持

Safe Args 是一个 Gradle 插件,可生成简单的对象和构建器类,以实现类型安全的导航和访问任何关联参数。使用 Safe Args 时,Android Studio 现在扩大了支持范围,如下所述:

支持针对 Directions、Args 和各种构建器类的自动填充功能 支持 Java 和 Kotlin Safe Args 插件 支持从源代码到 XML 的导航 现在,R8 retrace 包含在命令行工具中

R8 retrace 现包含在 4.0 版命令行工具中。这是一个独立的工具,用于从经过混淆处理的堆栈轨迹获取原始堆栈轨迹。

您可以使用 SDK 管理器下载此软件包,这样会在 android_sdk/cmdline-tools 中安装 R8 retrace。或者,您也可以下载独立的命令行工具软件包。

如需了解使用信息,请参阅用户指南中的 R8 retrace。

部署到多个设备

为了帮助简化跨设备和 API 级别的应用测试,您现在可以执行以下步骤,将应用同时部署到多个设备或模拟器:

在目标设备下拉菜单(位于 IDE 的正上方)中选择 Select Multiple Devices。

目标设备下拉菜单

选择目标设备,然后点击 OK。

“Modify device set”对话框

运行应用。

注意:在多个设备上运行和查看测试是一项实验性功能。在多个设备上运行测试配置时,系统可能会提示您先启用此功能,然后才能继续。 用于功能模块的新 removable 设置

Android Gradle 插件 4.2 使用 bundletool 1.0.0,后者为使用功能模块的应用引入了一项行为变更:指定为 dist:install-time 但未明确标记为 dist:removable 的任何功能模块都将默认为不可移动。这项新设置优化了安装时间模块与基本模块的融合,这可能会提高某些应用的性能。

如需使功能模块保持可移除,请在要卸载的任何模块上设置 dist:removable="true"。

如需详细了解这项新设置,请参阅功能模块清单文档中有关 dist:removable 标记的文档。

Apply Changes

为了帮助您更高效地迭代应用,我们针对搭载 Android 11 或更高版本的设备对 Apply Changes 进行了以下增强:

支持其他代码更改

对于搭载 Android 11 或更高版本的设备,您现在可以添加静态最终基元字段,然后通过点击以下任一按钮将这些更改部署到正在运行的应用中:Apply Code Changes 或 Apply Changes and Restart Activity

在 Android 11 设备上,您现在还可以添加资源,然后通过点击 Apply Changes and Restart Activity 图标 ,将这些更改部署到正在运行的应用。

更新了“New Project”向导和“New Module”向导

更新了 New Project 向导和 New Module 向导,以便更轻松地浏览、选择模板以及输入新项目或新模块的相关信息。

此外,还从 New Module 向导中移除了 Import .JAR/.AAR Package 选项。如需将 JAR 或 AAR 导入项目,请改为使用“Project Structure”对话框。

Kotlin 1.4.31

Android Studio 4.2 捆绑了 Kotlin 1.4.31。查看 Kotlin 1.4.0 变更记录,了解主要变更。

ANDROID_SDK_HOME 环境变量已废弃

ANDROID_SDK_HOME 环境变量已弃用,取而代之的是 ANDROID_PREFS_ROOT。如需了解详情,请参阅模拟器环境变量。

Android Studio 4.2 的已知问题

本部分将介绍 Android Studio 4.2 中存在的已知问题。如需查看完整列表,请转到已知问题页面。

Android Studio 4.2.0 生成的项目使用错误的 Kotlin 版本:“1.5.0-release-764”

如果您使用的是 Android Studio 4.2.0 并已升级到 Kotlin 插件 1.5.0,Studio 创建的新 Kotlin 项目会因以下 Gradle 同步错误而无法构建:Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.

如需解决此问题,请在项目的 build.gradle 文件中将“1.5.0-release-764”替换为“1.5.0”。

对密钥和密钥库使用不同的密码时出错

从 4.2 版本开始,Android Studio 现在将在 JDK 11 上运行。此变更会导致与签名密钥相关的底层行为发生变更。

在您依次转到 Build > Generate Signed Bundle / APK 并尝试为 app bundle 或 APK 配置应用签名时,如果对密钥和密钥库输入不同的密码,就可能会导致以下错误:

Key was created with errors: Warning: Different store and Key passwords not supported for PKCS12 Key stores

如需解决此问题,请为密钥和密钥库输入相同的密码。

安装 4.2 版本后,Android Studio 无法启动

Studio 会尝试导入之前版本的 .vmoptions 并对其进行清理,以便与 JDK 11 使用的垃圾回收器配合使用。如果此进程失败,对于在 .vmoptions 文件中设置了自定义虚拟机选项的用户,Android Studio 可能不会启动。

为了解决此问题,我们建议在 .vmoptions 中注释掉自定义选项(使用“#”字符)。.vmoptions 文件位于以下位置:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

如果尝试过此权宜解决方法后 Studio 仍未启动,请参阅下面的 Studio 在升级后没有启动。

4.1(2020 年 8 月)

Android Studio 4.1 是一个主要版本,包含各种新功能和改进。

4.1.3(2021 年 3 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

4.1.2(2021 年 1 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

4.1.1(2020 年 11 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

Android Gradle 插件 4.1.0

最新版本的 Android Gradle 插件包含许多更新。如需了解详情,请阅读完整的 Android Gradle 插件版本说明。

新的 Database Inspector

使用新的 Database Inspector 可以检查、查询和修改正在运行的应用中的数据库。如需开始使用,请将您的应用部署到搭载 API 级别 26 或更高级别的设备中,然后从菜单栏中依次选择 View > Tool Windows > Database Inspector。

如需了解详情,请参阅使用 Database Inspector 调试数据库。

直接在 Android Studio 中运行 Android 模拟器

现在,您可以直接在 Android Studio 中运行 Android 模拟器。使用此功能可节省屏幕空间、可利用热键在模拟器窗口和编辑器窗口之间快速导航,并可在一个应用窗口中集中管理 IDE 和模拟器工作流。

在 Android Studio 的工具窗口中启动的模拟器。

如需了解详情,请参阅 Android 模拟器文档。

使用 TensorFlow Lite 模型

借助机器学习模型绑定,您可以轻松地直接导入 .tflite 模型文件并在项目中使用这些模型文件。Android Studio 会生成易于使用的类,这样您就可以使用更少的代码运行模型并获得更佳的类型安全。

支持的模型

机器学习模型绑定的当前实现支持图像分类和风格迁移模型,前提是这些模型通过元数据得到了增强。随着时间的推移,支持范围将扩展到其他问题领域,例如对象检测、图像分割和文本分类。

TensorFlow Hub 上提供了丰富的包含元数据的预训练模型。您还可以自己向 TensorFlow Lite 模型添加元数据,如向 TensorFlow Lite 模型添加元数据中所述。

导入模型文件

如需导入支持的模型文件,请按以下步骤操作:

在“File”菜单中,依次选择 File > New > Other > TensorFlow Lite Model,打开 TensorFlow Lite 模型导入对话框。 选择您之前下载或创建的 .tflite 模型文件。 点击 Finish。

这会将模型文件导入您的项目中,并将其放入 ml/ 文件夹中;如果该目录不存在,Android Studio 将为您创建该目录。

导入 TensorFlow Lite 模型

查看模型元数据和使用情况

如需查看所导入模型的详细信息并获取有关如何在应用中使用该模型的说明,请双击项目中的模型文件以打开模型查看器页面,该页面显示以下信息:

Model:模型的简要说明 Tensors:输入和输出张量的说明 Sample Code:有关如何在应用中与模型交互的示例

下面是一个使用 mobilenet_v1_0.25_160_quantized.tflite 的示例:

TensorFlow Lite 模型查看器的屏幕截图

如示例所示,Android Studio 创建了一个名为 MobilenetV1025160Quantized 的类,用于与模型进行交互。

如果模型不含元数据,此屏幕将仅提供基本信息。

已知问题与解决方法 目前对除图像分类和风格迁移之外的其他问题领域的 TensorFlow Lite 模型的支持有限。虽然导入应该可以正常运行,但某些模型输入和/或输出由 TensorBuffer 而非合适的类型表示。对于不含任何元数据的模型,所有模型输入和输出都将由 TensorBuffer 表示。 不支持输入和输出数据类型不为 DataType.UINT8 或 DataType.FLOAT32 的模型。

此功能仍处于开发阶段,欢迎您提供反馈或报告 bug。

原生内存分析器

Android Studio 内存分析器现在包含原生内存分析器,该工具适用于部署到搭载 Android 10 或更高版本的物理设备的应用。借助原生内存分析器,您可以通过原生代码记录内存分配和释放情况,并查看原生对象的累计统计信息。

如需详细了解原生内存分析器,请参阅使用内存分析器查看应用的内存使用情况。

已知问题与解决方法

Android Studio 4.1 中的原生内存分析器在 Android 11 设备上无法工作。目前,4.2 预览版支持对 Android 11 设备进行性能剖析

自最初的 4.1 版本起,在应用启动时进行性能剖析的功能已停用。此选项会在即将发布的版本中启用。

解决方法之一是,您可以使用 Perfetto 独立命令行性能剖析器来捕获启动配置文件。

System Trace 界面:更简单的选择功能、全新的分析标签页以及更多帧渲染数据

Android Studio 性能剖析器中的 System Trace 界面包含以下改进:

边框选择:在 Threads 部分中,现在您可以拖动鼠标选出一个矩形区域,然后可以点击区域右上角的 Zoom to Selection 按钮(或使用键盘快捷键 M)放大选中区域。当您将相似的线程拖放到一起时,可以选择多个线程以同时检查所有这些线程。例如,您可能需要分析多个工作器线程。

“Summary”标签页:Analysis 面板中新增的 Summary 标签页显示以下内容:

特定事件所有发生实例的汇总统计信息,例如发生次数和最短/最长持续时间。 所选发生实例的跟踪事件统计信息。 有关线程状态分布的数据。 所选跟踪事件中运行时间最长的发生实例。

如需转到其他发生实例,请从表格中选择其他行。

显示数据:在 Display 部分,新增的 SurfaceFlinger 和 VSYNC 时间轴可以帮助您调查应用界面中的渲染问题。

如需了解有关如何记录系统轨迹的基本用法说明,请参阅使用 CPU 性能分析器检查 CPU 活动的记录轨迹部分。

Windows 用户:如果在剖析应用性能时线程活动时间轴中缺失标签,请参阅已知问题,从中寻找解决方法。4.2 版中修复了此问题。 现在可以使用独立性能剖析器

借助新的独立性能剖析器,现在您无需运行完整的 Android Studio IDE 即可剖析应用的性能。

如需了解如何使用独立性能剖析器,请参阅运行独立性能剖析器。

Dagger 导航支持

用于转到 Dagger 使用方和提供方的 IDE 边线操作

Android Studio 提供了新的边线操作,并扩展了 Find Usages 窗口中的支持,让您可以更轻松地浏览与 Dagger 相关的代码。

新的边线操作:对于使用 Dagger 的项目,IDE 提供了边线操作,以帮助您浏览使用 Dagger 注释的代码。例如,点击使用给定类型的方法旁边的 边线操作会将您转到该类型的提供方。相反,点击 边线操作会将您转到类型被用作依赖项的位置。

“Find Usages”节点:现在,在给定类型的提供方上调用 Find Usages 时,Find 窗口会包含一个 Dependency consumer(s) 节点,列出该类型的使用方。相反,在由 Dagger 注入的依赖项的使用方上调用此操作时,Find 窗口会显示该依赖项的提供方。

Material Design 组件:在新项目模板中更新了主题背景和样式

动画:在 Android Studio 中使用新的 Material Design 属性创建项目。

Create New Project 对话框中的 Android Studio 模板现在使用 Material Design 组件 (MDC),并默认遵循更新后的主题背景和样式指南。 更新包括:

MDC:项目依赖于 build.gradle. 中的 com.google.android.material:material。基本应用主题背景使用 Theme.MaterialComponents.* 父级并替换了更新后的 MDC 颜色和“on”属性。 颜色资源:colors.xml 中的颜色资源使用字面名称(例如,使用 purple_500 而不是 colorPrimary)。 主题背景资源:主题背景资源位于 themes.xml(而非 styles.xml)中,使用 Theme. 名称。 深色主题:基本应用主题背景使用 DayNight 父级,拆分为 res/values 和 res/values-night。 主题背景属性:颜色资源在布局和样式中以主题背景属性(例如 ?attr/colorPrimary)的形式引用,以避免硬编码颜色。 IntelliJ IDEA 2020.1

核心 Android Studio IDE 已通过 IntelliJ IDEA 2020.1 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进,其中包括新的 Commit 窗口(支持版本控制操作)以及新的 Zen 模式(可通过依次选择 View > Appearance > Enter Distraction Free Mode 进行切换)。

如需详细了解版本 2020.1 中的改进,请参阅以下页面:

IDEA 2020.1 IDE 配置目录更改

用户配置目录的位置已更改为以下位置:

Windows

语法:%APPDATA%\Google\

示例:C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1

macOS

语法:~/Library/Application Support/Google/

示例:~/Library/Application Support/Google/AndroidStudio4.1

Linux

语法:~/.config/Google/

示例:~/.config/Google/AndroidStudio4.1

这些新的目录位置与 IntelliJ IDEA 的最新更新一致(IntelliJ IDEA 是 Android Studio 所基于的 IDE)。

注意:如果 Studio 在升级后没有重启,可能需要删除以前的 Studio 版本中的该配置目录。如需了解详情,请参阅已知问题页面。 Kotlin 1.3.72

Android Studio 4.1 捆绑了 Kotlin 1.3.72,该版本包含许多修复,可以改进 Kotlin 的突出显示、检查和代码补全功能。如需了解详情,请查看 1.3.72 Kotlin 变更日志。

自定义视图预览

创建自定义视图时(例如,通过扩展 View 或 Button 类来创建),Android Studio 现在会显示自定义视图的预览。使用工具栏中的下拉菜单可在多个自定义视图之间切换,也可以点击按钮以垂直或水平方式封装内容。

在 Android Studio 中预览自定义视图。

注意:如果没有在预览中看到所做更改,请从菜单栏中依次选择 Build > Make Project。 原生代码崩溃报告的符号化解析

当原生代码中发生崩溃或 ANR 时,系统会生成堆栈轨迹,这是您的程序在崩溃之前调用过的嵌套函数序列的快照。这些快照可帮助您找出并修正源代码中的任何问题,但必须先对其进行符号化解析,以将机器地址转换回简单易懂的函数名称。

如果您的应用或游戏是使用原生代码(如 C++)开发的,那么您现在可以针对应用的每个版本向 Play 管理中心上传调试符号文件。Play 管理中心会使用这些调试符号文件对应用的堆栈轨迹进行符号化解析,以便您更轻松地分析崩溃和 ANR。如需了解如何上传调试符号文件,请参阅原生代码崩溃支持。

Apply Changes

为了帮助您提高迭代应用时的效率,我们针对搭载 Android 11 开发者预览版 3 或更高版本的设备推出了以下 Apply Changes 增强功能:

部署速度更快

我们投入了大量资源,开发了一种无需安装应用即可在设备上部署和保留更改的方法,以优化您的迭代速度。 现在,完成初始部署后,使用 Apply Code Changes 图标 或 Apply Changes and Restart Activity 图标 对 Android 11 设备进行后续部署的速度显著加快。

如需详细了解这两项操作之间的区别,请参阅 Apply Changes。

支持其他代码更改

现在,对于搭载 Android 11 开发者预览版 3 或更高版本的设备,您可以添加各种方法,然后点击 Apply Code Changes 图标 或 Apply Changes and Restart Activity 图标 将这些更改部署到正在运行的应用。

4.0(2020 年 5 月)

Android Studio 4.0 是一个主要版本,包含各种新功能和改进。

4.0.1(2020 年 7 月)

本次要更新修复了多个问题,并支持 Android 11 中软件包可见性的新默认设置。如需了解详情,请参阅 Android Gradle 插件 4.0.1 版本说明。

如需查看此版本的重要问题修复列表,请阅读版本更新博客上的相关博文。

4.0(2020 年 5 月)

重要提示:更新后,您需要重启 Android Studio 才能应用迁移自较低版本 Android Studio 的任何内存设置。如需了解详情,请参阅已知问题页面。

Android Gradle 插件 4.0.0

最新版 Android Gradle 插件包含许多更新,例如适用于较低版本 Android 平台的 Java 8 脱糖功能以及功能对功能的依赖性功能。如需了解详情,请阅读完整的 Android Gradle 插件版本说明。

此外,Android Studio 现在还包含一些有助于提升构建性能的新功能。

Build Analyzer

将 Android Studio 4.0 与 Android Gradle 插件 4.0.0 及更高版本一起使用时,Build Analyzer 窗口可帮助您了解和诊断与构建流程有关的问题,如优化被停用和任务配置不当问题。如需打开 Build Analyzer 窗口,请按以下步骤操作:

通过从菜单栏中依次选择 Build > Make Project 来构建应用(如果您尚未这样做)。 从菜单栏中依次选择 View > Tool Windows > Build。 在 Build 窗口中,通过以下某种方式打开 Build Analyzer 窗口: Android Studio 构建完您的项目后,点击 Build Analyzer 标签页。 Android Studio 构建完您的项目后,点击 Build Output 窗口右侧的链接。

Build Analyzer 窗口将可能存在的 build 问题整理成左侧的树状图。您可以检查并点击每个问题,以在右侧的面板中调查其详细信息。当 Android Studio 分析您的构建时,它会计算决定构建时长的一组任务,并提供直观的图表来帮助您了解其中每项任务所产生的影响。您也可以展开 Warnings 节点,以获取有关警告的详细信息。

检查对构建时长影响最大的任务。

检查决定构建时长的任务。

D8 和 R8 中的 Java 8 库脱糖

Android Studio 现在支持使用多种 Java 8 语言 API,而无需为应用设置最低 API 级别。

通过一个称为“脱糖”的过程,Android Studio 3.0 及更高版本中的 DEX 编译器 D8 已经为 Java 8 语言功能(如 lambda 表达式、默认接口方法、try-with-resources 等等)提供了大量的支持。在 Android Studio 4.0 中,脱糖引擎经过扩展,能够使 Java 语言 API 脱糖。这意味着,您现在可以在支持旧版 Android 的应用中添加过去仅在最新 Android 版本中可用的标准语言 API(如 java.util.streams)。

此版本支持下面一组 API:

顺序流 (java.util.stream) java.time 的子集 java.util.function java.util.{Map,Collection,Comparator} 的最近新增内容 可选内容(java.util.Optional、java.util.OptionalInt 和 java.util.OptionalDouble)以及对上述 API 很有用的一些其他新类 java.util.concurrent.atomic 的一些新增内容(AtomicInteger、AtomicLong 和 AtomicReference 的新方法) ConcurrentHashMap(包含 Android 5.0 的 bug 修复)

为了支持这些语言 API,D8 编译了一个单独的库 DEX 文件,其中包含缺失 API 的实现,并将其添加到您的应用中。脱糖过程会重新编写应用的代码,以便在运行时改用此库。

如需启用对这些语言 API 的支持,请在应用模块的 build.gradle 文件中添加以下代码:

Groovy android { defaultConfig { // Required when setting minSdkVersion to 20 or lower multiDexEnabled true } compileOptions { // Flag to enable support for the new language APIs coreLibraryDesugaringEnabled true // Sets Java compatibility to Java 8 sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4' } Kotlin android { defaultConfig { // Required when setting minSdkVersion to 20 or lower multiDexEnabled = true } compileOptions { // Flag to enable support for the new language APIs coreLibraryDesugaringEnabled = true // Sets Java compatibility to Java 8 sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } } dependencies { coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.0.4") }

请注意,在以下情况下,您可能还需要在相应库模块的 build.gradle 文件中添加以上代码段:

库模块的插桩测试会使用这些语言 API(直接使用,或者通过库模块或其依赖项使用)。这是为了向您的插桩测试 APK 提供缺失的 API。

您想单独在该库模块上运行 lint。这是为了帮助 lint 识别这些语言 API 的有效使用情况,并避免报告虚假警告。

功能对功能的依赖性

在以前的 Android Gradle 插件版本中,所有功能模块都只能依赖于应用的基本模块。使用 Android Gradle 插件 4.0.0 及更高版本时,您现在可以添加依赖于其他功能模块的功能模块。也就是说,:video 功能可以依赖于 :camera 功能,而后者依赖于基本模块,如下图所示。

功能对功能的依赖性

:video 功能模块依赖于 :camera 功能,而后者依赖于 :app 基本模块。

这意味着,当您的应用请求下载某个功能模块时,它也会下载该模块所依赖的其他功能模块。为您的应用创建功能模块后,您可以在模块的 build.gradle 文件中声明功能对功能的依赖性。例如,:video 模块声明对 :camera 的依赖性,如下所示:

Groovy // In the build.gradle file of the ':video' module. dependencies { // All feature modules must declare a dependency // on the base module. implementation project(':app') // Declares that this module also depends on the 'camera' feature module. implementation project(':camera') ... } Kotlin // In the build.gradle file of the ':video' module. dependencies { // All feature modules must declare a dependency // on the base module. implementation(project(":app")) // Declares that this module also depends on the 'camera' feature module. implementation(project(":camera")) ... }

此外,您还应在 Android Studio 中启用功能对功能的依赖性功能(例如,为了在修改运行配置时支持该功能),方法是从菜单栏中依次点击 Help > Edit Custom VM Options,并添加以下代码:

-Drundebug.feature.on.feature=true 依赖项元数据

使用 Android Gradle 插件 4.0.0 及更高版本构建应用时,该插件包含描述已编译到应用中的依赖项的元数据。上传应用时,Play 管理中心会检查此元数据,以便为您提供以下优势:

获取有关您的应用使用的 SDK 和依赖项的已知问题的提醒 接收切实可行的反馈来解决这些问题

数据经过压缩,并由 Google Play 签名密钥加密,然后存储在您的发布应用的签名分块中。但是,您可以在以下目录中的本地中间 build 文件中自行检查元数据://build/outputs/sdk-dependencies/release/sdkDependency.txt。

如果您不希望分享这些信息,您可以通过在模块的 build.gradle 文件中添加以下代码来选择退出:

Groovy android { dependenciesInfo { // Disables dependency metadata when building APKs. includeInApk = false // Disables dependency metadata when building Android App Bundles. includeInBundle = false } } Kotlin android { dependenciesInfo { // Disables dependency metadata when building APKs. includeInApk = false // Disables dependency metadata when building Android App Bundles. includeInBundle = false } } 支持 Kotlin DSL 脚本文件

Android Gradle 插件现在支持 Kotlin DSL 构建脚本文件 (*.kts)。与 Android Studio 一起使用时,某些 IDE 功能(如“Project Structure”对话框和构建脚本快速修复)现在也支持读取和写入 Kotlin 构建脚本文件。

CPU 性能分析器升级

根据开发者的反馈,我们着重提高了 CPU 性能分析器在两个重要方面的用户体验。

第一个方面,与以前的 Android Studio 版本相比,CPU 性能分析器中的 CPU 记录错误率已显著降低。

第二个方面,CPU 性能分析器的界面经过了全新改版,可提供更直观的工作流。以下是其中一些重要的界面变更:

CPU 记录现在已从性能剖析器主时间轴分离出来,使分析更加容易。记录的数据按组显示在 Profiler 窗口的左侧。您可以通过点击窗口右上角的 性能剖析器中的选项图标 选项图标或通过拖放组中的各项来上下移动组以重新整理列表。 为使并排分析更容易,您现在可以查看线程活动时间轴中的所有线程活动(包括方法、函数和事件)。您可以通过以下几种方法进行时间轴导航: 如需关注特定时间点,可在左上方的 CPU 使用情况图表中拖动时间范围。 如需放大或缩小,可在按住 Ctrl 键(在 MacOS 上,按住 Command 键)的同时,滚动鼠标滚轮。如需向左或向右平移,可在按住空格键的同时,拖动对象。 或者,使用 W 键和 A 键进行精细缩放,使用 S 键和 D 键进行精细的左右平移。 现在,Flame Chart、Top Down 和 Bottom Up 分析对应的标签页位于右侧列中。在“Threads”组中,对于系统跟踪记录,线程会自动展开;对于其他记录类型,线程会默认收起。双击(或按 Enter 键)线程名称可将其展开或收起。 系统跟踪界面(如屏幕截图中所示)也得到了一些改进: 为了让您更容易区分,系统现在使用独特的颜色显示不同的事件。 线程按其中的跟踪事件数量排序,因此,越“忙”的线程在列表中的排名越高。 您可以选择一个或多个线程,以便在右侧列中仅查看对所选线程的分析。 同样,您也可以选择任何线程中的跟踪事件以查看其分析数据。 设计工具

此版本的 Android Studio 包含对设计工具的更新,例如对布局检查器和全新的 Motion Editor 的更新。

新的 Motion Editor

Android Studio 现在包含一个适用于 MotionLayout 布局类型的视觉设计编辑器,可让您更轻松地创建和预览动画。

Motion Editor 提供了一个简单的界面来操控 MotionLayout 库中的元素,该库是 Android 应用中动画的基础。在之前的版本中,创建和更改这些元素需要手动修改 XML 资源文件中的约束条件。现在,Motion Editor 支持开始状态和结束状态、关键帧、转换和时间轴,可以为您生成此 XML 文件。

如需详细了解如何使用 Motion Editor,请参阅用户指南。

注意:在使用 Motion Editor 之前,请务必在 build.gradle 文件中将 ConstraintLayout 依赖项设置为版本 2.0.0-beta3 或更高版本。 实时布局检查器

您可以使用更新后的实时布局检查器来调试布局,该工具可以在将应用部署到设备时提供应用界面的完整实时数据分析。

如需打开一个布局检查器窗口,请依次转到 View > Tools Windows > Layout Inspector。除了与现有布局检查器相同的许多功能之外,实时布局检查器还包含如下功能:

动态布局层次结构:随着设备上的视图发生变化而进行更新。

动态布局层次结构

属性值解析堆栈:调查资源属性值在源代码中的来源位置,点击属性窗格中的超链接即可转到其位置。

属性值解析堆栈

3D 视图:使用高级 3D 可视化功能,在运行时查看应用的视图层次结构。如需使用此功能,只需在实时布局检查器窗口中点击相应的布局并进行旋转。

布局检查器:3D 视图

只有将应用部署到搭载 API 级别 29 或更高级别的设备或模拟器后,才能使用实时布局检查器。如需启用实时布局检查器,请依次转到 File > Settings > Experimental,勾选 Enable Live Layout Inspector 旁边的框,然后点击 Layout Display 上方 Live updates 旁边的复选框。

布局验证

布局验证是一款可视化工具,用于同时预览不同设备上及采用不同配置的布局,有助于您察觉布局错误并打造无障碍水平更高的应用。

在“Layout Validation”窗口中创建自定义的布局预览

您可以通过点击 IDE 窗口右上角的 Layout Validation 标签页来使用此功能:

Android Studio 中的“Layout Validation”标签页

在“Layout Validation”窗口中,您可以从四组不同的配置中进行选择,其中包括:

Pixel 设备:在一系列 Pixel 设备上预览应用。 自定义:使用自定义显示选项(例如屏幕方向或语言)来预览应用。 色盲:通过模拟常见的色盲类型来预览应用。 字体大小:使用各种字体大小来预览应用。

如需详细了解如何使用布局验证工具,请参阅使用布局检查器调试您的布局。

针对代码缩减器规则的智能编辑器功能

Android Studio 现在可以在您打开 R8 代码缩减器规则文件时提供智能编辑器功能,如语法突出显示、代码补全和错误检查。该编辑器还与 Android Studio 项目集成,以便为所有类、方法和字段提供完整的符号补全,并且包括快速导航和重构功能。

修改 R8 规则文件时使用的智能编辑器功能

Kotlin Android 实时模板

Android Studio 现在包含适用于 Kotlin 类的 Android 实时模板。例如,您现在可以输入 toast 并按 Tab 键来快速插入一个消息框。如需查看可用实时模板的完整列表,请在菜单栏中依次点击 File > Settings(或者,在 macOS 上依次点击 Android Studio > Preferences),然后依次转到 Editor > Live Templates。

Fragment 向导和新的 Fragment 模板

现在,当您依次转到 File > New > Fragment > Gallery 或在 Navigation Editor 中点击 Create new destination 时,会出现新的 Android Fragment 向导和新的 Fragment 模板。

Android 模拟器中的相机支持扩展

使用 Android 11 映像时,Android 模拟器的相机功能包含以下新功能:

RAW 捕获 YUV 重新处理 3 级设备 逻辑相机支持

如需详细了解如何针对 Android 11 进行开发,请参阅 Android 11 文档。

C++ 代码编辑器现在提供 clangd

作为 Android Studio 支持 C++ 语言的基石,Jetbrains CLion 技术现在使用基于 LLVM clangd 和 clang-tidy 的检查引擎,加快了 C/C++ 代码补全的速度,并与 clang-tidy 实现了更顺畅的集成。

Android Studio C++ 代码编辑器现在提供 clangd 和 clang-tidy,这二者都属于开源 LLVM extra 工具的一部分:

clangd 提供代码补全、在编辑器中编译错误消息以及 go-to-definition 导航功能。 clang-tidy 是一个 C++ linter 工具,具有可扩展的框架,用于诊断和修复典型编程错误。

在以前的版本中,Android Studio 用户可通过 NDK 使用 clang-tidy;此次变更后,Android Studio 不再依赖于 NDK 来提供 clang-tidy 功能。

local.properties 文件中的 ndk.dir 设置已废弃

您不应再在应用的 local.properties 文件中设置 ndk.dir 的值,以后的版本中将移除对这项 ndk.dir 设置的支持。Android Gradle 插件会默认设置 NDK 版本,但如果您需要特定版本的 NDK,可以在 build.gradle 中设置 android.ndkVersion。

如需详细了解如何设置 NDK,请参阅安装及配置 NDK 和 CMake。

IntelliJ IDEA 2019.3.3

核心 Android Studio IDE 已通过 2019.3.3 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。

如需详细了解版本 2019.3.3 累积的其他 IntelliJ 版本的改进,请参阅以下页面:

IntelliJ IDEA 2019.3 IntelliJ IDEA 2019.3.3 3.6(2020 年 2 月)

Android Studio 3.6 是一个主要版本,包含各种新功能和改进。

另外,我们还要感谢所有为此版本提供过帮助的社区贡献者。

3.6.3(2020 年 4 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

3.6.2(2020 年 3 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

3.6.1(2020 年 2 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

设计工具

此版本的 Android Studio 包含对多个设计工具的更新,其中包括布局编辑器和 Resource Manager。

设计编辑器中的拆分视图和缩放控件

拆分视图同时显示设计视图和文本视图

此版本包含对视觉设计编辑器的以下更新:

设计编辑器(如布局编辑器和 Navigation Editor)现在提供了 Split 视图,可让您同时查看界面的 Design 视图和 Code 视图。在编辑器窗口的右上角,现在提供三个按钮 视图图标,可用于在视图选项之间切换以启用相应视图:

如需启用拆分视图,请点击 Split 图标 拆分视图图标。 如需启用 XML 源代码视图,请点击 Source 图标 源代码视图图标。 如需启用 Design 视图,请点击 Design 图标 Design 视图图标

设计编辑器中的缩放和平移控件已移至编辑器窗口右下角的浮动面板。

如需了解详情,请参阅使用布局编辑器构建界面。

颜色选择器 Resource 标签页

为了帮助您在使用 XML 或设计工具中的颜色选择器时快速更新应用中的颜色资源值,Android Studio 现在会为您填充颜色资源值。

填充了颜色值的颜色选择器

Resource Manager

Resource Manager 包含以下更新:

Resource Manager 现在支持大多数资源类型。 在搜索资源时,Resource Manager 现在会显示所有项目模块中的搜索结果。以前,该工具只会返回已选定模块中的搜索结果。 借助过滤器按钮,您可以查看本地相关模块、外部库和 Android 框架中的资源。您还可以使用该过滤器来显示主题背景属性。 现在,您可以在导入过程中点击资源上方的文本框来重命名相应资源。

如需了解详情,请参阅使用 Resource Manager 管理应用的界面资源。

Android Gradle 插件的更新

最新版 Android Gradle 插件包含许多更新,其中包括针对构建速度的优化、对 Maven 发布插件的支持以及对视图绑定的支持。如需了解详情,请参阅完整的版本说明。

视图绑定

通过视图绑定,您能够为每个 XML 布局文件生成绑定类,从而更轻松地编写可与视图交互的代码。这些类包含对在相应布局中具有 ID 的所有视图的直接引用。

由于视图绑定取代了 findViewById(),因此可以消除因视图 ID 无效而引发 Null 指针异常的风险。

如需启用视图绑定,您需要使用 Android Gradle 插件 3.6.0 或更高版本,并在每个模块的 build.gradle 文件中添加以下代码:

Groovy android { buildFeatures.viewBinding = true } Kotlin android { buildFeatures.viewBinding = true } Apply Changes

您现在可以添加一个类,然后将该代码更改部署到正在运行的应用,方法是点击 Apply Code Changes 图标 Apply Code Changes 图标 或 Apply Changes and Restart Activity 图标 Apply Changes 图标

如需详细了解这两项操作之间的区别,请参阅 Apply Changes。

重构菜单选项以启用免安装应用支持

现在,您可以在创建应用项目后随时使基础模块支持免安装体验,具体操作步骤如下:

从菜单栏中依次选择 View > Tool Windows > Project,打开 Project 面板。 右键点击基础模块(通常名为 'app'),然后依次选择 Refactor > Enable Instant Apps Support。 在出现的对话框中,从下拉菜单中选择基础模块。 点击 OK。 注意:已移除 Create New Project 向导中用于使基础应用模块支持免安装体验的选项。

如需了解详情,请阅读 Google Play 免安装体验概览。

在 APK 分析器中对类和方法字节码进行去混淆处理

使用 APK 分析器检查 DEX 文件时,您可以对类和方法字节码进行去混淆处理,操作步骤如下所示:

从菜单栏中依次选择 Build > Analyze APK。 在出现的对话框中,转到您要检查的 APK 并选择该 APK。 点击 Open。 在 APK 分析器中,选择您要检查的 DEX 文件。 在 DEX 文件查看器中,为您要分析的 APK 加载 ProGuard 映射文件。 右键点击您要检查的类或方法,然后选择 Show bytecode。 原生工具

以下更新支持 Android Studio 中的原生 (C/C++) 开发。

Kotlin 支持

Android Studio 中的以下 NDK 功能以前在 Java 中受支持,现在也在 Kotlin 中受支持:

从 JNI 声明转到 C/C++ 中的对应实现函数。只需将鼠标悬停在托管源代码文件中的行号附近的 C 或 C++ 项标记上方,即可查看此映射。

自动为 JNI 声明创建存根实现函数。首先定义 JNI 声明,然后输入“jni”或 C/C++ 文件中的方法名称进行激活。

未使用的原生实现函数会在源代码中突出显示为警告。缺少实现的 JNI 声明也会突出显示为错误。

如果您重命名(重构)某个原生实现函数,所有对应的 JNI 声明都会更新。重命名 JNI 声明可更新原生实现函数。

对隐式绑定的 JNI 实现进行签名检查。

其他关于 JNI 的改进

Android Studio 中的代码编辑器现在支持更顺畅的 JNI 开发流程,包括改进后的类型提示、自动补全、检查和代码重构。

针对原生库重新加载 APK

当项目中的 APK 在 Android Studio 之外进行了更新时,您不再需要创建新项目。Android Studio 会检测 APK 中的更改,并为您提供重新导入 APK 的选项。

附加纯 Kotlin APK 源代码

现在,当您对预构建的 APK 进行性能剖析和调试时,可以附加纯 Kotlin 外部 APK 源代码。如需了解详情,请参阅附加 Kotlin/Java 源代码。

内存分析器中的泄漏检测

在内存分析器中分析堆转储时,您现在可以过滤 Android Studio 认为可能表明应用中的 Activity 和 Fragment 实例存在内存泄漏的分析数据。

过滤器显示的数据类型包括:

已销毁但仍被引用的 Activity 实例。 没有有效的 FragmentManager 但仍被引用的 Fragment 实例。

在某些情况(如以下情况)下,过滤器可能会产生误报:

已创建 Fragment,但尚未使用它。 正在缓存 Fragment,但它不是 FragmentTransaction 的一部分。

如需使用此功能,请先捕获堆转储或将堆转储文件导入 Android Studio。如需显示可能泄漏内存的 Fragment 和 Activity,请勾选内存分析器的堆转储窗格中的 Activity/Fragment Leaks 复选框。

内存分析器:内存泄漏检测

过滤堆转储以检测内存泄漏。

模拟器

Android Studio 3.6 可帮助您利用 Android 模拟器 29.2.7 及更高版本中包含的多项更新,如下所述。

改进了位置信息支持

Android 模拟器 29.2.7 及更高版本为模拟 GPS 坐标和路线信息提供了额外的支持。打开模拟器的 Extended controls 时,您会发现“Location”标签页下的选项现在位于 Single points 和 Routes 这两个标签页下。

Single points

在 Single points 标签页中,您可以使用 Google 地图 WebView 搜索地图注点,就像在手机或浏览器中使用 Google 地图一样。当您在地图上搜索或点击某个地点时,可以通过选择地图底部附近的 Save point 来保存该地点。您保存的所有地点都会列在 Extended controls 窗口的右侧。

如需将模拟器位置设置为您在地图上选择的地点,请点击 Extended controls 窗口右下角附近的 Set location 按钮。

模拟器“Extended Controls”窗口中的“Single points”标签页。

Routes

与 Single points 标签页类似,Routes 标签页提供的 Google 地图 WebView 可用于在两个或多个地点之间创建路线。如需创建并保存路线,请执行以下操作:

在地图视图中,使用文本字段搜索路线中的第一个目的地。 从搜索结果中选择地点。 选择 Navigate Google 地图中的导航按钮。 按钮。 从地图中选择路线的出发地。 (可选)点击 Add destination 可向路线添加其他地点。 点击地图视图中的 Save route 以保存路线。 指定路线的名称,然后点击 Save。

如需让模拟器模拟您保存的路线,请从 Saved routes 列表中选择路线,然后点击 Extended controls 窗口右下角附近的 Play route。如需停止模拟,请点击 Stop route。

模拟器“Extended Controls”窗口中的“Routes”标签页。.

如需继续让模拟器模拟指定的路线,请打开 Repeat playback 旁边的开关。如需更改模拟器模拟指定路线的速度,请从 Playback speed 下拉菜单中选择一个选项。

多显示屏支持

借助 Android 模拟器,您现在可以将应用部署到多个显示屏,这些显示屏支持自定义尺寸,而且可以帮助您测试支持多窗口模式和多显示屏的应用。在虚拟设备运行时,您最多可以添加两个额外的显示屏,如下所示:

打开 Extended controls,然后转到 Displays 标签页。 如需添加其他屏幕,请点击 Add secondary display。

从 Secondary displays 下的下拉菜单中,执行以下任一操作:

选择一个预设的宽高比 选择 custom,然后为自定义屏幕设置高度、宽度和 dpi。

(可选)点击 Add secondary display 可添加第三个屏幕。

点击 Apply changes,将指定的屏幕添加到正在运行的虚拟设备。

在模拟器“Extended Controls”窗口“Display”标签页中添加多个屏幕。

适合 Android Automotive OS 的新虚拟设备和项目模板

使用 Android Studio 创建新项目时,您现在可以从 Create New Project 向导的 Automotive 标签页中选择三个模板:No Activity、Media service 和 Messaging service。对于现有项目,您可以添加对 Android Automotive 设备的支持,方法是从菜单栏中依次选择 File > New > New Module,然后选择 Automotive Module。然后,Create New Module 向导会引导您使用其中一个 Android Automotive 项目模板创建新模块。

选择 Android Automotive 项目模板。

此外,您现在可以为 Android Automotive OS 设备创建 Android 虚拟设备 (AVD),方法是在 Virtual Device Configuration 向导中的Automotive 标签页下选择以下其中一个选项。

Polestar 2:创建一个可模拟 Polestar 2 音响主机的 AVD。 Automotive (1024p landscape):创建一个适用于通用 1024 x 768 像素 Android Automotive 音响主机的 AVD。

选择 Android Automotive 虚拟设备。

可恢复的 SDK 下载

使用 SDK 管理器下载 SDK 组件和工具时,Android Studio 现在允许您恢复已中断的下载(例如,由于网络问题),而不是从头开始重新下载。当互联网连接不可靠时,此增强功能对大量数据的下载(如 Android 模拟器或系统映像)特别有用。

此外,如果您在后台运行 SDK 下载任务,现在可以使用状态栏中的控件暂停或恢复下载。

状态栏中的后台下载任务,带有可让您暂停或恢复下载的新控件。

状态栏中的后台下载任务,带有可让您暂停或恢复下载的新控件。

Win32 已废弃

Windows 32 位版本的 Android Studio 自 2019 年 12 月之后不再提供更新,自 2020 年 12 月之后也将不再获得支持。您可以继续使用 Android Studio。但是,如需接收其他更新,请将工作站升级为 64 位版本的 Windows。

如需了解详情,请阅读关于 Windows 32 位弃用说明的博文。

用于优化 Gradle 同步时间的新选项

在之前的版本中,Android Studio 会在 Gradle Sync 执行期间检索所有 Gradle 任务的列表。对于大型项目来说,检索任务列表可能会导致同步时间较长。

如需提高 Gradle Sync 性能,请依次转到 File > Settings > Experimental,然后选择“Do not build Gradle task list during Gradle sync”。

启用此选项后,Android Studio 会在同步期间跳过构建任务列表,这样可使 Gradle Sync 更快地完成并提高界面响应能力。请注意,当 Android Studio 跳过构建任务列表时,Gradle 面板中的任务列表为空,并且构建文件中的任务名称自动补全功能不起作用。

用于切换 Gradle 离线模式的新位置

如需启用或停用 Gradle 离线模式,请先从菜单栏中依次选择 View > Tool Windows > Gradle。然后,在 Gradle 窗口顶部附近,点击 Toggle Offline Mode 图标 Gradle 面板中的 Gradle 离线按钮。

IntelliJ IDEA 2019.2

核心 Android Studio IDE 已通过 2019.2 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。

如需详细了解版本 2019.2 累积的其他 IntelliJ 版本的改进,请参阅以下页面:

IntelliJ IDEA 2019.1.3 IntelliJ IDEA 2019.1.2 IntelliJ IDEA 2019.1.1 社区贡献者

感谢所有帮助我们发现错误及通过其他方式改进 Android Studio 3.6 的社区贡献者。特别要感谢以下报告错误的人士:

Albert Lo Alexey Rott Andrea Leganza Benedikt Kolb César Puerta Curtis Kroetsch Damian Wieczorek Dan Lew David Burström Deepanshu Egor Andreevici Eli Graber Emin Kokalari Evan Tatarka Frantisek Nagy Greg Moens Hannes Achleitner Hans Petter Eide Henning Bunk Hugo Visser Igor Escodro Iñaki Villar Javentira Lienata Joe Rogers Kristoffer Danielsson Liran Barsisa Louis CAD Lóránt Pintér Łukasz Wasylkowski Luke Fielke Malvin Sutanto Masatoshi Kubode Mathew Winters Michael Bailey Michał Górny Mihai Neacsu Mike Scamell Monte Creasor Nelson Osacky Nelson Osacky Nick Firmani Nicklas Ansman Giertz Niclas Kron Nicolás Lichtmaier Niek Haarman Niels van Hove Niklas Baudy Renato Goncalves Roar Grønmo Ruslan Baratov Sinan Kozak Slawomir Czerwinski Stefan Wolf Stephen D'Amico Tao Wang Tomas Chladek Tomáš Procházka Tony Robalik Torbjørn Sørli Warren He Yenchi Lin Zac Sweers 3.5(2019 年 8 月)

Android Studio 3.5 是一个重大版本,同时也是 Project Marble 的项目成果。从 Android Studio 3.3 版本开始,Project Marble 项目涵盖了多个版本,着力改进 Android Studio 的三个主要方面:系统运行状况、功能完善以及错误修复。

如需详细了解这些更新以及其他 Project Marble 更新,请阅读 Android 开发者博文或以下几个部分。

另外,我们还要感谢所有为此版本提供过帮助的社区贡献者。

3.5.3(2019 年 12 月)

本次要更新修正了多个 bug 并进行了多项性能改进。

3.5.2(2019 年 11 月)

本次要更新修正了多个 bug 并进行了多项性能改进。 如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

3.5.1(2019 年 10 月)

本次要更新修正了多个 bug 并进行了多项性能改进。 如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

Project Marble:系统运行状况

本部分将介绍 Android Studio 3.5 中旨在改善系统运行状况的更改。

推荐内存设置

现在,如果 Android Studio 检测到您可以通过增加操作系统应该为 Android Studio 进程(例如核心 IDE、Gradle 守护程序和 Kotlin 守护程序)分配的 RAM 上限来提高性能,它会通知您。您可以通过点击通知中的操作链接来接受推荐设置,或者,您可以通过以下方式手动调整这些设置:依次选择 File > Settings(或者,在 macOS 上依次选择 Android Studio > Preferences),然后在 Appearance & Behavior > System Settings 下找到 Memory Settings 部分。如需了解详情,请参阅最大堆大小。

有关推荐内存设置的通知。

有关推荐内存设置的通知。

内存使用情况报告

Android Studio 中的内存问题有时难以重现和报告。为了解决此问题,您可以在 Android Studio 中从菜单栏依次点击 Help > Analyze Memory Usage,生成内存使用情况报告。执行此操作后,Android Studio 会在本地清理掉数据中的个人信息,然后询问您是否希望将数据发送给 Android Studio 团队以帮助识别内存问题的来源。如需了解详情,请参阅运行内存使用情况报告。

内存使用情况报告。

内存使用情况报告。

Windows:防病毒文件 I/O 优化

Android Studio 现在会自动检查某些项目目录是否已从实时防病毒扫描中排除。当能够进行调整以提高构建性能时,Android Studio 会通知您并提供有关如何优化防病毒配置的说明。如需了解详情,请参阅最大限度地降低防病毒软件对构建速度的影响。

Project Marble:功能完善

本部分将介绍 Android Studio 3.5 中旨在改进现有功能的更改。

Apply Changes

借助 Apply Changes,您可以将代码和资源更改推送给正在运行的应用,而无需重启应用(在某些情况下,甚至无需重启当前的 Activity)。Apply Changes 实现了一种全新的方法来保持应用的状态。与重写 APK 字节码的 Instant Run 不同,Apply Changes 会利用 Android 8.0(API 级别 26)或更高版本中支持的运行时插桩,实时地重新定义类。

如需了解详情,请参阅 Apply Changes。

Apply Changes 的工具栏按钮。

Apply Changes 的工具栏按钮。

应用部署流程

Android Studio 有一个新的下拉菜单,可让您快速选择要将应用部署到哪个设备。此菜单还包含一个新选项,可让您一次在多个设备上运行您的应用。

目标设备下拉菜单。

目标设备下拉菜单。

改进了 Gradle 同步和缓存检测功能

现在,Android Studio 能够更好地检测 Gradle 在减少其硬盘消耗时何时定期清除构建缓存。在以前的版本中,此状态会导致 Android Studio 报告缺少依赖项,并导致 Gradle 同步失败。现在,Android Studio 只需根据需要下载依赖项,以确保成功完成 Gradle 同步。

改进了构建错误输出

Build build 窗口图标 窗口现在针对以下构建过程改进了错误报告,例如提供指向文件的链接以及所报告错误对应的行号:

AAPT 编译和链接 R8 和 ProGuard Dexing 资源合并 XML 文件解析 Javac、Kotlinc 和 CMake 编译 项目升级

改善了更新体验,提供了更多信息和操作来帮助您更新 Android Studio 和 Android Gradle 插件。例如,有更多的同步和构建错误会包含帮助您在更新时减少错误的操作。

请务必注意,您可以独立于 Android Gradle 插件等其他组件更新 Android Studio。因此,您可以在新版本推出后安全地更新 Android Studio,并在以后更新其他组件。

布局编辑器

Android Studio 3.5 对布局可视化、管理和互动功能进行了多项改进。

使用 ConstraintLayout 时,Attributes 面板中新的 Constraints 部分会列出所选界面组件的约束关系。您可以从设计图面或约束列表中选择一个约束条件,突出显示这两个区域中的约束条件。

所选界面元素的约束关系。

所选界面元素的约束关系。

同样,您现在可以选择某个约束条件并按 Delete 键,删除约束条件。您还可以按住 Control 键(在 macOS 上,按住 Command)并点击约束条件定位点来删除约束条件。请注意,当您按住 Control 或 Command 键并将鼠标悬停在定位点上时,任何关联的约束条件都会变成红色,表示您可以点击以将其删除。

选择视图后,您可以点击 Attributes 面板的 Constraint Widget 部分的任何一个 + 图标来创建约束条件,如下图所示。当您创建新的约束条件时,布局编辑器现在会选择并突出显示该约束条件,为您刚刚添加的约束条件提供即时视觉反馈。

此动画演示了如何使用约束条件微件创建约束条件。

使用约束条件微件创建约束条件。

在创建约束条件时,布局编辑器现在只会显示您可以约束的符合条件的定位点。以前,布局编辑器会突出显示所有视图上的所有定位点,无论您是否可以约束它们。此外,蓝色叠加层现在会突出显示约束条件的目标。这种突出显示在尝试约束与另一个组件重叠的组件时特别有用。

此动画演示了如何在 Android Studio 3.4 中为重叠组件创建约束条件。

在 Android Studio 3.4 中为重叠组件创建约束条件。

此动画演示了如何在 Android Studio 3.5 中为重叠组件创建约束条件。

在 Android Studio 3.5 中为重叠组件创建约束条件。

除了上述更新之外,Android Studio 3.5 还包含布局编辑器方面的以下改进:

现在,您可以使用约束条件微件和默认外边距下拉菜单将尺寸资源用于外边距。 在布局编辑器工具栏中,确定设计图面大小的设备列表已经更新。此外,调整大小时的贴靠行为已得到改进,设计图面上的大小调整手柄现在始终可见。调整大小时,系统会显示可显示常见设备尺寸的新叠加层。 布局编辑器采用了新的配色方案,可改进组件、文本和约束条件之间的一致性并降低它们之间的对比度。 蓝图模式现在包含对某些文本未显示的组件的文本支持。

如需详细了解这些更改,请参阅 Android Studio Project Marble:布局编辑器。

数据绑定

除了为数据绑定添加增量注解处理支持之外,Android Studio 还改进了在 XML 中创建数据绑定表达式时智能编辑器的功能和性能。

此动画演示了 Android Studio 3.4 上的代码编辑器性能。

Android Studio 3.4 上的代码编辑器性能。

此动画演示了 Android Studio 3.5 上的代码编辑器性能。

改进了 Android Studio 3.5 上的代码编辑性能。

改进了对 C/C++ 项目的支持

Android Studio 3.5 包含一些更改,可以改进对 C/C++ 项目的支持。

针对单个变体同步的 Build Variants 面板改进

现在,您可以在 Build Variants 面板中同时指定活动构建变体和活动 ABI。此功能简化了每个模块的 build 配置,还可以提高 Gradle 同步性能。

如需了解详情,请参阅更改 build 变体。

Build Variants 面板按 ABI 显示单个变体选择。

Build Variants 面板,按 ABI 进行单个变体选择。

NDK 并排版本

现在,您可以并排使用 NDK 的多个版本。此功能可让您更灵活地配置项目,例如,如果项目在同一计算机上使用了不同版本的 NDK。

如果您的项目使用 Android Gradle 插件 3.5.0 或更高版本,您还可以指定项目中每个模块应使用的 NDK 版本。您可以使用此功能来创建可重现的 build,并缓解 NDK 版本与 Android Gradle 插件之间的不兼容性。

如需了解详情,请参阅安装及配置 NDK、CMake 和 LLDB。

支持 Chrome 操作系统

Android Studio 现已正式支持 Chrome 操作系统设备,例如 HP Chromebook x360 14、Acer Chromebook 13/Spin 13 以及其他设备,具体可参阅系统要求。如需开始使用,请在兼容的 Chrome 操作系统设备上下载 Android Studio,然后按照安装说明操作。

注意:Chrome 操作系统上的 Android Studio 目前仅支持将应用部署至已连接的硬件设备。如需了解详情,请参阅在硬件设备上运行应用。按条件分发功能模块

通过按条件分发,您可以针对将在应用安装过程中自动下载的功能模块设置特定的设备配置要求。例如,您可以配置包含增强现实 (AR) 功能的功能模块,其仅供支持 AR 功能的设备在安装应用时可用。

此分发机制目前支持根据以下设备配置来控制模块在应用安装时的下载情况:

设备硬件和软件功能,包括 OpenGL ES 版本 用户所在国家/地区 API 级别

如果设备不满足您指定的所有要求,相应模块便不会在应用安装时下载。不过,您的应用以后可以使用 Play Core 库来请求按需下载此模块。如需了解详情,请阅读配置按条件分发。

IntelliJ IDEA 2019.1

核心 Android Studio IDE 已通过 2019.1 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进,例如主题背景自定义。

Android Studio 附带的最后一个 IntelliJ 版本为 2018.3.4。如需详细了解此版本 Android Studio 累积的其他 IntelliJ 版本的改进,请参阅以下错误修复更新:

IntelliJ IDEA 2018.3.6 IntelliJ IDEA 2018.3.5 Android Gradle 插件 3.5.0 更新

如需了解 Android Gradle 插件 3.5.0 中的新变化,例如针对增量注解处理和可缓存单元测试的改进支持,请参阅其版本说明。

社区贡献者

感谢所有帮助我们发现错误及通过其他方式改进 Android Studio 3.5 的社区贡献者。特别要感谢以下报告 P0 和 P1 错误的人士:

Aaron He Andreas Dybdahl Andrei Vădan Andrew Hughes Andrey Mischenko Andrii Seredenko Benoît 'BoD' Lubek Berkeli Alashov Bram Stolk Charles Anderson Curtis Kroetsch David Burström DeweyReed Dmitriy Dolovov Emin Kokalari Evan Tatarka Evgeny Brazgin George Kropotkin Ido Feins Jakub Banaszewski Jean-Michel Fayard John Rodriguez Kamil Dudek Kenji Abe Liran Barsisa Louis CAD Luke Fielke Lóránt Pintér Marcin Dawid Mario O Mauricio Vignale Michael Bailey Miguel Angel Rossi Sanahuja Niklas Baudy Noah Andrews Oleksandr Zakrevskyi Peter Vegh Rishabh harit Roar Grønmo Said Tahsin Dane Shayan Sabahi Slawomir Czerwinski Stephen Yu Steven Schoen Tolriq Tony Robalik Uli Bubenheimer Vixb Xue Yi Cheng 3.4(2019 年 4 月)

Android Studio 3.4 是一个主要版本,包含各种新功能和改进。

3.4.2(2019 年 7 月)

本次要更新修正了多个 bug 并进行了多项性能改进。 如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

3.4.1(2019 年 5 月)

本次要更新修正了多个 bug 并进行了多项性能改进。 如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

3.4.0 已知问题

将应用部署到搭载 Android Q Beta 版的设备时,系统会停用性能分析功能。

使用数据绑定库时,LiveDataListener.onChanged() 可能会因 NPE 而失败。针对此问题的修复程序将包含在 Android Studio 3.4.1 中,并且已在 Android Studio 3.5 的最新预览版中提供。(请参阅问题 #122066788) IntelliJ IDEA 2018.3.4

核心 Android Studio IDE 已通过 2018.3.4 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。

Android Gradle 插件 3.4.0 更新

如需了解 Android Gradle 插件 3.4.0 中的新变化,请参阅其版本说明。

新的 Project Structure 对话框

新的 Project Structure 对话框 (PSD) 可让您更轻松地更新依赖项并配置项目的不同方面,例如模块、构建变体、签名配置和构建变量。

您可以从菜单栏中依次选择 File > Project Structure 来打开 PSD,也可以通过按 Ctrl+Shift+Alt+S(在 Windows 和 Linux 上)或 Command+;(分号,在 macOS 上)来打开 PSD。您可以在下面找到有关 PSD 的一些新部分和更新部分的说明。

变量

使用 PSD 新增的变量部分,您可以创建和管理构建变量,例如用于确保依赖项的版本号在项目中保持一致的构建变量。

快速查看和修改项目的 Gradle 构建脚本中已有的构建变量。 直接从 PSD 添加新的项目级或模块级构建变量。 注意:如果您的现有 build 配置文件通过复杂的 Groovy 脚本分配值,可能就无法通过 PSD 修改这些值。此外,您无法使用 PSD 修改用 Kotlin 编写的 build 文件。 模块

配置应用于现有模块中所有构建变体的属性,或者从 Modules 部分向项目添加新模块。例如,您可以在此处配置 defaultConfig 属性或管理签名配置。

依赖项

检查并以图形方式呈现项目依赖项图中的每个依赖项(如 Gradle 在项目同步时所解析的那样),具体步骤如下:

在 PSD 的左侧窗格中,选择 Dependencies。 在 Modules 窗格中,选择您想要检查已解析的依赖项的模块。

在 PSD 的右侧,打开 Resolved Dependencies 窗格,如下所示。

您还可以快速搜索依赖项并将其添加到项目中,具体方法是:首先从 PSD 的 Dependencies 部分选择一个模块,点击 Declared Dependencies 部分中的 (+) 按钮,然后选择要添加的依赖项类型。

根据您选择的依赖项的类型,您应该会看到一个类似如下的对话框,它可以帮助您向模块中添加依赖项。

构建变体

在 PSD 的这一部分中,为项目中的每个模块创建和配置构建变体和产品变种。您可以添加清单占位符,添加 ProGuard 文件以及分配签名密钥等。

建议

您可以在 Suggestions 部分中查看为项目依赖项和构建变量建议的更新,如下图所示。

新的 Resource Manager

Resource Manager 是一个新的工具窗口,用于在应用中导入、创建、管理和使用资源。您可以从菜单栏中依次选择 View > Tool Windows > Resource Manager 来打开该工具窗口。通过 Resource Manager,您可以执行以下操作:

直观地呈现资源:您可以预览可绘制资源、颜色和布局,以快速找到所需的资源。 批量导入:您可以一次导入多项可绘制资源,具体方法是:将这些资源拖放到 Resource Manager 工具窗口中或使用 Import drawables 向导。如需访问向导,请选择工具窗口左上角的 (+) 按钮,然后从下拉菜单中选择 Import Drawables。 将 SVG 转换为 VectorDrawable 对象:您可以使用 Import Drawables 向导将 SVG 图片转换为 VectorDrawable 对象。 拖放资源:在 Resource Manager 工具窗口中,您可以将可绘制资源拖放到 Layout Editor 的设计视图和 XML 视图上。 查看备用版本:现在,您可以在 Tool 窗口中双击某项资源来查看该资源的备用版本。此视图会显示您创建的不同版本以及包含的限定符。 平铺和列表视图:您可以在工具窗口中更改视图,以便以不同的排列方式显示您的资源。

如需了解详情,请阅读有关如何管理应用资源的指南。

在对 APK 进行性能分析和调试时检查 build ID

当您为 APK 内的 .so 共享库提供调试符号文件时,Android Studio 会验证所提供的符号文件的 build ID 是否与 APK 内 .so 库的 build ID 匹配。

如果您通过 build ID 构建 APK 中的原生库,Android Studio 会检查符号文件中的 build ID 是否与原生库中的 build ID 匹配,如果不匹配,会拒绝该符号文件。如果您不是使用 build ID 构建的原生库,提供不正确的符号文件可能会导致调试出现问题。

R8 默认处于启用状态

R8 将脱糖、压缩、混淆、优化和 dex 处理整合到一个步骤中,从而显著提高了构建性能。R8 是在 Android Gradle 插件 3.3.0 中引入的,对于使用插件 3.4.0 及更高版本的应用和 Android 库项目,R8 现已默认处于启用状态。

下图是 R8 引入之前的编译流程的简要概览。

在 R8 之前,ProGuard 是一个与 dex 处理和脱糖不同的编译步骤。

现在,有了 R8,可以在一个步骤中完成脱糖、压缩、混淆、优化和 dex 处理 (D8),如下图所示。

有了 R8,可以在一个编译步骤中执行脱糖、压缩、混淆、优化和 dex 处理。

请注意,R8 旨在与您现有的 ProGuard 规则配合使用,因此您可能不需要采取任何操作即可从 R8 中受益。但是,相对专为 Android 项目设计的 ProGuard 而言,R8 是一项不同的技术,因此压缩和优化可能会导致移除 ProGuard 可能没有的代码。因此,在这种情况(尽管不太可能发生)下,您可能需要添加其他规则,以在构建输出中保留这些代码。

如果您在使用 R8 时遇到问题,请阅读 R8 兼容性常见问题解答一文,以检查是否有针对您的问题的解决方案。如果没有记录的解决方案,请报告错误。您可以停用 R8,只需将以下其中一行代码添加到项目的 gradle.properties 文件即可:

# Disables R8 for Android Library modules only. android.enableR8.libraries = false # Disables R8 for all modules. android.enableR8 = false 注意:对于指定 build 类型,如果您在应用模块的 build.gradle 文件中将 useProguard 设为 false,Android Gradle 插件会使用 R8 压缩该 build 类型的应用代码,无论您是否在项目的 gradle.properties 文件中停用 R8 都是如此。 Navigation Editor 现在支持所有参数类型

现在,导航组件支持的所有参数类型都在 Navigation Editor 中得到支持。如需详细了解支持的类型,请参阅在平台之间传递数据。

布局编辑器方面的改进

布局编辑器中的 Attributes 窗格已经简化为单个页面,您可以展开该页面中的各部分,查看可配置的属性。Attributes 窗格还包含以下更新:

新的 Declared Attributes 部分列出了布局文件指定的属性,并且可让您快速添加新属性。 现在,Attributes 窗格还会在每个属性旁边显示指示符,当该属性的值是资源引用时,这些指示符是非中空的 ,在其他情况下则是中空的 。 现在,系统会突出显示带有错误或警告的属性。红色表示错误(例如,使用无效布局值时),橙色表示警告(例如,使用硬编码值时)。 用于快速导入依赖项的新 intent 操作

如果您开始在代码中使用某些 Jetpack 和 Firebase 类,新的 intent 操作会建议将所需的 Gradle 库依赖项添加到项目中(如果您尚未这样做)。例如,如果您在未先导入所需的 android.arch.work:work-runtime 依赖项的情况下引用 WorkManager 类,intent 操作可让您只需点击一次即可轻松实现此目的,如下所示。

特别是,由于 Jetpack 将支持库重新打包为易于管理和更新的独立软件包,因此该 intent 操作可帮助您快速添加您想要使用的 Jetpack 组件所需的依赖项。

3.3(2019 年 1 月)

Android Studio 3.3 是一个主要版本,包含各种新功能和改进。

3.3.2(2019 年 3 月)

本次要更新修正了多个 bug 并进行了多项性能改进。 如需查看重要 bug 修复列表,请阅读版本更新博客上的相关博文。

3.3.1(2019 年 2 月)

本次要更新修正了多个 bug 并进行了多项性能改进。

IntelliJ IDEA 2018.2.2

核心 Android Studio IDE 已通过 2018.2.2 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。

Android Gradle 插件更新

如需了解 Android Gradle 插件中的新变化,请参阅其版本说明。

Navigation Editor

借助 Navigation Editor,您可以使用导航架构组件快速直观呈现导航内容并将其构建到您的应用中。

如需了解详情,请参阅使用导航架构组件实现导航。

删除未使用的 Android Studio 目录

当您首次运行 Android Studio 的主要版本时,它会查找包含缓存、设置、索引和日志的目录,以确定找不到对应安装内容的 Android Studio 的版本。然后,Delete Unused Android Studio Directories 对话框中会显示这些未使用目录的位置、大小和最后修改时间,并提供删除它们的选项。

Android Studio 考虑删除的目录如下所示:

Linux:~/.AndroidStudio[Preview]_X.Y_ Mac:~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]_X.Y_ Windows:%USER%\.AndroidStudio[Preview]_X.Y_

Lint 方面的改进

从 Gradle 调用时,Lint 的运行速度明显加快 - 对于较大的项目,Lint 的运行速度最多可提高四倍。

“Create New Project”向导

Create New Project 向导具有全新外观,并且包含有助于简化新 Android Studio 项目创建过程的更新。

如需了解详情,请参阅创建项目。

分析器更新

Android Studio 3.3 包含对多个分析器的更新。

改进了性能

根据用户反馈,使用性能剖析器时的渲染性能得到了极大的改善。请继续提供反馈,特别是在您依旧看到性能问题时。

内存分析器内存分配跟踪选项

为了在进行性能分析时提高应用性能,内存分析器现在会默认定期对内存分配进行采样。如果需要,您可以在搭载 Android 8.0(API 级别 26)或更高版本的设备上进行测试时使用 Allocation Tracking 下拉列表来更改此行为。

您可以从 Allocation Tracking 下拉列表中选择以下模式:

Full:捕获所有对象内存分配。请注意,如果您有一个分配了大量对象的应用,可能会在进行性能剖析时遇到重大性能问题。 Sampled:捕获对象内存分配的周期性采样。这是默认行为,在进行性能剖析时对应用性能的影响较小。对于在短时间内分配大量对象的应用,您可能会遇到一些性能问题。

Off:关闭内存分配。如果未选择此选项,系统会在记录 CPU 时自动启用此模式,然后在记录完成后恢复先前的设置。您可以在 CPU 记录配置对话框中更改此行为。

跟踪会同时影响 Java 对象和 JNI 引用。

检查帧渲染数据

在 CPU 性能分析器中,您现在可以检查 Java 应用在主界面线程和 RenderThread 上渲染每个帧所需的时间。在调查会导致界面卡顿和帧速率偏低的瓶颈时,此数据可能很有用。例如,每个用时超过 16 毫秒才能保持顺畅帧速率的帧都以红色显示。

如需查看帧渲染数据,请使用使您可以跟踪系统调用的配置来记录跟踪。记录跟踪后,在 FRAMES 部分下查找沿记录时间轴的每个帧的相关信息,如下所示。

如需详细了解如何调查和解决帧速率问题,请阅读渲染速度缓慢。

事件时间轴中的 Fragment

事件时间轴现在会显示附加和分离 Fragment 的时间。此外,将鼠标悬停在某个 Fragment 上时,工具提示会显示 Fragment 状态。

在网络性能分析器中查看连接负载的格式化文本

以前,网络性能剖析器仅显示来自连接负载的原始文本。Android Studio 3.3 现在会默认格式化某些文本类型,包括 JSON、XML 和 HTML。在 Response 和 Request 标签页中,点击 View Parsed 链接可显示格式化文本,点击 View Source 链接可显示原始文本。

如需了解详情,请参阅利用网络性能剖析器检查网络流量。

自动下载 SDK 组件

当您的项目需要 SDK 平台、NDK 或 CMake 中的 SDK 组件时,Gradle 现在会尝试自动下载所需的软件包,前提是您之前已使用 SDK 管理器接受了所有相关的许可协议。

如需了解详情,请参阅使用 Gradle 自动下载缺失的软件包。

对 Clang-Tidy 的支持

Android Studio 现在支持使用 Clang-Tidy 对包含原生代码的项目进行静态代码分析。如需启用对 Clang-Tidy 的支持,请将 NDK 更新为 r18 或更高版本。

然后,您可以启用或重新启用检查,方法是打开 Settings 或 Preferences 对话框,然后依次转到 Editor > Inspections > C/C++ > General > Clang-Tidy。在 Settings 或 Preferences 对话框中选择此检查时,您还可以在最右侧面板的 Option 部分下看到已启用和停用的 Clang-Tidy 检查列表。如需启用其他检查,请将其添加到列表中,然后点击 Apply。

如需使用其他选项配置 Clang-Tidy,请点击 Configure Clang-Tidy Checks Options,然后在随即打开的对话框中添加这些选项。

移除了针对 C++ 自定义的选项

已从 Customize C++ Support 对话框中移除以下选项:

Exceptions Support (-fexceptions) Runtime Type Information Support (-ftti)

系统已对通过 Android Studio 创建的所有项目启用相应行为。

CMake 版本 3.10.2

SDK 管理器现在包含 CMake 版本 3.10.2。请注意,Gradle 默认仍会使用版本 3.6.0。

如需为 Gradle 指定要使用的 CMake 版本,请将以下内容添加到模块的 build.gradle 文件中:

android { ... externalNativeBuild { cmake { ... version "3.10.2" } } }

如需详细了解如何在 build.gradle 中配置 CMake,请参阅手动配置 Gradle。

用于指定最低 CMake 版本的新“+”语法

在主模块的 build.gradle 文件中指定 CMake 的版本时,您现在可以附加“+”以匹配 CMake cmake_minimum_required() 命令的行为。

警告:不建议将“+”语法与其他构建依赖项搭配使用,因为动态依赖项可能会导致意外的版本更新和难以解析版本差异。 Android App Bundle 现在支持免安装应用

Android Studio 现在允许您构建 Android App Bundle,并且完全支持 Google Play 免安装体验。换句话说,您现在可以构建和部署单个 Android Studio 项目中的已安装应用和免安装体验,并将其纳入单个 Android App Bundle 中。

如果您要使用 Create New Project 对话框创建新的 Android Studio 项目,请确保选中 Configure your project > This project will support instant apps 旁边的复选框。然后,Android Studio 会像往常一样创建新的应用项目,但会在清单中包含以下属性,以便向应用的基本模块添加免安装应用支持:

...

然后,您可以创建支持免安装体验的功能模块,方法是从菜单栏中依次选择 File > New > New Module,然后从 Create New Module 对话框中选择 Instant Dynamic Feature Module。请注意,创建此模块也会使应用的基本模块支持免安装体验。

如需将应用作为免安装应用部署到本地设备,请修改您的运行配置,然后选中 General > Deploy as instant app 旁边的复选框。

单变体项目同步

将项目与构建配置同步,是让 Android Studio 了解项目结构的重要步骤。不过,对于大型项目来说,此过程可能非常耗时。如果您的项目使用了多个构建变体,那么您现在可以限定仅同步当前所选的变体,从而优化项目同步操作。

您需要结合使用 Android Studio 3.3 或更高版本与 Android Gradle 插件 3.3.0 或更高版本,才能启用此优化。满足这些要求后,Android Studio 会在您同步项目时提示您启用此优化。默认情况下,新项目也会启用此优化。

如需手动启用此优化功能,请依次点击 File > Settings > Experimental > Gradle(在 Mac 上,请依次点击 Android Studio > Preferences > Experimental > Gradle),然后选中 Only sync the active variant 复选框。

注意:此优化目前支持仅包含 Java 编程语言的项目。例如,如果 Android Studio 在您的项目中检测到 Kotlin 代码或 C++ 代码,那么 Android Studio 不会自动启用此优化,您也不应手动启用此优化。

如需了解详情,请参阅启用单变体项目同步。

提供快速反馈

如果您已选择分享使用情况统计信息以帮助改进 Android Studio,您会在 Android Studio 窗口底部的状态栏中看到以下两个新图标:

只需点击最能代表您目前使用 Android Studio 的体验的图标来提供反馈即可。在您执行此操作后,Android Studio 会发送使用情况统计信息,让 Android Studio 团队能够更好地了解您的感受。在某些情况下,例如,当您表示在使用 Android Studio 时有不好的体验时,您将有机会提供进一步的反馈。

如果尚未启用分享使用情况统计信息,您可以通过以下步骤予以启用:打开 Settings 对话框(在 Mac 上,则打开 Preferences),依次转到 Appearance & Behavior > System Settings > Data Sharing,然后选中 Send usage statistics to Google。

3.2(2018 年 9 月)

Android Studio 3.2 是一个主要版本,包含各种新功能和改进。

3.2.1(2018 年 10 月)

这项 Android Studio 3.2 更新进行了下列更改和修复:

捆绑的 Kotlin 版本现为 1.2.71。 默认的构建工具版本现为 28.0.3。 在导航库中,参数类型已从 type 重命名为 argType。 下列错误已得到修复: 使用数据绑定库时,变量名称带有下划线会导致编译错误。 CMake 会导致 IntelliSense 和其他 CLion 功能失败。 添加 SliceProvider 会导致在未使用 androidx.* 库的项目出现编译错误。 一些 Kotlin 单元测试没有运行。 数据绑定问题会导致 PsiInvalidElementAccessException。 元素有时会导致布局编辑器崩溃。

3.2.0 已知问题

注意:以下问题已在 Android Studio 3.2.1 中得到解决

我们强烈建议您不要使用 Kotlin 版本 1.2.70。

Kotlin 版本 1.2.61 修复了一个可能会导致 Android Studio 挂起的错误,但 Kotlin 1.2.70 不包含此修复

但是,Kotlin 版本 1.2.71 及更高版本确实包含此修复。

虽然您通常不需要指定构建工具版本,但在使用 Android Gradle 插件 3.2.0 时(renderscriptSupportModeEnabled 设为 true),您需要在每个模块的 build.gradle 文件中包含以下内容:

android.buildToolsVersion "28.0.3"

什么是全新的 Assistant

全新的 Assistant 会通知您 Android Studio 中的最新变化。

当您在全新安装或更新后启动 Android Studio 时,如果系统检测到有新信息需要显示,Assistant 便会打开。您也可以依次选择 Help > What's new in Android Studio 来打开 Assistant。

Android Jetpack

Android Jetpack 提供各种组件、工具和指南以消除重复性任务,来帮助加速 Android 开发,让您能够更快速、更轻松地构建高质量、可测试的应用。Android Studio 进行了以下更新以支持 Jetpack。如需了解详情,请参阅 Jetpack 文档。

Navigation Editor

新的 Navigation Editor 与 Android Jetpack 的导航组件集成,提供了用于创建应用导航结构的图形视图。Navigation Editor 简化了应用内目标之间的导航设计和实现。

在 Android Studio 3.2 中,Navigation Editor 是一项实验性功能。如需启用 Navigation Editor,请依次点击 File > Settings(在 Mac 上,则依次点击 Android Studio > Preferences),选择左侧窗格中的 Experimental 类别,选中 Enable Navigation Editor 旁边的复选框,然后重启 Android Studio。

如需了解详情,请参阅 Navigation Editor 文档。

AndroidX 迁移

作为 Jetpack 的一部分,我们正在将 Android 支持库迁移到使用 androidx 命名空间的全新 Android 扩展库。如需了解详情,请参阅 AndroidX 概览。

Android Studio 3.2 利用一项新的迁移功能来帮助您完成此过程。

如需将现有项目迁移到 AndroidX,请依次选择 Refactor > Migrate to AndroidX。如果您有任何尚未迁移到 AndroidX 命名空间的 Maven 依赖项,Android Studio 构建系统还会自动转换这些项目依赖项。

Android Gradle 插件提供以下可在 gradle.properties 文件中设置的全局标记:

android.useAndroidX:当设为 true 时,此标记表示您想立即开始使用 AndroidX。如果缺少此标记,Android Studio 会假定此标记已设为 false。 android.enableJetifier:设为 true 时,此标记表示您希望获得工具支持(通过 Android Gradle 插件),以自动转换现有的第三方库,就像它们是为 AndroidX 而编写的一样。如果缺少此标记,Android Studio 会假定此标记已设为 false。

当您使用 Migrate to AndroidX 命令时,这两个标记都会设为 true。

如果您想立即开始使用 AndroidX 库,而无需转换现有的第三方库,您可以将 android.useAndroidX 标记设为 true 并将 android.enableJetifier 标记设为 false。

Android App Bundle

Android App Bundle 是一种全新的上传格式,其中包含您应用的所有经过编译的代码和资源,但 APK 生成及签名则延后到 Google Play 商店来完成。

Google Play 新推出的应用服务模式会使用您的 App Bundle 针对每位用户的设备配置生成并提供经过优化的 APK,因此他们只需下载运行您的应用所需的代码和资源。您无需再构建、签署和管理多个 APK,而用户也可以下载更小、更优化的下载文件包。

此外,您还可以向应用项目添加功能模块,并将其包含在 App Bundle 中。然后,用户就可以按需下载和安装应用的功能。

如需构建软件包,请依次选择 Build > Build Bundle(s)/APK(s) > Build Bundle(s)。

如需了解详情,包括与构建和分析 Android App Bundle 有关的说明,请参阅 Android App Bundle。

布局编辑器中的示例数据

许多 Android 布局都包含运行时数据,而这可能导致在应用开发的设计阶段难以以图形的方式呈现布局的外观和风格。现在,您可以轻松地在填充有示例数据的布局编辑器中查看视图预览。在添加视图时, 按钮会显示在设计窗口中的视图下方。点击此按钮即可设置设计时视图属性。您可以从各种各样的示例数据模板中选择,并指定用于填充相应视图的示例项目的数量。

如需尝试使用示例数据,请将 RecyclerView 添加到新布局,点击视图下方的设计时属性按钮 ,然后从示例数据模板的轮播界面中选择一个选项。

切片

“切片”提供了一种全新的方式,让您能够将应用的部分功能嵌入到 Android 上的其他界面中。例如,借助切片,您可以在 Google 搜索建议中显示应用功能和内容。

Android Studio 3.2 不但包含一个内置模板,可以帮助您使用新的切片提供商 API 来扩展您的应用,而且还包含新的 Lint 检查功能,可以确保您在构建切片时遵循最佳做法。

如需开始使用,请右键点击一个项目文件夹,然后依次选择 New > Other > Slice Provider。

如需了解详情,包括如何测试切片交互,请参阅切片入门指南。

Kotlin 1.2.61

Android Studio 3.2 捆绑了 Kotlin 1.2.61,并且新的 Android SDK 可与 Kotlin 更好地集成。如需了解详情,请参阅 Android 开发者博客。

IntelliJ IDEA 2018.1.6

核心 Android Studio IDE 已通过 2018.1.6 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。

Android Profiler

请试用 Android Studio 3.2 中的以下全新 Android Profiler 功能。

会话

您现在可以将性能剖析器数据保存为会话,以便日后重新访问和检查。性能剖析器会一直保存您的会话数据,直到您重启 Android Studio 为止。

在您记录方法跟踪或捕获堆转储后,Android Studio 会将相应数据(以及您应用的网络活动)作为单独的条目添加到当前会话,并且您可以轻松地在记录之间来回切换以比较数据。

System Trace

在 CPU 性能分析器中,选择新的 System Trace 配置即可检查设备的系统 CPU 和线程活动。此跟踪配置是基于 systrace 构建的,并且可用于调查系统级问题,例如界面卡顿。

使用此跟踪配置时,您可以使用原生跟踪 API 检测 C/C++ 代码或使用 Trace 类检测 Java 代码,从而直观地标记性能剖析器时间轴上的重要代码例程。

在内存分析器中检查 JNI 引用

如果您将应用部署到搭载 Android 8.0(API 级别 26)或更高版本的设备,那么您现在可以使用内存分析器来检查应用 JNI 代码的内存分配情况。

在您的应用运行时,选择您想检查的一部分时间轴,然后从类列表上方的下拉菜单中选择 JNI heap,具体如下所示。然后,您可以像往常一样检查堆中的对象,并双击 Allocation Call Stack 标签页中的对象,以查看 JNI 引用已分配并发布到了代码中的哪些位置。

导入、导出和检查内存堆转储文件

您现在可以导入、导出和检查使用内存分析器创建的 .hprof 内存堆转储文件。

如需导入 .hprof 文件,请在性能剖析器的 Sessions 窗格中点击 Start new profiler session,然后选择 Load from file。然后,您可以像在任何其他堆转储中一样检查内存分析器中的数据。

如需保存堆转储数据以供日后查看,请使用 Sessions 窗格中 Heap Dump 条目右侧的 Export Heap Dump 按钮。在随即显示的 Export As 对话框中,使用 .hprof 文件扩展名保存文件。

在应用启动过程中记录 CPU 活动

您可以在应用启动过程中记录 CPU 活动,具体操作如下所示:

从主菜单中依次选择 Run > Edit Configurations。 在所需运行配置的 Profiling 标签页下,选中 Start recording a method trace on startup 旁边的方框。 从下拉菜单中选择要使用的 CPU 记录配置。 依次选择 Run > Profile,将应用部署到搭载 Android 8.0(API 级别 26)或更高版本的设备。 导出 CPU 跟踪记录

在您使用 CPU 性能分析器记录 CPU 活动后,您可以将相应数据导出为 .trace 文件,以便与他人共享或日后进行检查。

如需在记录 CPU 活动后导出轨迹,请执行以下操作:

右键点击您想从 CPU 时间轴中导出的记录。 从下拉菜单中选择 Export trace。 转到您想保存文件的位置,然后点击 Save。 导入和检查 CPU 跟踪文件

您现在可以导入和检查使用 Debug API 或 CPU 性能分析器创建的 .trace 文件。(目前,您无法导入系统跟踪记录)。

如需导入轨迹文件,请在性能分析器的 Sessions 窗格中点击 Start new profiler session 图标 ,然后选择 Load from file。然后,您可以按照与往常相似的方式检查 CPU 性能分析器中的数据,但以下情况例外:

CPU 活动未显示在 CPU 时间轴上。 线程 Activity 时间轴仅显示可在哪里获取各线程的轨迹数据,并不显示实际线程状态(例如正在运行、等待中或休眠中)。 使用 Debug API 记录 CPU 活动

现在,您可以使用 Debug API 设置您的应用,以便开始和停止在 CPU 性能分析器中记录 CPU 活动。在您将应用部署到某个设备后,性能剖析器会在您的应用调用 startMethodTracing(String tracePath) 时自动开始记录 CPU 活动,并会在您的应用调用 stopMethodTracing() 时停止记录。在记录使用此 API 触发的 CPU 活动时,CPU 性能分析器会将 Debug API 显示为所选的 CPU 记录配置。

能耗性能分析器

能耗性能剖析器能够以图形方式显示您的应用的估算耗电量,以及影响耗电量的系统事件(例如唤醒锁定、闹钟和作业)。

当您在搭载 Android 8.0 (API 26) 或更高版本的关联设备或 Android 模拟器中运行您的应用时,能耗性能剖析器便会显示为 Profiler 窗口底部的新行。

点击 Energy 行即可将能耗性能分析器视图最大化。将鼠标指针放在时间轴中的条形上方,即可查看 CPU、网络和位置信息 (GPS) 资源的耗电量明细,以及相关系统事件。

影响耗电量的系统事件会在 Energy 时间轴下方的 System 时间轴中指明。当您在 Energy 时间轴中选择时间范围时,事件窗格中会显示指定时间范围内的系统事件的详细信息。

查勘定损查看系统事件(如唤醒锁定)的调用堆栈和其他详细信息,请在事件窗格中选择该事件。如需转到负责系统事件的代码,请双击调用堆栈中的相应条目。

Lint 检查

Android Studio 3.2 包含许多用于 Lint 检查的新功能和经过改进的功能。

新的 Lint 检查功能可帮助您查找和识别常见的代码问题,包括与潜在易用性问题有关的警告,以及与潜在安全漏洞有关的高优先级错误。

针对 Java/Kotlin 互操作性的 Lint 检查

为确保 Java 代码与 Kotlin 代码之间的良好互操作性,新的 Lint 检查会强制执行 Kotlin 互操作指南中所述的最佳做法。这些检查的示例包括查找是否存在可为 null 性注解、是否使用了 Kotlin 硬关键字、是否将 lambda 参数放置在最后等。

如需启用这些检查,请依次点击 File > Settings(在 Mac 上,则依次点击 Android Studio > Preferences)打开 Settings 对话框,依次转到 Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability 部分,然后选择要启用的规则。

如需对命令行构建启用这些检查,请在 build.gradle 文件中添加以下内容:

android { lintOptions { check 'Interoperability' } } 针对切片的 Lint 检查

针对切片的新 Lint 检查可以确保您构建切片的方式正确无误。例如,如果您没有将主要操作分配到某个切片,Lint 检查就会向您发出警告。

新的 Gradle 目标

借助新的 lintFix Gradle 任务,您可以将 Lint 检查建议的所有安全修正直接应用于源代码。会建议您应用安全修正的 Lint 检查示例如下:SyntheticAccessor。

元数据更新

各种元数据(例如服务投射检查)已针对 Lint 检查进行更新,以便配合 Android 9(API 级别 28)使用。

如果在新变体上运行 lint,会收到警告

Lint 现在会记录与基准一起记录的变体和版本,如果您在与基准一起创建的变体以外的其他变体上运行 Lint,Lint 就会向您发出警告。

改进了现有 Lint 检查

Android Studio 3.2 包含对现有 Lint 检查的许多改进。例如,资源周期检查现在适用于其他资源类型,并且翻译检测器现在可以在编辑器中实时查找缺失的翻译。

更容易找到问题 ID

问题 ID 现在会显示在更多位置,其中包括 Inspection Results 窗口,让您可以更轻松地找到所需信息,以便通过 build.gradle 中的 lintOptions 启用或停用特定检查。

如需了解详情,请参阅通过 Gradle 配置 Lint 选项。

Data Binding V2

Data Binding V2 现已默认处于启用状态,并与 V1 兼容。这意味着,如果您拥有使用 V1 编译的库依赖项,则可以将其用于使用 Data Binding V2 的项目。不过请注意,使用 V1 的项目无法利用使用 V2 编译的依赖项。

D8 脱糖

在 Android Studio 3.1 中,我们已将脱糖步骤作为一项实验性功能集成到 D8 工具中,这能够减少总体构建时间。使用 D8 进行脱糖的功能在 Android Studio 3.2 中默认处于开启状态。

新的代码缩减器

R8 是一种用于执行代码压缩和混淆的新工具,替代了 ProGuard。您只需将以下内容添加到项目的 gradle.properties 文件中,即可开始使用 R8 的预览版本:

android.enableR8 = true 更改了针对多 APK 的默认 ABI

在构建分别以不同 ABI 为目标的多个 APK 时,默认情况下,插件不会再针对以下 ABI 生成 APK:mips、mips64 和 armeabi。

如果您想构建以上述 ABI 为目标的 APK,必须使用 NDK r16b 或更低版本,并在 build.gradle 文件中指定这些 ABI,如下所示:

Groovy splits { abi { include 'armeabi', 'mips', 'mips64' ... } } Kotlin splits { abi { include("armeabi", "mips", "mips64") ... } } 注意:此行为更改也包含在 Android Studio 3.1 RC1 及更高版本中。 改进了针对 CMake 构建文件的编辑器功能

如果您使用 CMake 将 C 和 C++ 代码添加到您的项目,Android Studio 现在包含经过改进的编辑器功能,可帮助您修改 CMake 构建脚本,例如:

语法突出显示和代码补全:Android Studio 现在会突出显示常用的 CMake 命令并提出相应的代码补全建议。此外,您只需点击某个文件,同时按 Ctrl 键(在 Mac 上,则按 Command 键)即可转到此文件所在的位置。 代码重新格式化:您现在可以使用 IntelliJ 的代码重新格式化选项将代码样式应用于 CMake 构建脚本。 安全重构:Android Studio 内置的重构工具现在还会检查您是否正在重命名或删除 CMake build 脚本中引用的文件。 浏览外部标头文件

在以前版本的 Android Studio 中使用 Project 窗口时,您只能浏览和检查从本地项目构建的库中包含的标头文件。在此版本中,您现在还可以查看和检查导入到应用项目的外部 C/C++ 库依赖项中包含的头文件。

如果您已在项目中添加 C/C++ 代码和库,请从主菜单中依次选择 View > Tool Windows > Project,打开 IDE 左侧的 Project 窗口,然后从下拉菜单中选择 Android。在 cpp 目录中,应用项目范围内的所有头文件都位于各本地 C/C++ 库依赖项的 include 节点下,具体如下所示。

原生多 dex 处理默认处于启用状态

以前版本的 Android Studio 会在将应用的调试版本部署到搭载 Android API 级别 21 或更高级别的设备时启用原生多 dex 处理。现在,无论您是要部署到设备,还是要构建 APK 以供发布,Android Plugin for Gradle 都会针对所有设置为 minSdkVersion=21 或更高版本的模块启用原生多 dex 处理。

AAPT2 已移动到 Google 的 Maven 代码库中

从 Android Studio 3.2 开始,AAPT2(Android 资源打包工具 2)的来源为 Google 的 Maven 代码库。

如需使用 AAPT2,请确保您的 build.gradle 文件中包含 google() 依赖项,如下所示:

Groovy buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } } Kotlin buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }

新版本的 AAPT2 修正了许多问题,包括改进了在 Windows 上对非 ASCII 字符的处理。

移除了按需配置

按需配置偏好设置已从 Android Studio 中移除。

Android Studio 不再将 --configure-on-demand 参数传递给 Gradle。

ADB Connection Assistant

新的 ADB Connection Assistant 提供了逐步说明,可以帮助您通过 Android 调试桥 (ADB) 关联来设置和使用设备。

如需启用此 Assistant,请依次选择 Tools > Connection Assistant。

ADB Connection Assistant 在 Assistant 面板中的一系列页面中提供了说明、环境控件以及关联设备列表。

改进了模拟器

您现在可以随时在 Android 模拟器中保存和加载 AVD (Android Virtual Device) 快照,以便快速轻松地让模拟设备返回已知状态以进行测试。在使用 AVD Manager 修改 AVD 时,您可以指定在 AVD 启动时加载哪个 AVD 快照。

用于保存、加载和管理 AVD 快照的控件现在位于模拟器的 Extended controls 窗口的 Snapshots 标签页中。

如需了解详情,请参阅快照。

如需详细了解模拟器中的新变化以及变更内容,请参阅模拟器版本说明。

3.1(2018 年 3 月)

Android Studio 3.1.0 是一个主要版本,包含各种新功能和改进。

3.1.4(2018 年 8 月)

这项 Android Studio 3.1 更新进行了下列更改和修复:

捆绑的 Kotlin 版本现为 1.2.50。 使用 kotlin-stdlib-jdk* artifacts(而非已弃用的 kotlin-stdlib-jre* 工件)创建新项目。 对 ProGuard 规则的 R8 解析已得到改进。 下列错误已得到修复: 尝试运行 Kotlin Main 类失败,并出现错误: "Error: Could not find or load main class..." R8 在执行某些优化时进入了无限循环。 在 Run 窗口中使用 Rerun failed tests 命令有时会错误地返回“No tests were found”消息。 D8 未正确处理 invoke-virtual 实例,导致 VerifyError 崩溃: invoke-super/virtual can't be used on private method 数据绑定编译器依赖于旧版本的 com.android.tools:annotations。现在,编译器会使用来自基础项目的工具注解(如可用)。 使用性能剖析器时,Android Studio 在 Fragment 过渡期间崩溃。 在调试包含文本框的布局时,调试器发生崩溃。 D8 无法读取某些带有特殊字符的 ZIP 文件。

3.1.3(2018 年 6 月)

这项 Android Studio 3.1 更新修复了下列错误:

内存泄漏导致 Android Studio 在您使用布局编辑器后变得缓慢且无响应。此更新包含针对大多数此类问题的修复程序。我们打算很快发布另一项更新来解决额外的内存泄漏问题。 一些使用 D8 构建的应用在部分 Verizon Ellipsis 平板电脑上出现崩溃。 在搭载 Android 5.0 或 5.1(API 级别 21 或 22)的设备上,使用 D8 构建的应用的安装失败并出现 INSTALL_FAILED_DEXOPT 错误。 一些使用 OkHttp 库并使用 D8 构建的应用在搭载 Android 4.4(API 级别 19)的设备上出现崩溃。 Android Studio 有时无法启动,并在类初始化期间出现 ProcessCanceledException(对于 com.intellij.psi.jsp.JspElementType)。

3.1.2(2018 年 4 月)

这项 Android Studio 3.1 更新修复了下列错误:

在某些情况下,Android Studio 会在退出时无限期挂起。

启用 Instant Run 后,使用源代码集配置的 build 失败,并显示以下消息:

"The SourceSet name is not recognized by the Android Gradle Plugin."

启用 Instant Run 后,由 Run 命令触发的新 Kotlin 项目构建失败。 修改 build.gradle 文件时,输入某个字符后要过很长一段时间才会在屏幕上显示该字符。

在一些具有大量模块或外部依赖项的项目中,在 dex 处理期间发生构建失败,并显示以下错误消息:

"RejectedExecutionException: Thread limit exceeded replacing blocked worker"

D8 主 DEX 列表的计算方式没有考虑到一些反射调用。

此更新还包含一些更改,这些更改使得在某些情况下从 Gradle 运行 Lint 检查的速度更快。

3.1.1(2018 年 4 月)

这项 Android Studio 3.1 更新修复了下列错误:

在某些情况下,在 Android Studio 3.1 中首次打开在 Android Studio 3.0 中创建的项目时,Gradle-aware Make 任务已从 Run/Debug ConfigurationsBefore launch 区域中移除。因此,点击 RunDebug 按钮时没有构建项目,这反过来会导致使用 Instant Run 时部署错误的 APK 以及崩溃等失败情况。

为解决此问题,Android Studio 3.1.1 会将 Gradle-aware Make 任务添加到缺少此条目的项目的运行配置中。此项修改发生在首次 Gradle 同步之后的项目加载完毕时。

在调试包含文本框的布局时,如果启用了高级性能剖析,调试器会发生崩溃。 点击 Build Variants 后,Android Studio 冻结。 AAR(Android 归档)文件被提取了两次,一次是在 Gradle 同步过程中,另一次是在 Gradle 构建过程中。 从 SVG 文件导入的一些矢量可绘制对象中缺少元素。 更新了有关弃用 compile 依赖项配置的警告,并优化了有关 implementation 和 api 配置的指导。如需详细了解如何停止使用 compile 配置,请参阅新依赖项配置的文档。 编码/IDE IntelliJ 2017.3.3

核心 Android Studio IDE 已通过 2017.3.3 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。改进功能包括为集合与字符串提供了更好的控制流分析,改进了可为 null 性推理,添加了一些快速修复功能,等等。

如需了解详情,请参阅 IntelliJ IDEA 版本 2017.2 和 2017.3 的 JetBrains 版本说明,以及错误修复更新的 JetBrains 版本说明。

通过 Room 改进了 SQL 修改

使用 Room 数据库时,您可以利用针对 SQL 修改的多项改进:

Query 中的代码补全功能可以理解 SQL 表格(实体)、列、查询参数、别名、联接、子查询和 WITH 子句。 SQL 语法突出显示现在可以正常使用。 您可以右键点击 SQL 中的表格名称并对其重命名,这也会重写相应的 Java 或 Kotlin 代码(例如,包括查询的返回类型)。重命名在另一个方向也适用,因此重命名 Java 类或字段会重写相应的 SQL 代码。 使用 Find usages(右键点击并从上下文菜单中选择 Find usages)时,系统会显示 SQL 用法。 如需转到 SQL 实体在 Java 或 Kotlin 代码中的声明,您可以在按住 Ctrl 键(Mac 上为 Command 键)的同时点击该实体。

如需了解如何将 SQL 与 Room 搭配使用,请参阅使用 Room 将数据保存到本地数据库。

数据绑定更新

此更新包括针对数据绑定的多项改进:

现在,您可以将 LiveData 对象用作数据绑定表达式中的一个可观察字段。ViewDataBinding 类现在添加了用于观察 LiveData 对象的新 setLifecycle() 方法。

ObservableField 类现在可在其构造函数中接受其他 Observable 对象。

您可以预览数据绑定类的新增量编译器。如需详细了解这个新编译器以及启用该编译器的说明,请参阅数据绑定编译器 V2。

新编译器的好处包括:

Android Plugin for Gradle 会先于 Java 编译器生成 ViewBinding 类。

编译应用时,库会保留其生成的绑定类,而不是每次都重新生成这些类。这可以大大提高多模块项目的性能。

编译器和 Gradle D8 是默认的 DEX 编译器

D8 编译器现已默认用于生成 DEX 字节码。

这款新的 DEX 编译器可提供多项好处,包括:

Dex 速度更快 降低内存使用量 改进了代码生成功能(更好的注册表分配和更智能的字符串表格) 在单步调试代码时提供更好的调试体验

除非您之前手动停用了 D8 编译器,否则无需对代码或开发工作流进行任何更改即可获得这些好处。如果您在 gradle.properties 中将 android.enableD8 设为 false,请删除该标记或将其设为 true:

android.enableD8=true

如需了解详情,请参阅新的 DEX 编译器。

增量脱糖

对于使用 Java 8 语言功能的项目,系统会默认启用增量脱糖,这可以缩短构建时间。

脱糖可将语法糖转换为一种可供编译器更高效地处理的格式。

您可以通过在项目的 gradle.properties 文件中指定以下内容来停用增量脱糖:

android.enableIncrementalDesugaring=false 简化了输出窗口

Gradle Console 已替换为 Build 窗口,后者包含 Sync 和 Build 标签页。

如需详细了解如何使用经过简化的新 Build 窗口,请参阅监控构建流程。

批量更新和并发索引

现在,Gradle 同步和 IDE 索引编制流程的效率更高,从而缩短了在许多冗余索引编制操作上浪费的时间。

C++ 和 LLDB

我们在 C++ 开发的编码、同步、构建和调试阶段做出了多项质量和性能方面的改进。具体改进包括:

如果您处理大型 C++ 项目,您应该会注意到在构建符号上花费的时间明显减少。大型项目的同步时间也大大减少。

通过更积极地重复使用缓存结果,改进了构建 CMake 并与之同步时的性能。

为更多 C++ 数据结构添加了格式转换工具(“pretty printers”),使 LLDB 输出更易于阅读。

LLDB 现在仅适用于 Android 4.1(API 级别 16)及更高版本。

注意:使用 Android Studio 3.0 或更高版本进行原生调试不再支持 32 位 Windows 系统。如果您使用的是 32 位 Windows 系统,并且需要调试原生代码,请使用 Android Studio 2.3。 Kotlin Kotlin 已升级到版本 1.2.30

Android Studio 3.1 包含 Kotlin 版本 1.2.30。

现可使用命令行 lint 检查分析 Kotlin 代码

从命令行运行 Lint 现在可分析您的 Kotlin 类。

对于您希望运行 Lint 的每个项目,Google 的 Maven 代码库必须包含在顶级 build.gradle 文件中。在 Android Studio 3.0 及更高版本中创建的项目已包含 Maven 代码库。

性能工具 使用 CPU 性能分析器对原生 C++ 进程采样

CPU 性能分析器现在包含一项默认配置,用于记录应用的原生线程的采样轨迹。您可以通过以下方法使用此配置:将应用部署到搭载 Android 8.0(API 级别 26)或更高版本的设备,然后从 CPU 性能分析器的记录配置下拉菜单中选择 Sampled (Native)。然后,按照常规方法记录和检查跟踪记录。

您可以通过创建记录配置来更改默认设置,例如采样间隔。

如需切换回跟踪 Java 线程,请选择 Sampled (Java) 或 Instrumented (Java) 配置。

过滤 CPU 跟踪记录、内存分配结果和堆转储

CPU 性能分析器和内存分析器具有搜索功能,可让您通过记录方法轨迹、内存分配或堆转储来过滤结果。

如需进行搜索,请点击窗格右上角的 Filter ,输入您的查询,然后按 Enter。

提示:您还可以按 Ctrl + F(在 Mac 中按 Command + F)来打开搜索字段。

在 CPU 性能分析器的 Flame Chart 标签页中,包含与您的搜索查询相关的方法的调用堆栈会突出显示并移至图表的左侧。

如需详细了解如何按方法、类或软件包名称过滤,请参阅记录和检查方法跟踪记录。

网络性能分析器中的“Request”标签页

网络性能剖析器现在包含一个 Request 标签页,其中提供了有关选定时间轴中的网络请求的详细信息。在以前的版本中,网络性能剖析器仅提供有关网络响应的信息。

网络性能分析器中的线程视图

在网络性能剖析器中选择时间轴的一部分后,您可以选择以下某个标签页,以查看有关该时间范围内的网络活动的更多详细信息:

Connection View:提供的信息与之前版本的 Android Studio 相同,它列出了在所选时间轴部分中从您应用的所有 CPU 线程发送或接收的文件。对于每个请求,您可以检查大小、类型、状态和传输时长。 Thread View:显示应用的每个 CPU 线程的网络活动。 此视图可让您检查应用的哪些线程负责每个网络请求。

布局检查器

布局检查器获得了新功能,包括以前由 Hierarchy Viewer 和 Pixel Perfect 工具提供的部分功能:

用于导航和检查布局的缩放按钮和键盘快捷键 参考网格叠加层 能够加载参考图片并将其用作叠加层(用于将您的布局与界面模型进行比较) Render Subtree Preview,以隔离复杂布局中的视图 布局编辑器

布局编辑器中的 Palette 已经获得了许多改进:

重新组织了视图和布局的类别。 为视图和布局新增了 Common 类别,您可以使用 Favorite 命令添加至该类别。 改进了视图和布局搜索。 新增用于打开文档以显示特定视图或布局元素的命令。

您可以在 Component Tree 或设计编辑器中使用新的 Convert View 命令将视图或布局转换为另一种类型的视图或布局。

您现在可以使用新的 Create a connection 按钮(位于 Attributes 窗口顶部的视图检查器中)为所选视图附近的项轻松创建约束条件。

Run 和 Instant Run

Select deployment target 对话框中 Use same selection for future launches 选项的行为现已更加一致。如果启用了 Use same selection 选项,Select deployment target 对话框将仅在您首次使用 Run 命令时打开,直到所选设备不再保持连接为止。

以搭载 Android 8.0(API 级别 26)或更高版本的设备为目标时,Instant Run 可以将更改部署到资源,而不会导致应用重启。之所以能这么做,是因为这些资源包含在拆分 APK 中。

模拟器

如需详细了解自 Android Studio 3.0 以来模拟器中的新变化以及变更内容,请参阅版本 27.0.2 到版本 27.1.12 的 Android 模拟器版本说明。

主要改进包括:

快速启动快照,用于保存模拟器状态并加快启动速度,并且能够使用 Save now 命令保存自定义启动状态。 无窗口模拟器屏幕。 适用于 Android 8.0(API 级别 26)、Android 8.1(API 级别 27)和 Android P 开发者预览版的系统映像。 界面和用户体验方面的改进 更多提示、键盘快捷键和有用的消息

我们在 Android Studio 中的许多位置添加了提示和有用的消息叠加层。

如需查看很多命令的键盘快捷键,只需将鼠标指针悬停在某个按钮上,直到系统显示提示。

移除了 Tools > Android 菜单

Tools > Android 菜单已被移除。之前位于此菜单下的命令已移到别处。

很多命令已直接移到 Tools 菜单下。 Sync project with gradle files 命令已移至 File 菜单。 Device Monitor 命令已被移除,如下所述。 可从命令行获得 Device Monitor

在 Android Studio 3.1 中,Device Monitor 发挥的作用不及以前。在许多情况下,Device Monitor 提供的功能现在由经过改进的新工具提供。

如需了解如何从命令行调用 Device Monitor 以及 Device Monitor 提供的工具的说明,请参阅 Device Monitor 文档。

3.0(2017 年 10 月)

Android Studio 3.0.0 是一个主要版本,包含各种新功能和改进。

macOS 用户:如果您要更新旧版 Android Studio,可能会遇到内容为“Some conflicts were found in the installation area”的更新错误对话框。只需忽略此错误,然后点击 Cancel 继续安装。

3.0.1(2017 年 11 月)

这项 Android Studio 3.0 次要更新修正了一些常见 bug 并提升了性能。

Android Plugin for Gradle 3.0.0

新的 Android Plugin for Gradle 包含多种改进功能和新功能,但主要是改进了包含大量模块的项目的构建性能。在将新插件与这些大型项目结合使用时,您应当会注意到以下变化:

由于新的延迟依赖项解析,build 配置时间更短。 变体感知依赖项解析仅适用于您正在构建的项目和变体。 对代码或资源应用简单更改时,可加快增量构建速度。 注意:这些改进需要进行重大更改,从而破坏该插件的一些行为、DSL 和 API。升级到版本 3.0.0 可能需要更改构建文件和 Gradle 插件。

此版本还包含以下变更:

支持 Android 8.0。 支持基于语言资源构建单独的 APK。 支持 Java 8 库和 Java 8 语言功能(无需 Jack 编译器)。 支持 Android 测试支持库 1.0(Android Test Utility 和 Android Test Orchestrator)。 提高了 ndk-build 和 cmake 构建速度。 加快了 Gradle 同步速度。 AAPT2 现已默认处于启用状态。 现在使用 ndkCompile 会受到更多限制。您应该改用 CMake 或 ndk-build 来编译要打包到 APK 中的原生代码。如需了解详情,请阅读从 ndkcompile 迁移。

如需详细了解更改内容,请参阅 Android Plugin for Gradle 版本说明。

如果您已准备好升级到新插件,请参阅迁移到 Android Plugin for Gradle 3.0.0。

Kotlin 支持

正如在 Google I/O 2017 大会上公布的一样,Android 现在已正式支持 Kotlin 编程语言。因此,在此版本中,Android Studio 包含针对 Android 开发的 Kotlin 语言支持。

您可以将 Kotlin 整合到您的项目中,具体方法是:将 Java 文件转换为 Kotlin(依次点击 Code > Convert Java File to Kotlin File),或使用 New Project 向导创建新的启用 Kotlin 的项目。

如需开始操作,请阅读如何将 Kotlin 添加到您的项目中。

Java 8 语言功能支持

您现在可以使用某些 Java 8 语言功能,并利用使用 Java 8 构建的库。不再需要 Jack,您需要先停用 Jack 才能使用内置到默认工具链中并得到改进的 Java 8 支持。

如需更新您的项目以支持全新的 Java 8 语言工具链,请在 Project Structure 对话框(依次点击 File > Project Structure)中将 Source Compatibility 和 Target Compatibility 更新到 1.8。如需了解详情,请阅读如何使用 Java 8 语言功能。

Android Profiler

新的 Android Profiler 取代了 Android Monitor 工具,并提供了一套新的工具来实时衡量应用的 CPU、内存和网络使用情况。您可以执行基于样本的方法跟踪来记录代码执行时间、采集堆转储数据、查看内存分配,以及检查网络传输文件的详细信息。

如需打开,请依次点击 View > Tool Windows > Android Profiler(或点击工具栏中的 Android Profiler )。

窗口顶部的事件时间轴会显示触摸事件、按键和活动更改,以便您更清楚地了解时间轴中的其他性能事件。

注意:Logcat 视图也移到一个单独的窗口中(以前是在 Android Monitor 中,该工具现已移除)。

从 Android Profiler 的概览时间轴中,点击 CPU 、MEMORY 或 NETWORK 时间轴即可访问相应的性能剖析器工具。

CPU 性能分析器

借助 CPU 性能分析器,您可以触发一个样本或检测的 CPU 跟踪记录,从而分析应用的 CPU 线程使用情况。然后,您可以使用各种数据视图和过滤器来排查 CPU 性能问题。

如需了解详情,请参阅 CPU 性能分析器指南。

内存分析器

内存分析器可帮助您识别可能会导致应用卡顿、冻结甚至崩溃的内存泄漏和内存抖动。它会显示一个应用内存使用量的实时图表,让您可以捕获堆转储、强制执行垃圾回收以及跟踪内存分配。

如需了解详情,请参阅内存分析器指南。

网络性能分析器

通过网络性能剖析器,您可以监控应用的网络活动,检查每个网络请求的负载,并链接回生成网络请求的代码。

如需了解详情,请参阅网络性能分析器指南。

APK 性能剖析和调试

Android Studio 现在允许您对任何 APK 进行性能剖析和调试,而无需从 Android Studio 项目构建这些 APK - 只要这些 APK 已构建用于启用调试并且您可以使用调试符号和源文件。

如需开始操作,请在 Android Studio 欢迎屏幕上点击 Profile or debug APK。或者,如果您已经打开一个项目,请在菜单栏中依次点击 File > Profile or Debug APK。这会显示已解压缩的 APK 文件,但不会对代码进行反编译。因此,为了正确添加断点和查看堆栈轨迹,您需要附加 Java 源文件和原生调试符号。

如需了解详情,请参阅对预构建 APK 进行性能剖析和调试。

设备文件浏览器

利用新的设备文件浏览器,您可以检查已连接设备的文件系统,并在设备和计算机之间传输文件。这取代了 DDMS 中提供的文件系统工具。

如需打开,请依次点击 View > Tool Windows > Device File Explorer。

如需了解详情,请参阅设备文件浏览器指南。

免安装应用支持

对 Android 免安装应用的全新支持允许您使用以下两种新模块类型在项目中创建免安装应用:免安装应用模块和功能模块(这些模块要求您安装免安装应用开发 SDK)。

Android Studio 还包含一个新的模块化重构操作,可帮助您在现有项目中添加对免安装应用的支持。例如,如果您要重构项目以在免安装应用功能模块中添加一些类,请在 Project 窗口中选择这些类,然后依次点击 Refactor > Modularize。在随即显示的对话框中,选择这些类应归属的模块,然后点击 OK。

当您准备好测试免安装应用时,您可以在运行配置启动选项中指定免安装应用的网址(具体方法是:依次选择 Run > Edit Configurations,选择您的免安装应用模块,然后在 Launch Options 下设置网址),以在连接的设备上构建和运行免安装应用模块。

如需了解详情,请参阅 Android 免安装应用。

Android Things 模块

New Project 和 New Module 向导中的新 Android Things 模板可帮助您开始为搭载 Android 系统的物联网设备开发应用。

如需了解详情,请参阅如何创建 Android Things 项目。

自适应图标向导

Image Asset Studio 现在支持矢量可绘制对象,可让您创建用于 Android 8.0 的自适应启动器图标,同时为旧款设备创建传统图标(“旧版”图标)。

首先,右键点击项目中的 res 文件夹,然后依次点击 New > Image Asset。在 Asset Studio 窗口中,选择 Launcher Icons (Adaptive and Legacy) 作为图标类型。

注意:必须将 compileSdkVersion 设为 26 或更高版本才能使用自适应启动器图标。

如需了解详情,请参阅自适应图标。

对字体资源的支持

为了支持 Android 8.0 中的新字体资源,Android Studio 添加了一个字体资源选择器,用于将字体打包到应用中或配置项目以将字体下载到设备上(如果可用)。布局编辑器还可以在您的布局中预览字体。

如需试用可下载字体,请确保您的设备或模拟器运行的是 Google Play 服务 11.2.63 版或更高版本。如需了解详情,请参阅可下载字体。

Firebase App Indexing Assistant

Firebase Assistant 已更新,其中包含讲述如何测试 App Indexing 的新教程。如需打开 Assistant,请依次选择 Tools > Firebase。然后,依次选择 App Indexing > Test App Indexing。

该教程包含用于测试公开和个人内容索引编制的新按钮:

在第 2 步中,点击 Preview search results,验证您的网址是否会显示在 Google 搜索结果中。 在第 3 步中,点击 Check for errors,验证应用中可编入索引的对象是否已添加到个人内容索引中。 Android App Links Assistant

App Links Assistant 已更新,包含以下新功能:

为每个网址映射添加网址测试,以确保您的 intent 过滤器可处理真实的网址。

您也可以使用下述 标记手动定义这些网址测试。

使用正确的对象条目创建 Digital Asset Links 文件,以支持 Google Smart Lock,并向清单文件添加相应的 asset_statements 标记。

网址 intent-filter 验证程序

Android Studio 现在支持清单文件中的一种特殊标记,该标记可让您测试 intent 过滤器网址。这些标记与 App Links Assistant 可为您创建的标记相同。

如需声明 intent 过滤器的测试网址,请添加 元素以及对应的 元素。例如:

...

还请务必在 代码中包含 xmlns:tools="http://schemas.android.com/tools"。

如果其中任何一个测试网址未通过 intent 过滤器定义,则会显示 Lint 错误。此类错误仍允许您构建调试变体,但它会破坏您的发布 build。

布局编辑器

布局编辑器已更新,包含多项增强功能,其中包括:

新的工具栏布局和图标。 更新了组件树中的布局。 改进了拖放视图插入。 新增了错误面板(在编辑器下方),其中会显示所有问题以及修正建议(如可用)。 针对使用 ConstraintLayout 进行构建的各种界面增强功能,包括: 新增对创造屏障的支持。 新增对创建组的支持:在工具栏中,依次选择 Guidelines > Add Group(需要 ConstraintLayout 1.1.0 Beta 版 2 或更高版本) 新增用于创建链的界面:选择多个视图,然后右键点击并选择 Chain。

布局检查器

布局检查器包含一些增强功能,可让您更轻松地调试应用布局问题,包括将属性归入常见类别以及 View Tree 和 Properties 窗格中的新搜索功能。

APK 分析器

您现在可以使用 apkanalyzer 工具从命令行使用 APK 分析器。

APK 分析器也经过更新,包含以下改进功能:

对于使用 ProGuard 构建的 APK,您可以加载为 DEX 查看器添加功能的 ProGuard 映射文件,包括: 粗体节点,指示在压缩代码时不应移除节点。 一个用于显示在压缩过程中移除的节点的按钮。 一个按钮,用于恢复树状视图中由 ProGuard 进行混淆处理的节点的原始名称。 DEX 查看器现在会显示每个软件包、类和方法的估计大小影响。 在顶部新增了一些过滤选项,可显示和隐藏字段和方法。 在树状视图中,未在 DEX 文件中定义的参考节点会以斜体显示。

如需了解详情,请参阅使用 APK 分析器分析您的构建。

D8 DEX 编译器的预览版

Android Studio 3.0 包含一个名为 D8 的可选新 DEX 编译器。它最终将取代 DX 编译器,但您现在可以选择使用新的 D8 编译器。

DEX 编译会直接影响应用的构建时间、.dex 文件的大小和运行时性能。与当前 DX 编译器相比,新的 D8 编译器的编译速度更快,输出的 .dex 文件更小,同时却能保持相同乃至更出色的应用运行时性能。

如需试用此功能,请在项目的 gradle.properties 文件中进行以下设置:

android.enableD8=true

如需了解详情,请参阅有关 D8 编译器的博文。

Google 的 Maven 代码库

Android Studio 现在默认使用 Google 的 Maven 代码库,而不依赖于 Android SDK 管理器来获取 Android 支持库、Google Play 服务、Firebase 和其他依赖项的更新。这样,您可以更轻松地使您的库保持最新,尤其是在使用持续集成 (CI) 系统时。

现在,所有新项目都默认包含 Google Maven 代码库。如需更新现有项目,请在顶级 build.gradle 文件的 repositories 代码块中添加 google():

allprojects { repositories { google() } }

如需详细了解 Google 的 Maven 代码库,请点击此处。

其他变更 使用 Android Studio 进行原生调试不再支持 32 位 Windows 系统。我们选择专注于其他平台,因为很少有开发者使用这个平台。如果您使用的是 32 位 Windows 系统并且打算调试原生代码,应继续使用 Android Studio 2.3。 将基本 IDE 升级为 IntelliJ 2017.1.2,其包含 2016.3 和 2017.1 中的许多新功能,例如 Java 8 语言重构、参数提示、语义突出显示、可拖动的断点、即时获得搜索结果等等。 添加了许多新的 Lint 检查。 另请参阅最新的 Android 模拟器更新。 2.3(2017 年 3 月)

Android Studio 2.3.0 主要是一个 bug 修复和稳定版本,但它也包含许多新功能。

2.3.3(2017 年 6 月)

这是一项次要更新,添加了对 Android O(API 级别 26)的支持。

2.3.2(2017 年 4 月)

这是一项 Android Studio 2.3 次要更新,其中包含以下更改:

更新了 AVD 管理器,以在系统映像中支持 Google Play。 修复了使用 R14 及更高版本 NDK 时的 NDK 构建问题。

另请参阅 Android 模拟器 26.0.3 的相应更新。

2.3.1(2017 年 4 月)

这是一项 Android Studio 2.3 次要更新,修复了某些实际 Android 设备无法正确使用 Instant Run 的问题(请参阅问题 #235879)。

新 Android Studio 现在可以将 PNG、BMP、JPG 和静态 GIF 文件转换为 WebP 格式。WebP 是 Google 的一种既可以提供有损压缩(像 JPEG 一样)也可以提供透明度(像 PNG 一样)的图片文件格式,不过与 JPEG 或 PNG 相比,这种格式可以提供更好的压缩。如需了解详情,请参阅在 Android Studio 中将图片转换为 WebP。 新的 App Links Assistant 以分步向导的方式简化了向应用添加 Android 应用链接的流程。Android 应用链接是指将用户直接转到 Android 应用内特定内容的 HTTP 网址。 布局编辑器现在支持两个新的 ConstraintLayout 功能: 根据宽高比定义视图大小。 使用约束链创建打包、展开和加权线性组。 如需了解详情,请参阅使用 ConstraintLayout 构建自适应界面。 布局编辑器现在还可让您创建喜爱的属性列表,因此您无需点击 View all attributes 即可访问最常使用的属性。 使用“Vector Import”对话框 (File > New > Vector Asset) 添加 Material 图标时,您现在可以按类别或图标名称过滤可用图标列表。如需了解详情,请参阅添加 Material 图标。 新的和经过更新的注解。方法、类和软件包的新 @RestrictTo 注解允许您对 API 进行限制。更新后的 @VisibleForTesting 注解现在包含一个可选的 otherwise 参数,可让您指定在不需要公开某个方法以用于测试时,该方法的公开范围应该为何。Lint 使用 otherwise 选项来强制执行方法的既定公开范围。 新的 Lint 基准支持允许您使用项目当前警告集的快照作为未来检查任务的基准,以便仅报告新问题。有了基准快照,您在出现新问题时不必返回并先解决所有现有问题,即可开始使用 Lint 取消构建。 新的 Lint 检查,包括: 过时 SDK_INT 检查:Android Studio 会移除用于检查 SDK 版本的过时代码。 Object Animator 验证:Lint 会分析您的代码以确保 ObjectAnimator 使用正确签名调用具有有效参考的方法,并检查这些方法是否使用 @Keep 注解以防止 ProGuard 在发布版本时重命名或移除它们。 不必要的项目装饰器副本:旧版本的 RecyclerView 库不包含分隔线装饰器类,但在支持演示中提供了该类的一个示例。该库的最新版本具有分隔线装饰器类。Lint 会查找旧示例,并建议将其替换为新示例。 WifiManager 泄漏:在 Android 7.0(API 级别 24)之前,如果上下文不是应用上下文,那么使用 Context.getSystemService() 初始化 WifiManager 会导致内存泄漏。Lint 会查找这些初始化,如果它无法确定上下文是否为应用上下文,它会建议您使用 Context.getApplicationContext() 来获取初始化的正确上下文。 改进了资源前缀:现有的 resourcePrefix Lint 检查有许多限制。现在,您可以使用前缀配置项目(比如 android { resourcePrefix 'my_lib' }),Lint 可确保您的所有资源都使用此前缀。您可以为样式和主题背景使用名称变体形式。例如,对于 my_lib 前缀,您可以使用名为 MyLibTheme、myLibAttr、my_lib_layout 等的主题背景。 切换到 WebP:此检查可根据项目的 minSdkVersion 设置识别项目中可转换为 WebP 格式的图片。关联的快速修复可自动转换图片,您也可以手动将图片转换为 WebP。 不安全的 WebP:如果您的项目已包含 WebP 图片,此检查会分析您的项目,以确保您的 minSdkVersion 设置足够高,可以支持包含的图片。如需详细了解 Android 和 Android Studio 中的 WebP 支持,请参阅哪些浏览器对 WebP 提供原生支持?和使用 Android Studio 创建 WebP 图片。 变更 一个使用 Instant Run 推送更改的单独按钮:现在,部署应用后,点击 Apply Changes 即可使用 Instant Run 快速将增量更改推送到正在运行的应用。当您想可靠地推送更改并强制重启应用时,随时都可以使用 Run Debug 按钮。 仅在将应用部署到搭载 Android 5.0(API 级别 21)或更高版本的目标设备时,才支持 Instant Run。 对于使用 CMake 或 ndk-build 链接到外部原生项目的项目,不再停用 Instant Run。但是,您只能使用 Instant Run 将增量更改推送到 Java 代码,而非原生代码。 冷交换(只需点击 Run 即可对正在运行的应用强制执行冷交换)现在更加可靠。强制执行冷交换还可以解决通知和微件界面更改未在目标设备上更新的问题。 为加快应用启动速度进行了优化。这些优化可能会影响性能剖析,因此,在对应用进行性能剖析时应该暂时停用 Instant Run。

AVD Manager SDK Manager 按钮现在包含在精简导航栏以及完整的工具栏中。如需使用精简导航栏,请点击 View 打开“View”菜单,然后确保已选中 Navigation Bar 而未选中 Toolbar

“Hybrid”调试程序已更名为“Dual”调试程序。 在左侧窗格“Defaults”下方的 Run/Debug Configurations 对话框中,以下运行配置名称已更改,但行为没有发生任何变化: JUnit 名称已更改为 Android JUnit。如果您有一个使用 JUnit 运行配置的项目,那么在您首次使用 Android Studio 打开项目时,这些配置将转换为 Android JUnit 运行配置。系统会显示一个对话框,通知您名称更改。 Android Tests 名称已更改为 Android Instrumentation Tests。 从 2.3 版开始,GPU 调试程序已从 Android Studio 中移除。GitHub 现在提供了该工具的开源独立版本。 右键点击 *.gradle build 脚本后,无法再使用“Run/Debug”选项。 现在,所有模板都使用 ConstraintLayout 作为默认布局。 布局编辑器中的微件调色板已经过重新设计。

此版本还修复了很多 bug。查看 2.3.0 中修复的所有 bug。

已知问题:某些设备制造商会阻止应用在安装到设备上后自动启动。使用 Android Studio 2.3 将应用部署到实际设备时,此限制会破坏 Instant Run 的预期行为并导致以下错误输出:Error: Not found; no service started。为避免此问题,请使用模拟器或在设备的设置中为应用启用自动启动功能。每个设备的操作步骤有所不同,请查看制造商提供的说明。如需详细了解此问题,请参阅问题 #235879。

2.2(2016 年 9 月)

2.2.3(2016 年 12 月)

这是一项 Android Studio 2.2 次要更新。其中包含针对 Gradle、核心 IDE 和 lint 的 bug 修复。

重要的 build 更改:

ProGuard 版本回滚。由于 ProGuard 5.3.1 中发现的正确性问题,我们已回滚到 ProGuard 5.2.1。我们与 ProGuard 团队合作快速找到了解决方法,我们期望在 Android Studio 2.3 Canary 3 中向前回滚到 ProGuard 5.3.2。 修复了 aaptOptions IgnoreAssetsPattern 无法正常运行的问题(问题 224167) 修复了为约束布局库自动下载 Gradle 的 bug(问题 212128) 修复了 JDK8/Kotlin 编译器 + dx 问题(问题 227729)

查看 2.2.3 中修复的所有问题。

2.2.2(2016 年 10 月)

这是一项 Android Studio 2.2 次要更新。其中包含很多细微更改和问题修复,包括:

通过 IDE 报告 Instant Run 问题时,报告现在还会包含 InstantRun 事件的 logcat 输出。为了帮助我们改进 Instant Run,请启用额外的日志记录功能并报告所有问题。 修复了 Gradle 的许多小 bug。 修复了生成多个 APK 时的问题。

2.2.1(2016 年 10 月)

这是一项 Android Studio 2.2 次要更新。其中包含多项问题修复,并添加了一项新功能来启用额外的日志记录功能,以帮助我们排查 Instant Run 问题。为了帮助我们改进 Instant Run,请启用额外的日志记录功能并报告所有问题。

新 所有新的布局编辑器都内置自定义工具,以支持 ConstraintLayout。 新的布局检查器,可让您在模拟器或设备上运行应用时检查布局层次结构的快照。 新的 Assistant 窗口,可帮助您将 Firebase 服务集成到您的应用中。 新的 APK 分析器工具,可让您检查封装应用的内容。 新的 Espresso 测试记录器工具(目前处于 Beta 版阶段),可帮助您记录自己的互动来创建界面测试。 新的构建缓存(目前是实验性功能),可加快构建速度。 新的 C/C++ 构建与 CMake 和 ndk-build 集成。 将新的或现有的原生代码编译并构建到打包到 APK 中的库中,并使用 lldb 进行调试。对于新项目,Android Studio 默认使用 CMake,但也支持对现有项目使用 ndk-build。如需了解如何在 Android 应用中添加原生代码,请阅读向您的项目添加 C 和 C++ 代码。如需了解如何使用 lldb 调试原生代码,请参阅调试原生代码。 新的示例浏览器,让您可以在 Android Studio 中轻松查找 Google Android 示例代码,以立即开始应用开发。 新的合并后的清单文件查看器,可帮助您诊断清单文件如何与项目构建变体中的应用依赖项合并。 Run 窗口现在包含当前运行的应用的日志消息。请注意,您可以配置 logcat 监视器显示,但无法配置 Run 窗口。 新的 Android 模拟器功能: 添加了新的 Virtual Sensors 和 Cellular > Signal Strength 控件。 为 Cellular > Network type 控件添加了 LTE 选项。 添加了模拟纵向滑动功能,以便使用鼠标滚轮滚动浏览纵向菜单。 新的运行/调试配置功能: Android 应用和 Android Tests 模板的 Debugger 标签页现在包含几个新选项,用于使用 LLDB 进行调试。 Android 应用和 Android Tests 模板的 Profiling 标签页现在包含一个用于启用 GPU 跟踪的 Capture GPU Commands 选项。您可以在 GPU 调试器中显示 GPU 跟踪记录(测试版功能)。 Android Tests 模板现在包含一个适用于 Deployment Target 的 Firebase Test Lab Device Matrix 选项。 原生应用模板已弃用。如果您在项目中使用此模板,Android Studio 会自动将其转换为 Android 应用模板。 Android 应用模板已更名为 Android 应用。 改进了 GPU 调试程序(目前处于 Beta 版阶段)中的安装、配置、性能和界面功能。 Android Studio 现在捆绑了 OpenJDK 8。 现有项目仍使用 File > Project Structure > SDK Location 中指定的 JDK。如需改为使用所捆绑的新 JDK,请依次点击 File > Project Structure > SDK Location,然后选中 Use embedded JDK 复选框。 在界面中添加了新的帮助菜单和按钮,以便您更轻松地找到在线文档。 变更 将 IDE 代码库从 IntelliJ 15 更新为 IntelliJ 2016.1 Instant Run 现在需要安装与目标设备 API 级别对应的平台 SDK。 如果用户在工作资料下或以次要用户身份运行应用,系统会自动停用 Instant Run。 修复了 Instant Run 的许多可靠性问题,这些问题会使更改无法部署或导致应用崩溃: 某些应用资产未部署到正在运行的应用中。(错误:#213454) 当用户在 Instant Run 和非 Instant Run 会话(可序列化类未在其中定义 serialVersionUID)之间切换时,应用崩溃。(错误:#209006) Instant Run 不会反映样式更改。(错误:#210851) Instant Run 会话不可靠,会导致 FileNotFoundException。(错误:#213083) 在为 KitKat 执行完全重新构建之前,不会反映对可绘制对象的更改。(错误:#21530) 当自定义 sourceSets 包含嵌套路径时,Instant Run 不会反映资源更改。(错误:#219145) 如果已更改的类包含具有枚举值的注解,热交换和温和交换就会不起作用。(错误:#209047) Instant Run 不会反映对注解数据的更改。(错误:#210089) 如果您在 IDE 外部进行更改,Instant Run 不会选择代码更改。(错误:#213205) 由于安全令牌不匹配,Instant Run 会话不可靠。(错误:#211989) 对于无法正确支持 run-as 的设备,冷交换会失败。(错误:#210875) 应用在 Instant Run 重启后崩溃。(错误:#219744) 从 Instant Run 切换到 Instant Debug 时观察到 ClassNotFoundException。(错误:#215805) 改进了 Android Studio 中 Gradle 同步的性能,尤其是对于大型项目。 缩短了使用新的应用打包代码进行完整构建和增量构建的构建时间。 改进了 Jack 编译器的性能和功能,包括对注解处理器和 dexing-in-process 的支持。如需了解详情,请参阅 Android plugin for Gradle 2.2.0 版本说明。 从 AVD 管理器中移除了 Scale AVD 属性。 Android 模拟器 -port 和 -ports 命令行选项现可报告模拟器实例使用的端口和序列号,并在您提供的值出现问题时发出警告。 改进了“Create New Class”对话框和相应的文件模板。注意:如果您之前自定义了 AnnotationType、Class、Enum、Interface 或 Singleton 文件模板,您需要修改模板以便与新模板一致,否则您将无法使用 Create New Class 对话框中的新字段。 改进了 Vector Asset Studio 界面并添加了对 Adobe Photoshop Document (PSD) 文件的支持。 改进了 Image Asset Studio 界面。 改进了 Theme Editor 的资源选择器。 修复了 Android Studio 中的内存泄漏问题并减少了总体内存用量。 在 SDK 管理器中添加了 Background 按钮,以便您可以返回工作并在后台安装软件包。 改进了无障碍功能,包括对屏幕阅读器和键盘导航的支持。 代码分析得到增强,其中包含适用于 Java 8 语言的代码质量检查和更多的跨文件分析。 几个工具栏图标发生了更改。 2.1(2016 年 4 月)

此更新中的主要更改可为使用 Android N 预览版进行开发提供支持。

2.1.3(2016 年 8 月)

此项更新增加了与 Gradle 2.14.1 的兼容性,其中包括性能改进、新功能和重要的安全修复程序。如需了解详情,请参阅 Gradle 版本说明。

默认情况下,Android Studio 2.1.3 中的新项目使用 Gradle 2.14.1。对于现有项目,Android Studio 会提示您升级到 Gradle 2.14.1 和 Android plugin for Gradle 2.1.3,这在使用 Gradle 2.14.1 及更高版本时是必需的。

2.1.2(2016 年 6 月)

此更新包含多项细微更改和 bug 修复:

Instant Run 更新和 bug 修复。 改进了 LLDB 性能和崩溃通知。 修复了 Android Studio 2.1.1 安全更新中会导致 git rebase 失败的回归问题。

2.1.1(2016 年 5 月)

安全版本更新。

Android N 平台增加了对 Java 8 语言功能的支持,这些功能需要一个名为 Jack 的新实验性编译器。最新版本的 Jack 目前仅在 Android Studio 2.1 中受支持。因此,如果您要使用 Java 8 语言功能,就需要使用 Android Studio 2.1 构建应用。

注意:在您启用 Jack 编译器时,Instant Run 处于停用状态,因为这二者当前不兼容。

尽管 Android Studio 2.1 现已稳定运行,但 Jack 编译器仍处于试验阶段,您必须使用 build.gradle 文件中的 jackOptions 属性来启用它。

除了为支持 N 预览版所做的更改外,Android Studio 2.1 还包含一些次要问题修复和以下增强功能:

现在,当您使用 N 设备或模拟器并选择 Native 调试程序模式(在运行/调试配置对应的 Debugger 标签页中),Java-aware C++ 调试程序默认处于启用状态。

对于其他构建增强功能(包括增量 Java 编译和 dexing-in-process),请将 Android plugin for Gradle 更新到版本 2.1.0。

2.0(2016 年 4 月)

注意:如果您要为 N 开发者预览版开发应用,应使用 Android Studio 2.1 预览版。Android Studio 2.0 无法支持以 N 预览版为目标进行开发所需的全部功能。

Instant Run:

Android Studio 现在部署整洁构建的速度比以前更快。 此外,将增量代码更改推送到模拟器或实际设备几乎是即时的。您可以查看更新,而无需重新部署新的调试 build;在很多情况下,无需重启应用。 Instant Run 支持将以下更改推送到正在运行的应用: 对现有实例方法或静态方法的实现所做的更改 对现有应用资源的更改 对结构代码的更改,例如方法签名或静态字段(需要搭载 API 级别 21 或更高级别的目标设备)。 如需详细了解 Instant Run,请阅读相关文档。

注意:仅在您部署调试 build 变体、使用 Android plugin for Gradle 2.0.0 版或更高版本,或针对 minSdkVersion 15 或更高版本配置应用的模块级 build.gradle 文件时,Instant Run 才受支持。 为获得最佳性能,请针对 minSdkVersion 21 或更高版本配置应用。

Lint 新增的内容:

使用 @IntDef 注解的整数检查 switch 语句,以确保处理所有常量。如需快速添加所有缺少的语句,请使用 intent 操作下拉菜单,然后选择 Add Missing @IntDef Constants。 用于使用字符串插值在 build.gradle 文件中插入版本号的错误尝试的标记。 用于扩展 Fragment 类的匿名类的标记。 用于不安全位置(例如 res/ 和 asset/ 文件夹)中的原生代码的标记。 此标记会建议将原生代码存储在 libs/ 文件夹中,然后在安装时将该代码安全打包到应用的 data/app-lib/ 文件夹中。AOSP:#169950 用于对 Runtime.load() 和 System.load() 调用的不安全调用的标记。AOSP:#179980 通过从菜单栏中依次选择 Refactor > Remove Unused Resources 来查找和移除所有未使用的资源。未使用资源检测现在支持的资源仅限于由未使用的资源、原始文件中的参考(例如 .html 图片参考、以及 Gradle 资源压缩器使用的 tools:keep 和 tools:discard 属性)所引用的资源,同时考虑非活动源代码集(例如其他 build 变体中使用的资源)以及正确处理静态字段导入。 检查 minSdkVersion 的所有目标平台是否支持隐式 API 引用。 标记 RecyclerView 和 Parcelable 的不当使用。 现在,系统还会针对 int 数组和 varargs 对 @IntDef、@IntRange 和 @Size 检查进行检查。

其他方面的改进:

针对 Android 模拟器 2.0 进行了优化,使其比以前速度更快,支持更广泛的虚拟设备,并具有经过显著改进的界面。如需详细了解新模拟器,请阅读 SDK 工具版本说明。 对 Android 虚拟设备管理器的改进: 系统映像现已归入以下标签页:“Recommended”、“x86”和“Other”。 在高级设置下,您可以启用多核支持并指定模拟器可以使用的核心数量。 在高级设置下,您可以通过选择以下选项之一来确定在模拟器上呈现图形的方式: 硬件:使用计算机显卡更快地渲染。 软件:使用基于软件的渲染。 自动:让模拟器确定最佳选项。此选项为默认设置。 通过在构建应用之前指定部署目标缩短了 AAPT 封装时间。这样,Android Studio 就可以仅封装指定设备所需的资源,从而提高了效率。 增加了 Cloud Test Lab 集成,以提供按需应用测试以及便捷、可扩展的云服务。详细了解如何将 Cloud Test Lab 与 Android Studio 搭配使用。 添加了新 GPU 调试程序的预览版。对于图形密集型应用,您现在可以可视化地单步调试 OpenGL ES 代码,以优化您的应用或游戏。 添加了 Google App Indexing Test。为您的应用添加了对网址、App Indexing 和搜索功能的支持,以协助您提升应用流量,发现最常用的应用内容,以及吸引新用户。在 Android Studio 中测试并验证应用中的网址。请参阅 Android Studio 中的支持网址和 App Indexing。 最新的 IntelliJ 15 版本升级,包括经过改进的代码分析和性能。有关新功能和增强功能的完整说明,请参阅 IntelliJ 更新内容。 现在,XML 编辑器自动填充功能可在填充属性时添加引号。如需检查此选项是否已启用,请打开 SettingPreferences 对话框,依次转到 Editor > General > Smart Keys,然后选中 Add quotes for attribute value on attribute completion 旁边的复选框。问题:195113 XML 编辑器现在支持对数据绑定表达式的代码补全功能。 旧版本

Android Studio v1.5.1(2015 年 12 月)

修复的问题和增强功能:

修复了布局编辑器中的渲染失败问题。 问题:194612 添加了按配置更改 description 清单属性的功能。 问题:194705 提高了 Android Studio Darcula 外观主题背景在 Vector Asset Studio 中的对比度。 问题:191819 向 Vector Asset Studio 添加了“Help”按钮支持。 添加了对用于数据绑定的 % 运算符的支持。问题:194045 修复了为了调试启动应用会导致调试程序连接到错误设备的问题。问题:195167 修复了在某些情况下尝试运行应用时可能出现的 Null 指针异常问题。

Android Studio v1.5.0(2015 年 11 月)

修复的问题和增强功能:

为 Android Monitor 添加了新的内存监视器分析功能。当您查看从此监视器捕获的 HPROF 文件时,显示内容现在更加实用,因此您可以更快地发现问题(例如内存泄漏)。如需使用此监视器,请点击主窗口底部的 Android Monitor。在 Android Monitor 中,点击 Memory 标签页。监视器运行时,点击 Dump Java Heap 图标,然后点击主窗口中的 Captures 并双击该文件进行查看。点击右侧的“Capture Analysis”。(Android Device Monitor 不能与 Android Monitor 同时运行。) 添加了新的深层链接和应用链接支持。代码编辑器可以自动为 AndroidManifest.xml 文件中的深层链接创建 intent 过滤器。它还可以生成代码,以帮助您在 Java 文件的 Activity 中集成 App Indexing API。深层链接测试功能可帮助您验证指定的深层链接是否可以启动应用。在“Run/Debug Configurations”对话框的 General 标签页中,您可以指定深层链接启动选项。您还可以使用显示的 Android Monitor logcat 在 Activity 中测试 App Indexing API 调用。Android lint 工具现在会针对某些涉及深层链接和 App Indexing API 的问题发出警告。 添加了在代码编辑器中代码填充自定义视图时使用简称的功能。 添加了对向 Vector Asset Studio 添加更多 VectorDrawable 元素的支持,以实现向后兼容性。Vector Asset Studio 可使用这些元素将矢量可绘制对象转换为 PNG 光栅图片,以用于 Android 4.4(API 级别 20)及更低版本。 为 Android TV 和 Android Auto 添加了新的 lint 检查,以便在 Android Studio 中提供可操作的即时反馈,以及一些快速修复。例如,对于 Android TV,它可以报告权限、不受支持的硬件、uses-feature 元素和缺少横幅问题,并针对其提供快速修复。对于 Android Auto,它可验证从 AndroidManifest.xml 文件引用的描述符文件中的正确用法,在 MediaBrowserService 类没有 intent 过滤器时进行报告,并识别特定语音操作问题。 针对不安全的广播接收器、SSLCertificateSocketFactory 和 HostnameVerifier 类使用以及 File.setReadable() 和 File.setWritable() 调用添加了新的 lint 检查。它还会检测无效的清单资源查询,尤其是对于因配置而异的资源。 修复了许多稳定性问题。

Android Studio v1.4.1(2015 年 10 月)

修复的问题和增强功能:

修复了 Gradle 模型缓存问题,该问题可能会导致在重启 IDE 时执行过多的 Gradle 同步。 修复了原生调试死锁问题。 修复了会屏蔽控制系统为 Subversion 1.9 版本的用户的问题。 修复了“Device Chooser”对话框问题:在连接未经授权的设备后,您无法再选择模拟器。问题:189658 修复了对于在区域中具有区域限定符和翻译内容的语言区域,翻译错误报告不准确的问题(但基础语言区域中不存在此问题)。问题:188577 修复了 Theme Editor 中与布局编辑器的互动相关的死锁问题。问题:188070 修复了 Theme Editor 重新加载和修改冲突会导致属性无法正确更新的问题。(问题:187726) 改进了 Theme Editor 的性能。 修复了清单中忽略 android:required 属性的问题。问题:187665

Android Studio v1.4.0(2015 年 9 月)

修复的问题和增强功能:

添加了 Vector Asset Studio 工具,用于导入矢量图形,例如 Material 图标和 SVG 文件。如需使用此工具,请在 Project 窗口的 Android 视图中,右键点击 res 文件夹,然后依次选择 New > Vector Asset。 添加了新的 Android Monitor 功能、GPU 和网络。如需使用此类监视器,请点击主窗口底部的 Android Monitor。Android Device Monitor 不能与 Android Monitor 同时运行。 添加了 Theme Editor 的早期预览版。如需使用此功能,请依次选择 Tools > Android > Theme Editor。 更新了设计支持库的 Android 模板。模板现在包含对 Material Design 规范的支持以及 appcompat 支持库,以实现向后兼容性。

Android Studio v1.3.2(2015 年 8 月)

修复的问题和增强功能:

添加了对 Android 6.0(API 级别 23)的支持,包括新图标和 AVD 管理器对创建设备(具有新屏幕密度)的支持。 修复了更新检查期间发生的异常。问题:183068 修复了未解析的视图坐标可能会导致布局编辑器崩溃的问题。问题:178690 修复了资源类型警告无效的问题。问题:182433 修复了之前将资源错误地标记为私有的 Lint 检查。问题:183120

Android Studio v1.3.1(2015 年 8 月)

修复的问题和增强功能:

修复了对在 Windows 上创建 Android Wear Android 虚拟设备 (AVD) 的支持。 更新了“Project Wizard”以使用输入的项目名称。 添加了对允许 Android SDK 存储在只读目录中的支持。 Android plugin for Gradle 版本已更新为 1.3.0。 修复了从 Android 调试桥 (adb) Unix shell 启动调试会话的问题。 修复了 Java 软件包重命名消息,以显示正确的软件包名称。

Android Studio v1.3.0(2015 年 7 月)

修复的问题和增强功能:

添加了通过 Android Studio 在您的应用中启用开发者服务(例如 Google AdMob 和 Google Analytics(分析))的选项。 添加了其他注解,例如 @RequiresPermission、@CheckResults 和 @MainThread。 添加了通过 Memory Monitor 生成 Java 堆转储和分析线程分配的功能。您还可以在 Android Studio 中将 Android 专属 HPROF 二进制格式文件转换为标准 HPROF 格式。 将 SDK 管理器集成到了 Android Studio 中,以简化软件包和工具访问并提供更新通知。

注意:独立 SDK 管理器仍可从命令行运行,不过,我们建议仅将其与独立安装的 SDK 结合使用。

在模拟器控制台中添加了 finger 命令,以模拟指纹身份验证。 添加了 资源声明,以将库资源指定为公共和私有资源。

注意:需要 Android plugin for Gradle 版本 1.3 或更高版本。

添加了数据绑定支持,以创建将应用逻辑绑定到布局元素的声明式布局。 添加了对单独测试 APK 模块的支持,以在 Android Studio 中构建测试 APK。 更新了 AVD 管理器,添加了 HAXM 优化和经过改进的通知。 添加了对 QEMU 2.1 的 64 位 ARM 和 MIPS 模拟器支持。 通过添加快速修复(例如自动生成 Parcelable 实现),简化了 Lint 警告的解决方法。 添加了对快速插入代码段的实时模板支持。

Android Studio v1.2.2(2015 年 6 月)

修复的问题和增强功能:

修复了会阻碍构建完成的 build 问题。

Android Studio v1.2.1(2015 年 5 月)

修复的问题和增强功能:

修复了不严重的性能和功能问题。

Android Studio v1.2.0(2015 年 4 月)

修复的问题和增强功能:

更新了 Android 运行时窗口以包含 Memory Monitor 工具,并添加了一个用于监控 CPU 性能的标签页。 在左侧空白处添加了一个“Captures”标签页,以显示捕获的内存和 CPU 性能数据文件,例如 CPU 方法跟踪和内存堆快照。 通过额外的元数据注解和推断的可为 null 性扩展了注解支持。 增强了翻译编辑器,并对现行最佳做法 (BCP) 47(它使用 3 个字母的语言和区域代码)提供额外的支持。 集成了 IntelliJ 14 和 14.1 功能,使代码分析和性能得到改进: 增强了调试功能,以显示变量和引用对象的内嵌值,以及执行 lambda 和运算符表达式的内嵌计算。 为标签页和缩进尺寸添加了代码样式检测。 为没有项目文件的代码实验和原型设计添加了临时文件。 添加了在 HTML 和 XML 文件中同时插入起始和结束标记的功能。 添加了一个内置的 Java 类反编译器,以便您可以查看未提供源代码的库中的内容。

有关新功能和增强功能的完整说明,请参阅 IntelliJ 更新内容。

为临时文件、项目文件、问题、生产和测试添加了额外的项目视图,以增强项目管理和访问。 增强了 File > Settings 菜单和对话框,以改进设置访问和管理功能。 添加了对 Windows 和 Linux 的高密度显示屏的支持。 添加了对 res/drawable-280dpi/ 文件夹中的 280 dpi 资源的支持。

Android Studio v1.1.0(2015 年 2 月)

各种修复的问题和增强功能:

添加了对 Android Wear 手表模板的支持。 修改了新的项目和模块创建,以包含用于特定密度专用启动器图标的 res/mipmap 文件夹。这些 res/mipmap 文件夹会替换用于启动器图标的 res/drawable 文件夹。 更新了启动器图标以获得 Material Design 外观并添加了 xxxhdpi 启动器图标。 添加并增强了针对区域和语言组合、启动器图标、资源名称以及其他常见代码问题的 Lint 检查。 添加了对现行最佳做法 (BCP) 语言标记 47 的支持。

Android Studio v1.0.1(2014 年 12 月)

各种修复的问题和增强功能:

修复了 AVD 管理器和 device.xml 文件锁定问题。 修复了 Windows 系统上的模拟器日志问题。 修复了使用安装在 Windows 系统的不同驱动器上的 Android Studio 和 Android SDK 创建 AVD 的问题。 将新下载内容的默认更新渠道设置为 Stable。如果您安装了 1.0.0 版 Android Studio,并且想要获得可用于生产环境的稳定版更新,请依次选择 File > Settings > Updates 以切换到 Stable 更新渠道。

Android Studio v1.0(2014 年 12 月)

Android Studio 初始版本。

Android Studio v0.8.14(2014 年 10 月)

如需查看更改的完整列表,请访问 tools.android.com。

Android Studio v0.8.6(2014 年 8 月)

要查看更改的完整列表,请参阅 tools.android.com。

Android Studio v0.8.0(2014 年 6 月)

添加了对 Android Wear 项目的支持。

要查看更改的完整列表,请参阅 tools.android.com。

Android Studio v0.5.2(2014 年 5 月)

要查看更改的完整列表,请参阅 tools.android.com。

Android Studio v0.4.6(2014 年 3 月)

要查看更改的完整列表,请参阅 tools.android.com。

Android Studio v0.4.2(2014 年 1 月)

要查看更改的完整列表,请参阅 tools.android.com。

Android Studio v0.3.2(2013 年 10 月)

要查看更改的完整列表,请参阅 tools.android.com。

Android Studio v0.2.x(2013 年 7 月)

合并到最新的 IntelliJ 代码库更改中。包括针对 Studio 用户所报告的问题的修复,例如对 Linux 字体大小和字体呈现进行调整。 Android Gradle 插件更新为 0.5.0 版。

注意:此新版本不向后兼容。 打开使用旧版插件的项目时,Studio 会显示内容为 Gradle project refresh failed 的错误消息。

更新后的 Gradle 插件包含以下更改:

修复了 IDE 模型以包含输出文件,即使它是通过 DSL 自定义的。还修复了 DSL 以获取/设置变量对象上的输出文件,这样就不必使用 variant.packageApplication or variant.zipAlign 修复了依赖项解析问题,以便我们一起解析默认配置、构建类型和变体的组合(而不是单独解析)。 修复了库项目测试的依赖项,以正确包含库本身的所有依赖项。 修复了两个依赖项具有相同叶名的问题。 修复了无法对特性应用 Proguard 规则文件的问题。

如需查看所有 Gradle 插件版本说明,请访问 http://tools.android.com/tech-docs/new-build-system。

来自 aapt 的 Gradle 错误不再指向 build/ 文件夹中的合并输出文件,而是指回真实的源位置。 并行构建。现在可以使用 Gradle 的并行构建。请注意,并行构建处于“孵化”阶段(请查看 Gradle 的文档)。默认情况下,此功能处于关闭状态。如需启用此功能,请依次转到 Preferences > Compiler,然后选中“Compile independent modules in parallel”复选框。 进一步优化了用于在编辑器中呈现布局和折叠资源等用途的新资源存储区: 对 .aar 库依赖项的基本支持(例如,使用不含源文件的本地副本的库)。仍不适用于源编辑器中的资源 XML 验证和导航。 资源引用中的循环检测。 快速文档 (F1),可在文字插入点下显示相应字符串的所有译文,现在还将显示来自各种 Gradle 变种和构建类型以及库的所有资源叠加层。它们按资源叠加层逆序列出,并在已遮盖的字符串版本上添加了删除线。 修复了在模块依赖项集发生更改时如何更新合并资源的问题。 修复了 XML 呈现问题,以正确处理字符实体声明以及 XML 和 Unicode 转义。 针对布局预览和布局编辑器窗口的“保存屏幕截图”支持。 修复了模板 bug。 修复了 lint bug。 对崩溃报告进行了各种修复。非常感谢,您可以继续提交崩溃报告了!

Android Studio v0.1.x(2013 年 5 月)

修复了各种 bug,包括修复了常见的 Windows 安装问题。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3