百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Android Studio 4.0 稳定版发布了

bigegpt 2024-08-07 17:51 10 浏览

Android Studio 4.0(2020年5月) 更新啦,此版本包含了各种新功能和改进,还有一些废弃配置。

重要提示:更新后,需要重新启动 Android Studio 才能应用从早期版本的 IDE 迁移的所有内存设置。有关更多信息,请参见“已知问题”(https://developer.android.com/studio/known-issues#memory-settings)页面。

一、Android Gradle 插件 4.0.0

最新版本的 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 窗口,请按照下列步骤操作:

  • 1、如果尚未执行此操作,请通过从菜单栏中选择 Build> Make Project 来构建应用程序。
  • 2、从菜单栏中选择 View > Tool Windows > Build
  • 3、在 Build 窗口中,以下列方式之一打开 Build Analyzer 窗口: Android Studio完成构建项目后,单击 Build Analyzer 选项卡。 Android Studio完成构建项目后,单击 Build Output 窗口右侧的链接。

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:

  • Sequential streams (java.util.stream1)
  • A subset of java.time
  • java.util.function
  • Recent additions to java.util.{Map,Collection,Comparator}
  • Optionals(java.util.Optional,java.util.OptionalInt and some other new classes useful with the above APIs
  • Some additions to java.util.concurrent.atomic (new methods on AtomicInteger, AtomicLong and AtomicReference)
  • ConcurrentHashMap (with bug fixes for Android 5.0)

为了支持这些语言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 控制台会检查此元数据提供以下好处:

  • 获取有关你的应用使用的SDK和依赖项的已知问题的警报
  • 收到可行的反馈来解决这些问题

数据经过压缩,通过 Google Play 签名密钥加密,并存储在发布应用的签名栏中,你也可以自己在以下目录中的本地中间构建文件中检查元数据:<project>/<module>/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
    }
}
复制代码

二、支持 Kotlin DSL 脚本文件

Android Gradle 插件现在支持 Kotlin DSL 构建脚本文件(*.kts),配合 Android Studio 结合使用时,某些 IDE 功能(例如 Project Structure 对话框和构建脚本快速修复程序)现在还支持读写 Kotlin 构建脚本文件。

三、 CPU Profiler 升级



根据用户的反馈,谷歌将集中精力通过两种重要方式来改善 CPU Profiler 中的用户体验。

首先,与以前的 Android Studio 版本相比,CPU Profiler 中 CPU 记录的错误率已大大降低。

其次,对 CPU Profiler UI 进行了全面改进,以提供更直观的工作流程,其中 UI的一些显着更改包括:

  • CPU记录与主探查器时间轴分开了以便于分析,记录的数据在 Profiler 窗口的左侧按组分布。用户可以通过单击探查器中的选项图标 在窗口右上角的选项图标图标或通过拖放组中的单个项目来上下移动组以重新组织列表 。
  • 为了更轻松地进行并排分析,用户现在可以在线程活动时间轴中查看所有线程活动(包括方法,函数和事件)。有几种方法可以浏览时间轴: 要关注特定的时间点,请在 CPU 使用率图表的左上方拖动一个范围。 要放大或缩小,请在按住 Control(或MacOS上的Command)的同时使用鼠标滚轮;要向左或向右平移,请在按住空格键的同时拖动。 或者使用W和A键进行精细的放大和缩小,使用S和D键进行左右的精细平移。
  • Flame ChartTop DownBottom Up 分析的选项卡现在位于右侧列中,在 Threads 组中,对于系统跟踪记录线程会自动展开,对于其他记录类型默认情况下会折叠起,在线程名称上双击(或按Enter)以展开或折叠它们。
  • 如屏幕截图所示,系统跟踪UI还包括以下改进:



  • 现在事件采用了独特的颜色,以便于区分。
  • 线程按它们中的跟踪事件数进行排序,以便 “busier” 的线程在列表中排名更高。
  • 可以选择一个或多个线程以仅在那些选定的线程的右列中查看分析。
  • 同样,可以在任何线程中选择一个跟踪事件以查看其分析数据。

四、设计工具

此版本的 Android Studio 包括对设计工具的更新,例如 Layout Inspector (布局检查器)和全新的 Motion Editor

1、新动作编辑器

