Android Studio 3.4发行说明(2019年4月)

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



IntelliJ IDEA 2018.3.4


  • 2018.3.4版起,Android Studio核心已通过IntelliJ IDEA的增强功能进行了更新

Android Gradle插件3.4.0


  • 关于Android Gradle插件3.4.0中的新功能,请参见发行说明

新建项目结构对话框


  • 新的“项目结构”对话框(PSD)使更新依赖项和配置项目的各个方面变得容易,例如模块,构建选项,签名配置和构建变量
  • 您可以通过在菜单中选择“文件>项目结构”来打开PSD。 您也可以在Windows和Linux上通过Ctrl + Shift + Alt + S或Command +打开PSD。 (分号)在macOS上。 以下是PSD创新和更新的描述。

变数


  • 本节允许您创建和管理构建变量,例如,指定整个项目对应的依赖项的版本

    图片


    • 快速概览和编辑项目的gradle构建脚本中已经存在的构建变量
    • 直接从“项目结构”对话框中将新的构建变量添加到项目或模块级别
    • 注意:如果现有的构建配置文件通过复杂的Groovy脚本指定值,则可能无法通过“项目结构”对话框来编辑这些值。 此外,您无法使用“项目结构”对话框来编辑用Kotlin编写的构建文件


模组


  • 配置适用于模块中现有所有构建选项的属性,或使用“模块”部分将新模块添加到项目中。 例如,在这里您可以配置defaultConfig属性或管理签名配置

依存关系


  • 请按照以下步骤检查并查看Gradle构建的项目的依赖关系图的每个依赖关系图:


    1. 在PSD的左窗格中,选择“依赖项”
    2. 在“模块”面板中,选择要查看其依赖性的模块
    3. 在PSD的右侧,打开“ Resolved Dependencies”面板,如下所示

      图片

  • 您还可以通过选择模块并单击“声明的依赖项”部分中的“ +”按钮,然后选择要添加的依赖项类型,来快速找到依赖项并将其添加到项目中


  • 根据您选择的依赖关系类型,您应该会看到一个类似于以下所示的对话框,该对话框可帮助您将依赖关系添加到模块中

    图片



组装选项


  • 在PSD的这一部分中,将为项目中的每个模块创建和配置构建选项和版本(“产品口味”)。 您可以添加清单模板(“占位符”),ProGuard文件并分配签名密钥等。

    图片

小费


  • 您可以在“建议”部分中看到项目的建议依赖关系更新和构建选项,如下所示

    图片

新的“资源经理”


  • “资源管理器”是用于导入,创建,管理和使用应用程序资源的新工具。 您可以通过菜单“视图>工具窗口>资源管理器”打开此工具。 资源管理器允许您执行以下操作:

    图片


    • 可视化资源:您可以预览可绘制对象,颜色和布局以快速找到合适的资源
    • 批量导入:您可以一次将多个可绘制资产导入,只需将它们拖动到“资源管理器”中或通过导入可绘制向导即可。 要访问该向导,请单击窗口左上角的“ +”按钮,然后从下拉列表中选择“导入可绘制对象”
    • 将SVG文件转换为VectorDrawables:您可以使用Import Drawables向导将SVG图像转换为VerctorDrawables
    • 拖放资产:从“资源管理器”窗口中,您可以将可绘制对象拖动到布局编辑器(“布局编辑器”)的设计和XML小部件中
    • 窗口小部件的替代版本:现在,您可以通过双击“工具”窗口中的资源来获得资源的替代版本。 您将看到创建的不同版本以及它们包含的限定符。
    • 平铺或列表显示您可以使用它们的不同布局来更改资源可视化窗口中的显示

  • 有关更多信息,请参见“ 管理应用程序资源”手册。



在分析和调试APK时验证构建ID


  • 当您在APK内部提供共享.so库的“调试符号文件”时,Android Studio会检查“ debugging符号文件”的内部版本ID是否与APK内部.so库的内部版本ID相匹配
  • 如果您使用构建ID在APK中收集本机库,则Android Studio会检查“符号文件”的构建ID与本机库的构建ID是否匹配,如果不匹配,则重置“符号文件”。 如果您未使用构建ID进行构建,则在调试时提供不正确的“符号文件”可能会导致问题

默认情况下启用R8


  • R8一步将除糖,压缩,混淆,优化和解组结合在一起,从而显着提高了性能。 R8是在Android Gradle插件3.3.0中引入的,默认情况下,使用插件版本3.4.0或更高版本的应用程序和Android库项目均已启用R8


  • 下图概述了R8之前的编译过程

    图片


  • 现在,使用R8,可以一步完成除糖,压缩,混淆,优化和分解(D8),如下所示

    图片


  • R8旨在与您现有的ProGuard规则配合使用,因此您无需采取任何措施即可利用R8。 同时,由于这项技术不同于专为Android项目设计的ProGuard,因此压缩和优化可能包括删除ProGuard不会删除的代码。 因此,在这种不太可能的情况下,您可能需要添加其他规则以将此代码保存在最终程序集中


  • 如果您在使用R8时遇到问题,请阅读R8兼容性常见问题解答,以检查是否有现成的解决方案。 如果尚未记录解决方案,请报告错误 。 您可以通过将以下说明之一添加到项目的gradle.properties文件中来禁用R8:

     <i>#仅对Android库模块禁用R8 </ i>
     android.enableR8.libraries = false </ p>
     <p> <i>#禁用所有模块的R8 </ i>
     android.enableR8 =否
    

  • 注意:对于指定的程序集类型,如果您在应用程序模块的build.gradle文件中为useProguard设置为false,则无论是否在项目的gradle.properties文件中禁用了R8,Android Gradle插件都将使用R8压缩此类程序集的应用程序代码。




  • 导航编辑器现在支持导航组件支持的所有类型。 有关支持的类型的更多信息,请参阅在目标之间传递数据

布局编辑器中的改进


  • 布局编辑器中的“属性”面板已简化为一页,其中包含可扩展以配置所需属性的部分。 “属性”面板还具有以下更新:


    • 新的“声明的属性”部分列出了布局文件中指定的属性,并允许您快速添加新的
    • 当属性值是资源时,“属性”面板现在在填充的每个属性旁边还配备了一个指示器
    • 现在,带有错误和警告的属性将突出显示。 红色突出显示表示错误(例如,当您使用不正确的放置值时),橙色指示警告(例如,当您使用硬编码的值时)


快速导入依赖项的新操作提示


  • 如果您开始在代码中使用特定的Jetpack和Firebase类,则新的操作提示建议将必要的Gradle库依赖项添加到项目中(如果尚未添加)。 例如,如果您是第一次引用WorkManager类,则需要android.arch.work:work-runtime依赖项,并且操作提示使您可以单击添加它,如下所示

    图片
  • 特别是因为 Jetpack是在单独的软件包中提供的(这使得管理和更新它们更加容易),操作快捷方式可帮助您快速添加仅所用Jetpack组件所需的依赖项

3.4.0已知问题


  • 在运行Android Q Beta的设备上部署应用程序时,性能分析被禁用
  • 当使用数据绑定库时,LiveDataListener.onChanged()可能会附带NullPointerException。 此问题的修复程序将包含在Android Studio 3.4.1中,并且已在最新 Android Studio 3.5 预览版中提供 (请参见Bug 122066788

Source: https://habr.com/ru/post/zh-CN448860/


All Articles