<compatible-screens>

構文:
<compatible-screens>
    <screen android:screenSize=["small" | "normal" | "large" | "xlarge"]
            android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"
                                   | "280" | "360" | "420" | "480" | "560" ] />
    ...
</compatible-screens>
上位の要素:
<manifest>
説明:
アプリが対応している各画面構成を指定します。マニフェストで指定できる <compatible-screens> 要素のインスタンスは 1 つだけですが、<screen> 要素は複数含めることができます。各 <screen> 要素では、アプリが対応している画面サイズと密度の特定の組み合わせを指定します。

Android システムはどの時点でも <compatible-screens> マニフェスト要素を読み取りません。この要素は情報提供のみを目的としており、アプリが特定の画面構成に対応しているかどうかを詳細に把握し、ユーザーのフィルタリングを有効にするために外部サービス(Google Play など)で使用されます。

この要素で宣言されていない画面構成は、アプリが対応していない画面です。Google Play などの外部サービスは、そのような画面を持つデバイスにはアプリを提供しません。

注意: 通常、このマニフェスト要素は使用しません。この要素を使用すると、リストにない画面構成のデバイスを使用しているユーザーはアプリをインストールできなくなるため、アプリの潜在的なユーザーベースが大幅に縮小する可能性があります。この要素は、アプリが特定の画面構成では確実に動作しない場合にのみ、最終手段として使用してください。この要素を使用する代わりに、複数画面のサポートガイドに沿って、さまざまな画面サイズと画面密度に対応した代替のレイアウトとビットマップを使用して、各種画面に対するスケーラブルなサポートを提供してください。

アプリの最小画面サイズを設定するには、<supports-screens> 要素を使用します。たとえば、大画面と特大画面のデバイスでのみアプリを使用できるようにする場合は、<supports-screens> 要素を使用することで、アプリが小画面と標準画面をサポートしていないことを宣言できます。その後、Google Play などの外部サービスによって、アプリが適切にフィルタされます。また、<supports-screens> 要素を使用すると、さまざまな画面サイズに合わせてアプリをサイズ変更できるかどうかを宣言できます。

Google Play がこれをはじめとするマニフェスト要素を使用してアプリをフィルタする仕組みについて詳しくは、Google Play でのフィルタをご覧ください。

子要素:
<screen>

アプリが対応している単一の画面構成を指定します。

この要素の 1 つ以上のインスタンスを <compatible-screens> 要素内に配置する必要があります。この要素には、android:screenSize 属性と android:screenDensity 属性の両方を含める必要があります。両方の属性を宣言しないと、この要素は無視されます。

属性:

android:screenSize
必須。この画面構成の画面サイズを指定します。

指定可能な値は次のとおりです。

  • small
  • normal
  • large
  • xlarge

各種の画面サイズについて詳しくは、画面の互換性の概要をご覧ください。

android:screenDensity
必須。この画面構成の画面密度を指定します。

指定可能な値は次のとおりです。

  • "ldpi"(約 120 dpi)
  • "mdpi"(約 160 dpi)
  • "hdpi"(約 240 dpi)
  • "xhdpi"(約 320 dpi)
  • "280"
  • "360"
  • "420"
  • "480"
  • "560"

各種の画面密度について詳しくは、画面互換性の概要をご覧ください。

アプリが小画面と標準画面にのみ対応している場合(画面密度は問わない)、それぞれの画面サイズに 6 種類の密度構成があるため、12 種類の <screen> 要素を指定する必要があります。

そのそれぞれについて宣言が必要です。指定していないサイズと密度の組み合わせは、アプリが対応していない画面構成と見なされます。以下に、アプリが小画面と標準画面にのみ対応している場合のマニフェスト エントリの例を示します。

<manifest ... >
    ...
    <compatible-screens>
        <!-- all small size screens -->
        <screen android:screenSize="small" android:screenDensity="ldpi" />
        <screen android:screenSize="small" android:screenDensity="mdpi" />
        <screen android:screenSize="small" android:screenDensity="hdpi" />
        <screen android:screenSize="small" android:screenDensity="xhdpi" />
        <screen android:screenSize="small" android:screenDensity="xxhdpi" />
        <screen android:screenSize="small" android:screenDensity="xxxhdpi" />
        <!-- all normal size screens -->
        <screen android:screenSize="normal" android:screenDensity="ldpi" />
        <screen android:screenSize="normal" android:screenDensity="mdpi" />
        <screen android:screenSize="normal" android:screenDensity="hdpi" />
        <screen android:screenSize="normal" android:screenDensity="xhdpi" />
        <screen android:screenSize="normal" android:screenDensity="xxhdpi" />
        <screen android:screenSize="normal" android:screenDensity="xxxhdpi" />
    </compatible-screens>
    <application ... >
        ...
    <application>
</manifest>
導入時の API レベル:
API レベル 9
関連項目:
画面の互換性の概要
Google Play でのフィルタ