Android 布局诊断

Android 布局诊断旨在通过突出显示常见质量问题和有用的优化来帮助提高 Android 布局文件的质量。 此功能适用于 Visual Studio 16.5+ 和 Visual Studio for Mac 8.5+。

提供了一组默认的分析器来解决各种问题,并且可以对每个分析器进行自定义以满足项目的特定需求。 这些分析器大致基于 Android Lint 分析系统。

在 Visual Studio 2019 上启用 Android 布局诊断

确保已启用布局诊断设置“启用布局诊断”。 若要访问此选项页,请先依次选择“工具”>“选项”,再依次选择“文本编辑器”>“Android XML”>“高级”

Options dialog showing how to enable diagnostics option

启用后,Android 布局编辑器将显示问题:

Android diagnostics enabled on Visual Studio 2019

功能

以下部分概述了 Android 布局诊断中的可用功能。

分析器

分析器用于帮助检测布局文件中的问题、减少硬编码值、提高性能和标记错误。 有关分析器列表,请参阅 Android 设计器诊断分析器

诊断配置

可以使用 XML 文件配置分析器,从而可以更改默认严重级别、忽略某些文件并传入变量。

如果想要在多个 Android 应用之间共享一组配置,则可以使用基线文件。 若要使用此功能,请创建一个新的配置文件并将 -baseline 附加到文件名中。 首先应用基线配置,然后应用剩余的配置文件。

提示

如果要忽略新的或现有 Android 应用上的一组问题,此功能非常有用。

格式为:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
    <issue id="DuplicateIDs" severity="warning">
        <ignore path="Resources/layout/layout1.xml" />
    </issue>
    <issue id="HardcodedText" severity="informational">
        <ignore path="Resources/layout/layout1.xml" />
        <ignore path="Resource/layout/layout2.xml" />
    </issue>
    <issue id="TooManyViews">
        <variable name="MAX_VIEW_COUNT" value="12" />
    </issue>
    <issue id="TooDeepLayout">
        <variable name="MAX_DEPTH" value="12" />
    </issue>
</configuration>

注意

目前,TooManyViewsTooDeepLayout 的唯一变量分别是 MAX_VIEW_COUNT(默认值:80)和 MAX_DEPTH(默认值:10)。

严重级别包括:

  • 建议
  • 信息
  • 警告
  • 错误
  • 忽略

添加配置文件

在 Android 应用项目的根目录中创建新的 XML 文件。 文件的名称并不重要,但此示例使用 AndroidLayoutDiagnostics.xml

Add New Item

添加新的 XML 文件后,它应显示在 Android 应用项目树中:

Android App Project Tree

确保在属性面板中将生成操作设置为 AndroidResourceAnalysisConfig。 拉取新文件的属性面板的最简单方法是右键单击文件并选择属性。 显示属性面板后,应将“生成操作”更改为 AndroidResourceAnalysisConfig

Set Build Action in Item Properties

现在,你有一个空白的 XML 文件,需要添加 <configuration> 根元素。 此时,可以调整任何受支持的问题的默认行为。 如果要确保硬编码字符串被视为错误,请添加:

<issue="HardcodedText" severity="error">
</issue>

Diagnostics Configuration File

现在,硬编码文本被视为错误,在布局编辑器中用红色波浪线标记:

Layout using Diagnostics Configuration

注意

要使任何新的配置文件更改生效,需要重新打开任何当前打开的布局文件。

疑难解答

以下是一些可能的常见问题。

  • 请确保没有 XML 格式错误。
  • 生成操作已正确设置为 AndroidResourceAnalysisConfig

已知问题

  • 首次更改文件后,才会填充错误板。