Android 11 のデベロッパー プレビューが公開されました。ぜひお試しのうえ、フィードバックをお寄せください

<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> 要素を指定する必要があります。これらは 1 つずつ指定する必要があります。指定していないサイズと密度の組み合わせは、アプリが対応していない画面構成とみなされます。以下に、アプリが小画面と標準画面にのみ対応している場合のマニフェスト エントリの例を示します。

    <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 上のフィルタ