Android Studio 3.2新功能特性

3,657 阅读12分钟

android studio3.2预览版本已经发布了,下面这些功能在最新的版本已经提供,但可能尚未在测试版本中发布渠道中提供。

什么是新的助理

Android Studio 3.2有一个新的Assistant面板,可以通知您有关Android Studio的最新更改。

如果检测到有新信息要显示,那么当您启动Android Studio时,该面板将打开。您还可以通过选择Help> Android Studio中的新增功能来打开“Assistant”面板 。

Android Jetpack

Android Jetpack通过组件,工具和指导来帮助加速Android开发,消除重复性任务,并使您能够更快,更轻松地构建高质量,可测试的应用程序。Android Studio包含以下更新以支持Jetpack。有关更多信息,请参阅Jetpack文档。

导航编辑器

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

要了解更多信息,请阅读 导航编辑器文档。

AndroidX重构

作为Jetpack的一部分,我们正在使用androidx命名空间将Android支持库重构为新的Android扩展库。有关更多信息,请阅读 AndroidX公告。

Android Studio 3.2通过新的重构功能帮助您完成此迁移。

要将现有项目重构为AndroidX,请选择“ Refactor”>“Refactor 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。
如果您不想迁移,请将两个标志设置为false。(这相当于文件中没有标志gradle.properties。)
当您使用Refactor to AndroidX命令或创建一个minSdkVersion设置为“P” 的新项目时,这两个标志都会设置为true。

重要提示:在当前的Android Studio 3.2 Canary版本中,存在一个已知问题,导致在android.useAndroidX使用“ 创建新项目”向导时不设置标志。目前,您需要在gradle.properties文件中手动设置标志。

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

Android应用程序包

Android App Bundle是一种新的上传格式,其中包含应用程序的所有已编译代码和资源,但会延迟APK生成并登录到Google Play商店。

Google Play的新应用服务模型称为动态投放,然后使用您的应用捆绑软件为每个用户的设备配置生成并提供优化的APK,因此每个用户只下载运行您的应用所需的代码和资源。您不再需要构建,签名和管理多个APK,并且用户可以获得更小,更优化的下载。

此外,您可以将动态功能模块添加到您的应用程序项目中,并将其包含在应用程序包中。通过动态交付,用户可以根据需要下载和安装应用的动态功能。

要构建一个包,请选择Build> Build Bundle(s)/ APK(s)> Build Bundle(s)。

有关更多信息(包括构建和分析Android应用程序包的说明),请参阅Android应用程序包 入门。

布局编辑器中的示例数据

许多Android布局具有运行时数据,这使得在应用程序开发的设计阶段难以可视化布局的外观和感觉。您现在可以在布局编辑器中轻松查看您的视图预览,其中包含示例数据。添加视图时, 在“Design”窗口中的视图下方会出现一个设置按钮 。点击此按钮设置设计时视图属性。您可以从各种样本数据模板中进行选择,并指定用于填充视图的样本项目数。

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

Silces

Silces提供了一种将Android应用程序的部分功能嵌入到其他用户界面表面的新方法。例如,Silces可以在Google搜索建议中显示应用功能和内容。

Android Studio 3.2具有内置模板,可帮助您使用新的Slice Provider API扩展您的应用程序以及新的lint检查,以确保在构建切片时遵循最佳做法。

要开始使用,请右键单击项目文件夹并选择New > Other > Slice Provider。

要了解更多信息,包括如何测试Silces交互,请阅读Silces入门指南。

Android profilers

在最新版本的Android Studio 3.2上尝试以下新的Android Profiler功能。

能源分析器

Energy Profiler显示应用程序的估计能源使用情况的可视化。

当您在运行Android 8.0(API 26)或更高版本的连接设备或Android模拟器上运行应用程序时,Energy Profiler会显示为Profiler窗口底部的新行。

点击Energy行,最大化Energy Profiler视图。将鼠标指针放在时间线上的条形图上,查看CPU,网络和位置(GPS)资源以及系统事件(如唤醒锁,警报和作业)的能源使用情况。

Sessions

您现在可以将Profiler数据保存为“会话”以便稍后重新访问和检查。(分析器会保留会话数据,直到您重新启动IDE。)

通过从主菜单中选择Run > Profile来部署应用程序后,通过单击+并从下拉菜单中选择一个应用程序进程来启动一个新的会话 。

当您 录制方法跟踪或 捕获堆转储时,IDE会将该数据(连同您的应用的网络活动)作为单独条目添加到当前会话中,并且您可以轻松地在录制之间来回切换以比较数据。要停止向当前会话添加数据,请单击stop。

系统跟踪

在CPU profiler中,选择新的 System Trace 配置以检查设备的系统CPU和线程活动。此跟踪配置基于 systrace 并且对于调查系统级问题(例如用户界面异常)非常有用。

在使用这种新的跟踪配置时,您可以通过在Trace类中安装代码,直观地在Profiler时间线中标记重要的代码例程。

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

如果您将应用部署到运行Android 8.0(API级别26)或更高级别的设备,则现在可以使用Memory Profiler检查应用的JNI代码的内存分配情况 。

在您的应用程序运行时,选择您想要检查的部分时间轴,然后从班级列表上方的下拉菜单中选择 JNI heap,然后,您可以像平常一样检查堆中的对象,然后在“ Allocation Call Stack ”选项卡中双击对象以查看JNI引用在您的代码中分配和释放的位置。

在应用程序启动期间记录CPU活动