Android Studio 现在包括用于 MotionLayout(https://developer.android.com/training/constraint-layout/motionlayout) 布局类型的可视设计编辑器,使创建和预览动画更加容易。

动作编辑器提供了一个简单的界面,用于处理 MotionLayout 库中的元素,这些元素是 Android 应用中动画的基础。

在以前的版本中,创建和更改这些元素需要手动编辑XML资源文件中的约束。现在,运动编辑器可以为您生成此XML,并支持开始和结束状态,关键帧,过渡和时间轴。

要了解有关如何使用运动编辑器的更多信息,请参见用户指南(https://developer.android.com/studio/write/motion-editor)。



??注意:在使用 Motion 编辑器之前,请确保将文件中的 ConstraintLayout 依赖项设置 build.gradle 为 version 2.0.0-beta3 或更高版本。

2、Live Layout Inspector

使用 Live Layout Inspector 调试版式,在将应用程序部署到设备时可提供对应用程序UI完整地实时更新。

要打开 Layout Inspector 窗口,请转到 View > Tools Windows > Layout Inspector。除了现有布局检查器的许多相同功能外,实时布局检查器还包括:

  • Dynamic layout hierarchy(动态布局层次结构):随着设备视图的更改而更新。



  • Property values resolution stack:(属性值解析堆栈):调查资源属性值在源代码中的起源,并通过遵循属性窗格中的超链接导航到其位置。



  • 3D view(3D视图):在运行时通过高级 3D 可视化查看应用程序的视图层次结构,要使用此功能,只需在 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 窗口中,可以从四个不同的配置集中选择:

  • Pixel Devices :在多种像素设备上预览应用。
  • Custom :使用自定义显示选项(例如屏幕方向或语言)预览应用。
  • Color Blind:使用常见色盲类型的模拟预览应用。
  • Font Sizes:使用各种字体大小预览应用。

要了解有关使用布局验证的更多信息,请参阅使用Layout Inspector调试布局(https://developer.android.com/studio/debug/layout-inspector#layout-validation)。

五、用于代码收缩规则的智能编辑器功能

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



六、Kotlin Android实时模板

Android Studio 现在包括适用于 Kotlin 类的Android 实时模板。例如,现在可以键入 toast 并按 Tab 键快速插入 Toast。

有关可用实时模板的完整列表,请从菜单栏中单击 File > Settings(或在macOS上为 Android Studio > Preferences ),然后导航 Editor > Live Templates

七、Fragment wizard and new fragment templates

现在,当您导航到File > New > Fragment > Gallery或在“导航”编辑器中单击Create new destination时,即可使用“New Android Fragment wizard”向导和新的片段模板。

八、在 Android 模拟器中扩展了相机支持

使用Android 11图像时,Android Emulator相机包括以下新功能:

  • RAW拍摄
  • YUV后处理
  • Level 3 devices
  • 逻辑相机支持

要了解有关为下一版Android开发的更多信息,请转到 Android 11 Developer Preview用户文档(https://developer.android.com/preview)。

九、clangd 现在可用于 C ++代码编辑器

Jetbrains CLion 是支持 Android Studio C ++ 语言支持的技术,现在使用基于 LLVM clangd 和 clang-tidy 的检查引擎,加快了 C / C ++ 代码的完成速度,并提供了与 clang-tidy 的更无缝集成。

现在,在 Android Studio C++ 代码编辑器中可用,clangd 和 clang-tidy 都是开源LLVM额外工具的一部分:

  • clangd具有代码完成功能,在编辑器中编译错误消息以及定位导航。
  • clang-tidy是C ++ linter工具,具有可扩展的框架,用于诊断和修复典型的编程错误。

在以前的版本中,Android Studio 用户可以通过 NDK 使用 clang-tidy;有了这一更改,Android Studio 不再依赖NDK的整洁功能。

十、已弃用 local.properties 文件中的ndk.dir设置

ndk.dir 不应再在应用程序的 local.properties 文件中 ndk.dir 设置,并且在以后的版本中将删除对此设置的支持。Android Gradle 插件默认设置NDK版本,但是如果您需要NDK的特定版本,则可以 android.ndkVersion 在中设置 build.gradle 。

有关设置NDK的更多信息,请参阅[安装和配置NDK和CMake](Install and configure the NDK and CMake)。

十一、IntelliJ IDEA 2019.3.3

核心 Android Studio IDE 已更新,并通过IntelliJ IDEA 进行了改进,直至 2019.3.3 版本。

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...