作者| 恋猫de小郭| 掘金
Android Studio 4.0(2020年5月) 更新啦,此版本包含了各种新功能和改进,还有一些废弃配置。
重要提示:更新后,需要重新启动 Android Studio 才能应用从早期版本的 IDE 迁移的所有内存设置。有关更多信息,请参见“已知问题”页面。
最新版本的 Android Gradle 插件包含许多更新,例如 Java 8 对较旧版本的 Android 功能上的依赖项进行了更新。要了解更多信息可阅读【完整的Android Gradle插件发行说明】(
android.devsite.corp.google.com/studio/rele…)。
此外,Android Studio 的新功能可帮助您提高构建性能。
1、构建分析器
当将 Android Studio 4.0 与 Android Gradle 插件 4.0.0 及更高版本一起使用时,Build Analyzer 窗口可帮助你了解和诊断构建过程中的问题,例如禁用的优化和配置不正确的 task,要打开 Build Analyzer 窗口,请按照下列步骤操作:
Build Analyzer 窗口在左侧的树中组织可能的构建问题。你可以检查并单击每个问题,以在右侧面板中调查其详细信息。
当 Android Studio 分析构建时,它将计算确定构建持续时间的一组任务,并提供可视化帮助你了解每个任务的影响,你还可以通过展开 Warnings 节点来获取有关警告的详细信息。
检查确定构建持续时间的任务。
2、Java 8库在D8和R8中逐渐消失
Android Studio 现在支持使用多种 Java 8 语 言API,而无需给应用程序设置最低 API 级别。
通过一个称为 desugaring 的过程,Android Studio 3.0 及更高版本中的 DEX 编译器 D8 已经为Java 8 语言功能(例如lambda表达式,默认接口方法,尝试资源等)提供了实质性支持。
在Android Studio 4.0中,已将 desugaring engine 扩展为能够对 Java 语言 API 的语法糖。这意味着你现在可以在 java.util.streams 支持较旧版本的 Android 的应用程序中,包含仅在最新的Android版本中可用的标准语言API 。
此版本支持以下一组API:
为了支持这些语言API,D8 会编译一个单独的库DEX文件,该文件包含了一些本身缺少API的实现,并将其包含在您的应用程序中,而 desugaring 的过程 将重写您的应用程序代码,以在运行时使用此库。
要启用对这些语言API的支持,请在模块build.gradle文件中包括以下内容:
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'
}
3、功能上的依存关系
在早期版本的 Android Gradle 插件中,所有动态功能模块都只能依赖于应用程序的基本模块。
现在,当使用 Android Gradle 插件 4.0.0 及更高版本时,可以包括一个依赖于另一个功能模块的功能模块,即 :video 功能可以取决于:camera 功能,而功能取决于基础模块,结果如下图所示。
动态功能 :video 取决于 :camera 的功能,后者取决于基本 :app 模块。
这意味着,当应用程序请求下载动态功能模块时,该应用程序还会下载其依赖的其他功能模块,在之后创建动态功能模块,你可以在模块声明一个功能上特征依赖 build.gradle 文件,例如 :video 模块声明对 :camera 以下项的依赖关系:
// In the build.gradle file of the ':video' module.
dependencies {
// All dynamic feature modules must declare a dependency
// on the base module.
implementation project(':app')
// Declares that this module also depends on the 'camera'
// dynamic feature module.
implementation project(':camera')
...
}
此外,你可以通过在菜单栏中单击 Help > Edit Custom VM Options 并启用以下功能,在 Android Studio 中启用 feature-on-feature dependency 功能(例如,在编辑 Run configuration 时支持该功能):
-Drundebug.feature.on.feature=true
4、依赖元数据
使用 Android Gradle 插件 4.0.0 及更高版本构建应用时,该插件包含描述已编译到应用中的依赖项的元数据,uploading 应用程序时,Play 控制台会检查此元数据提供以下好处:
数据经过压缩,通过 Google Play 签名密钥加密,并存储在发布应用的签名栏中,你也可以自己在以下目录中的本地中间构建文件中检查元数据:/
/build/outputs/sdk-dependencies/release/sdkDependency.txt。
如果不想共享此信息,可以通过在模块 build.gradle 文件中添加以下内容来退出:
android {
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
}
Android Gradle 插件现在支持 Kotlin DSL 构建脚本文件(*.kts),配合 Android Studio 结合使用时,某些 IDE 功能(例如 Project Structure 对话框和构建脚本快速修复程序)现在还支持读写 Kotlin 构建脚本文件。
根据用户的反馈,谷歌将集中精力通过两种重要方式来改善 CPU Profiler 中的用户体验。
首先,与以前的 Android Studio 版本相比,CPU Profiler 中 CPU 记录的错误率已大大降低。
其次,对 CPU Profiler UI 进行了全面改进,以提供更直观的工作流程,其中 UI的一些显着更改包括:
此版本的 Android Studio 包括对设计工具的更新,例如 Layout Inspector (布局检查器)和全新的 Motion Editor 。
1、新动作编辑器
Android Studio 现在包括用于 MotionLayout 布局类型的可视设计编辑器,使创建和预览动画更加容易。
动作编辑器提供了一个简单的界面,用于处理 MotionLayout 库中的元素,这些元素是 Android 应用中动画的基础。
在以前的版本中,创建和更改这些元素需要手动编辑XML资源文件中的约束。现在,运动编辑器可以为您生成此XML,并支持开始和结束状态,关键帧,过渡和时间轴。
要了解有关如何使用运动编辑器的更多信息,请参见用户指南。
⚠️注意:在使用 Motion 编辑器之前,请确保将文件中的 ConstraintLayout 依赖项设置 build.gradle 为 version 2.0.0-beta3 或更高版本。
2、Live Layout Inspector
使用 Live Layout Inspector 调试版式,在将应用程序部署到设备时可提供对应用程序UI完整的实时更新。
要打开 Layout Inspector 窗口,请转到 View > Tools Windows > Layout Inspector。除了现有布局检查器的许多相同功能外,实时布局检查器还包括:
仅当将应用程序部署到运行 API级别 29 或更高版本的设备或仿真器时,才能使用 Live Layout Inspector,要启用实时布局检查器,请转到File > Settings > Experimental,然后选中 Enable Live Layout Inspector 旁边的框 ,然后,单击 Live updates 上方 Layout Display 旁边的复选框。
3、布局验证
Layout Validation (布局验证)是一种可视化工具,可用于同时预览不同设备和配置上的布局,从而帮助检测布局错误并创建更多可访问的应用程序。
用户可以通过单击IDE窗口右上角的 Layout Validation 选项卡来访问此功能:
在 Layout Validation 窗口中,可以从四个不同的配置集中选择:
要了解有关使用布局验证的更多信息,请参阅使用Layout Inspector调试布局。
当打开 R8 的代码收缩规则文件时,Android Studio 现在提供智能编辑器功能,例如:语法突出显示、代码完成和错误检查。该编辑器还与 Android Studio 项目集成在一起,为所有类、方法和字段提供完整的符号补全,并包括快速导航和重构。
Android Studio 现在包括适用于 Kotlin 类的Android 实时模板。例如,现在可以键入 toast 并按 Tab 键快速插入 Toast。
有关可用实时模板的完整列表,请从菜单栏中单击 File > Settings(或在macOS上为 Android Studio > Preferences ),然后导航 Editor > Live Templates。
现在,当您导航到File > New > Fragment > Gallery或在“导航”编辑器中单击Create new destination时,即可使用“New Android Fragment wizard”向导和新的片段模板。
使用Android 11图像时,Android Emulator相机包括以下新功能:
要了解有关为下一版Android开发的更多信息,请转到 Android 11 Developer Preview用户文档。
Jetbrains CLion 是支持 Android Studio C ++ 语言支持的技术,现在使用基于 LLVM clangd 和 clang-tidy 的检查引擎,加快了 C / C ++ 代码的完成速度,并提供了与 clang-tidy 的更无缝集成。
现在,在 Android Studio C++ 代码编辑器中可用,clangd 和 clang-tidy 都是开源LLVM额外工具的一部分:
在以前的版本中,Android Studio 用户可以通过 NDK 使用 clang-tidy;有了这一更改,Android Studio 不再依赖NDK的整洁功能。
ndk.dir 不应再在应用程序的 local.properties 文件中 ndk.dir 设置,并且在以后的版本中将删除对此设置的支持。Android Gradle 插件默认设置NDK版本,但是如果您需要NDK的特定版本,则可以 android.ndkVersion 在中设置 build.gradle 。
有关设置NDK的更多信息,请参阅[安装和配置NDK和CMake](Install and configure the NDK and CMake)。
核心 Android Studio IDE 已更新,并通过IntelliJ IDEA 进行了改进,直至 2019.3.3 版本。