Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

<compatible-screens>

sintaxe:
    <compatible-screens>
        <screen android:screenSize=["small" | "normal" | "large" | "xlarge"]
                android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"
                                       | "280" | "360" | "420" | "480" | "560" ] />
        ...
    </compatible-screens>
    
contido em:
<manifest>
descrição:
Especifica cada configuração de tela com a qual o aplicativo é compatível. Apenas uma instância do elemento <compatible-screens> é permitida no manifesto, mas ela pode conter vários elementos <screen>. Cada elemento <screen> indica uma combinação específica de tamanho-densidade de tela com a qual o app é compatível.

O sistema Android não lê o elemento de manifesto <compatible-screens>, nem no momento da instalação nem durante a execução. Esse elemento é apenas informativo e pode ser usado por serviços externos (como o Google Play) para compreender melhor a compatibilidade do aplicativo com configurações de tela específicas e ativar a filtragem para os usuários. Qualquer configuração de tela não declarada neste elemento é uma tela com a qual o aplicativo não é compatível. Assim, serviços externos, como o Google Play, não devem fornecer o app para dispositivos com essas telas.

Atenção: normalmente, não é recomendável usar este elemento de manifesto. O uso desse elemento pode reduzir drasticamente a base de usuários em potencial para seu aplicativo, porque não permite que os usuários o instalem se tiverem um dispositivo com uma configuração de tela que você não tenha listado. Use-o apenas como último recurso, quando o aplicativo absolutamente não funcionar com configurações de tela específicas. Em vez de usar esse elemento, siga o guia sobre Compatibilidade com várias telas para fornecer compatibilidade escalonável com várias telas usando layouts e bitmaps alternativos para diferentes tamanhos e densidades de tela.

Se você quiser definir apenas um tamanho mínimo de tela para o aplicativo, use o elemento <supports-screens>. Por exemplo, se você quer que seu aplicativo seja disponibilizado apenas para dispositivos de tela grande e extra grande, o elemento <supports-screens> permite que você declare que o aplicativo não é compatível com os tamanhos de tela pequeno e normal. Serviços externos, como o Google Play, filtrarão seu app de acordo com isso. Você também pode usar o elemento <supports-screens> para declarar se o sistema precisa redimensionar o aplicativo para diferentes tamanhos de tela.

Consulte também o documento Filtros no Google Play para mais informações sobre como o Google Play filtra aplicativos que usam este e outros elementos de manifesto.

elementos secundários:
<screen>
Especifica uma configuração de tela única com a qual o aplicativo é compatível.

Pelo menos uma instância desse elemento precisa ser colocada dentro do elemento <compatible-screens>. Esse elemento precisa incluir os atributos android:screenSize e android:screenDensity. Se você não declarar os dois atributos, o elemento será ignorado.

atributos:

android:screenSize
Obrigatório. Especifica o tamanho da tela para esta configuração de tela.

Valores aceitos:

  • small
  • normal
  • large
  • xlarge

Para mais informações sobre os diferentes tamanhos de tela, consulte Compatibilidade com várias telas.

android:screenDensity
Obrigatório. Especifica a densidade da tela para esta configuração de tela.

Valores aceitos:

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

Para mais informações sobre as diferentes densidades de tela, consulte Compatibilidade com várias telas.

exemplo

Se seu aplicativo for compatível somente com telas pequenas e normais, independentemente da densidade da tela, especifique doze elementos <screen>, porque cada tamanho de tela tem seis configurações de densidade diferentes. Declare cada um deles. Qualquer combinação de tamanho e densidade que você não especificar será considerada uma configuração de tela com a qual seu aplicativo não é compatível. Esta é a aparência da entrada de manifesto se o aplicativo for compatível somente com telas pequenas e normais:

    <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>
    
introduzido em:
API de nível 9
veja também:
Compatibilidade com várias telas
Filtros no Google Play