Android レイアウト診断
Android レイアウト診断は、一般的な品質の問題と役立つ最適化を明示することで、Android レイアウト ファイルの品質の向上を支援するためのものです。 この機能は、Visual Studio 16.5+ と Visual Studio for Mac 8.5+ の両方で利用できます。
幅広い問題用の既定のアナライザー セットが用意されており、プロジェクト固有のニーズを満たすようにそれぞれをカスタマイズできます。 アナライザーは、Android リンティング システムにわずかに依存しています。
Visual Studio 2019 で Android レイアウト診断を有効にする
レイアウト診断設定の [レイアウト診断の有効化] が有効になっていることを確認します。 このオプション ページにアクセスするには、以下のように、[ツール]>[オプション] を選択した後、[テキスト エディター]>[Android XML]>[詳細] を選択します。
有効にすると、Android レイアウト エディターに以下のように問題が表示されます。
機能
次のセクションでは、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>
Note
現在、存在する変数はそれぞれ TooManyViews
と TooDeepLayout
に対する MAX_VIEW_COUNT
(既定値: 80) と MAX_DEPTH
(既定値: 10) だけです。
重大度レベルは次のとおりです。
- 推奨事項
- 情報
- 警告
- エラー
- Ignore
構成ファイルを追加する
Android アプリ プロジェクトのルートに新しい XML ファイルを作成します。 ファイルの名前は重要ではありませんが、この例では以下のように AndroidLayoutDiagnostics.xml
を使用します。
新しい XML ファイルが追加されると、以下のように Android アプリ プロジェクト ツリーに表示されるはずです。
プロパティ パネルで、ビルド アクションが AndroidResourceAnalysisConfig に設定されていることを確認します。 新しいファイルのプロパティ パネルを引き出す最も簡単な方法は、ファイルを右クリックしてプロパティを選択することです。 プロパティ パネルが表示されたら、以下のように、[ビルド アクション] を AndroidResourceAnalysisConfig に変更する必要があります。
これで空の XML ファイルが作成されるので、<configuration>
ルート要素を追加する必要があります。 この時点で、サポートされている問題の既定の動作を調整できます。
ハードコーディングされた文字列がエラーとして扱われるようにしたい場合は、以下を追加します。
<issue="HardcodedText" severity="error">
</issue>
これでハードコーディングされたテキストがエラーと見なされるようになり、以下のようにレイアウト エディター内で赤い波線でフラグが設定されるようになります。
Note
構成ファイルの新しい変更内容をすべて有効にするには、現在開いているレイアウト ファイルをすべて開き直す必要があります。
トラブルシューティング
考えられる一般的な問題を以下に示します。
- XML 形式のエラーがないことを確認します。
- ビルド アクションを AndroidResourceAnalysisConfig に正しく設定します。
既知の問題
- エラー パッドは、ファイルが最初に変更されるまで設定されません。