Android Studio 3.6 正式发布

经历众多的测试版本后,谷歌终于发布了Android Studio 3.6的正式版本,这是Project Marble结束之后的第一个版本,增加了一些小功能,完善了现有的功能,解决了功能上的问题,改善了性能。可以通过下载地址https://developer.android.com/studio#downloads下载,或者使用AS中的Help菜单下的Check for Updates进行应用内升级。

设计

在设计编辑器中拆分视图

在之前版本的设计编辑器(例如布局编辑器和导航编辑器)中切换代码和布局,需要切换左下角的Design和Text,如果想要同时显示代码和布局,还需要点击"Preview"。而在AS 3.6中改为了拆分视图,在右上角有三个按钮:Code,Split,Design。可以随意切换,而且会保留信息(例如缩放系数)。使用示意图如下,
拆分视图
关于更详细的介绍可以查看文章https://medium.com/androiddevelopers/android-studio-design-tools-ux-changes-split-view-dcde75e88a0c

拾色器资源选项卡

在AS 3.6中新增了一个拾色器资源选项卡,更容易设置颜色资源的颜色。当需要使用已经定义的颜色资源时,可以打开颜色选择器进行选择,如下图
颜色选择器

开发

View binding

视图绑定是AS 3.6新增的一个功能,可以参考之前的文章https://blog.csdn.net/jklwan/article/details/102767871。它可以有效的防止空指针,强制类型转换异常等问题(在编译时就会报错而不是运行时),可以放心替换findViewById。想启用视图绑定,需要在module的build.gradle配置开启(前提是使用Android Gradle Plugin 3.6.0)

android {
	viewBinding {
		enabled = true
     }
}

Android NDK支持更新

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

  • 从 JNI 声明转到 C/C++ 中的对应实现函数。只需将鼠标悬停在托管源代码文件中的行号附近的 C 或 C++ 项标记上方,即可查看此映射。
  • 自动为 JNI 声明创建存根实现函数。首先定义 JNI 声明,然后输入"jni"或 C/C++ 文件中的方法名称进行激活。
    自动为 JNI 声明创建存根实现函数
  • 未使用的原生实现函数会在源代码中突出显示为警告。缺少实现的 JNI 声明也会突出显示为错误。
  • 如果您重命名(重构)某个原生实现函数,则所有对应的 JNI 声明都会更新。重命名 JNI 声明可更新原生实现函数。
  • 对隐式绑定的 JNI 实现进行签名检查。

其他关于 JNI 的改进

  • 外观显示

    • JNI 实现函数中会显示参数和返回值的类型提示。
    • 经过 JNI 重整的函数名称可以折叠。
      折叠函数名
  • RegisterNatives 支持

    • 自动补全方法声明名称、参数类型和返回类型。
      自动补全
    • 对方法声明名称进行重命名重构。
    • 对绑定 JNI 函数进行签名检查。
  • 有关 JNI 函数的其他帮助

    • 对于以下函数中的字符串字面量的自动补全、检查、导航和重命名重构支持:
      • FindClass
      • GetMethodID 和 GetStaticMethodID
      • GetFieldID 和 GetStaticFieldID
    • 针对以下函数的各种检查:
      • Call[Static]Method
      • CallNonvirtualMethod
      • Get[Static]Field
      • NewObject

IntelliJ平台更新

核心 Android Studio IDE 已更新,纳入了 IntelliJ IDEA(直到 2019.2版本 )中的相关改进,如“Services”工具窗口,新的UI界面,文件显示大小及修改时间等等。

扫描二维码关注公众号,回复: 9456811 查看本文章

Apply Changes功能更新

现在你可以添加一个类,然后使用Apply Changes即可生效,不必重新启动应用。

构建

Android Gradle Plugin(AGP)更新

AGP 3.6及以上版本支持 Maven Publish 插件,这个插件可让您将构建工件发布到 Apache Maven 代码库。AGP会为应用或库模块中的每个构建变体工件创建一个组件,您可以使用它来自定义要发布到 Maven 代码库的发布内容。
此外,AGP 3.6对大型项目的注解处理器(APT/ KAPT)有显著的性能提升,这是因为AGP现在直接生成R类字节码而不是.java文件。
注:使用AGP 3.6需要Gradle版本5.6.4之上。

新的默认打包工具

使用 AGP 3.6或更高版本来构建应用的调试版本时,该插件会使用一个新的打包工具(zipflinger)来构建 APK。这一新工具应该能够提高构建速度。不过如果使用过程中遇到问题,可以报告错误,也可以通过在 gradle.properties 文件中添加以下内容来恢复使用旧的打包工具:
编辑gradle.properties文件以禁用新的打包工具

测试

Android模拟器Google Maps UI

Android Emulator 29.2.12为应用程序开发人员提供了一种与仿真设备位置交互的新方法。现在将Google Maps用户界面嵌入了扩展控件菜单中,可以更容易指定位置并从成对的位置构造路线。可以保存各个点并将其作为虚拟位置重新发送到设备,也可以通过键入地址或单击两个点来生成路线。这些路线可以实时重播,因为路线上的位置被发送到客户操作系统。
Android Emulator location UI

多显示器支持

Android Emulator 29.1.10包含了对多个虚拟显示器的初步支持。随着具有多个可用显示器的设备的增多,在各种多显示器的配置的机器上测试应用非常重要。用户可以通过设置菜单(扩展控件 > 设置)配置多个显示。
多显示器支持
配置辅助显示

可恢复的SDK下载

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

导入经过更新的 APK

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

优化

Memory Profiler 中的泄漏检测

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

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

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

  1. 已创建 Fragment,但尚未使用它。
  2. 正在缓存 Fragment,但它不是 FragmentTransaction 的一部分。
    要使用此功能,请先捕获堆转储将堆转储文件导入 Android Studio。要显示可能泄漏内存的 Fragment 和 Activity,请选中 Memory Profiler 的堆转储窗格中的 Activity/Fragment Leaks 复选框。
    过滤堆转储以检测内存泄漏

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

检查 DEX 文件时,APK 分析器现在支持对类和方法字节码进行去混淆处理。要对字节码进行去混淆处理,请按以下步骤操作:

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

将纯 Kotlin APK 源代码附加到分析器

现在,当分析和调试预构建的 APK 时,可以附加纯 Kotlin 外部 APK 源代码。
请按照附加 Java 文件 (.java) 的用户指南中的说明进行操作,但应选择Kotlin 源文件 (.kt)。

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

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

注:谷歌现在建议使用64位系统,将逐渐放弃32位系统的支持,希望大家注意(做开发的应该也没几个使用32位系统的了吧,32位系统的内存实在太小了)。

发布了53 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/jklwan/article/details/104513764