您现在可以在应用程序启动期间记录CPU活动:

  • 从主菜单中选择Run > Edit Configurations。

  • 在所需运行配置的“Profiling”选项卡下,选中启动时记录方法跟踪旁边的复选框。

  • 从下拉菜单中选择要使用的CPU记录配置。

  • 通过选择Run > Profile将应用程序部署到运行Android 8.0(API级别26)或更高版本的设备。

导出CPU跟踪

在使用CPU分析器记录CPU活动之后,可以将数据导出为.trace文件以便与其他人共享或稍后检查。

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

  • 右键单击要从CPU时间轴导出的录像。

  • 从下拉菜单中选择Export trace。

  • 导航至要保存文件的位置,然后单击保存。

导入并检查CPU跟踪文件

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

通过单击Profiler的Sessions窗格中的Start new profiler session 导入您的跟踪文件,然后选择从Load from file。然后,您可以在CPU分析器中检查其数据,但有一些例外情况:

  • CPU活动不是沿着CPU时间轴表示的。

  • 线程活动时间线仅指示每个线程可用的跟踪数据的位置,而不是实际的线程状态(如正在运行,正在等待或正在休眠)。

使用调试API记录CPU活动

您现在可以通过调试API来启动和停止在CPU分析器中记录CPU活动。将应用程序部署到设备后,配置程序会在应用程序调用时自动开始记录CPU活动 startMethodTracing(String tracePath),并且配置程序在您的应用程序调用时停止记录 stopMethodTracing()。在记录使用此API触发的CPU活动时,CPU分析器将调试API显示 为选定的CPU记录配置。

Lint检查

Lint会检查Java / Kotlin的互操作性

为了确保您的Java代码与Kotlin代码良好的互操作性,新的lint检查会执行Kotlin Interop Guide中描述的最佳实践 。这些检查包括查找Nullability注释的存在,使用Kotlin硬关键字,最后放置lambda参数等等。

更多新的lint检查

除了上一节中介绍的Kotlin互操作性lint检查之外,Android Studio 3.2还实现了20个新的lint检查,以帮助您查找和识别常见代码问题。这些新的检查范围从关于潜在可用性问题的警告到关于潜在安全漏洞的高优先级错误。

新的Gradle目标

使用新的lintFixGradle任务将lint检查建议的所有安全修复直接应用于源代码。建议使用安全修复程序的皮棉检查的一个示例是SyntheticAccessor。

元数据更新

各种元数据(如服务转换检查)已更新用于lint检查,以与Android P Developer Preview一起使用。

如果在新变体上运行lint,则会发出警告

Lint现在记录了一个基线记录的变体和版本,并且如果您在与创建基线的变体不同的变体上运行它,lint会警告您。

改进现有的lint检查

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

ID更易被发现

问题ID现在显示在更多位置,包括“Inspection Results” 窗口中,使您更容易找到启用或禁用特定检查lintOptions的信息build.gradle。

Data Binding V2

Data Binding V2现在默认启用并且与V1兼容。这意味着,如果您有使用V1编译的库依赖项,则可以将它们与使用Data Binding V2的项目一起使用。但是请注意,使用V1的项目无法使用通过V2编译的依赖项。

D8 desugaring

在Android Studio 3.1中,我们将Dug工具作为实验性功能整合到了D8工具中,从而缩短了整体构建时间。现在,在Android Studio 3.2中,默认情况下会打开D8的解除绑定。

新代码收缩器

R8是替代ProGuard的代码缩小和混淆的新工具。您可以通过在项目gradle.properties文件中包含以下内容来开始使用R8的预览版本:

android.enableR8 = true

修改了默认的abi

当建立多个APK每个目标不同的ABI,插件不再产生用于默认以下的ABI的APK: ,mips,mips64和armeabi。

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

splits {
    abi {
        include 'armeabi', 'mips', 'mips64'
        ...
    }
}

改进了CMake构建文件的编辑器功能

如果您使用CMake 将C和C ++代码添加到项目中,那么Android Studio现在包含改进的编辑器功能,同时编辑您的CMake构建脚本,例如:

  • 语法突出显示和代码完成: IDE现在突出显示并建议通用CMake命令的代码完成。此外,您可以通过在按下Control键(或MacOS上的命令)时点击文件来导航到文件。

  • 代码重新格式化:您现在可以使用 IntelliJ的代码重新格式化选项 来将代码样式应用于您的CMake构建脚本。

  • 安全重构: IDE内置的重构工具现在还可以检查您是否重命名或删除了在CMake构建脚本中引用的文件。

浏览外部的头文件

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

如果您的项目中已 包含C / C ++代码和库,请通过从主菜单中选择View > Tool Windows > Projec并从下拉菜单中选择Android,打开IDE左侧的项目窗口。在cpp 目录中,位于应用程序项目范围内的所有头文件都将在每个本地C / C ++库依赖项的include节点下进行组织。

ADB连接助理

新的ADB连接助手提供分步说明以帮助您通过Android调试桥(ADB)连接设置和使用设备。

要启动助理,请选择Tools > Connection Assistant。

ADB连接助手在“ Assistant”面板的一系列页面中提供说明,上下文控制以及连接设备的列表。

模拟器的改进

您现在可以随时在Android模拟器中保存并加载AVD(Android虚拟设备)的快照,从而可以快速轻松地将模拟设备返回到已知状态进行测试。当您使用AVD管理器编辑AVD时,您可以指定在AVD启动时加载哪个AVD快照。

用于保存,加载和管理AVD快照的控件现在位于模拟器Extended controls窗口的“ Snapshots”选项卡中。

更多文章请关注我的公众号: