AndroidManifest.xml文件详解(compatible-screen)
语法(SYNTAX):
<compatible-screens>
<screenandroid:screenSize=["small" | "normal" | "large" | "xlarge"]
android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] />
...
</compatible-screens>
包含于(CONTAINED IN):
<manifest>
说明(DESCRIPTION)):
这个元素用于指定那些屏幕配置跟应用程序是兼容的。在应用的清单中只允许有一个<compatible-screent>元素的实例,但是它能够包含多个<screen>元素。每个<screen>元素指定一个特定的跟应用程序兼容的尺寸---密度组合。
Android系统不会读取<compatible-screen>清单元素(无论是在安装的时候,还是在运行的时候)。这个元素的信息只能被外部服务使用(如Google Play),以便使其能够更好的理解应用程序跟指定屏幕配置的兼容性。任何没有在这个元素中声明的屏幕配置,都是跟应用程序不兼容的屏幕。这样,外部服务(如Google Play)就不应该把应用程序提供给带有这样屏幕的设备。
警告:通常不应该使用这个清单元素。因为使用这个元素会显著的降低应用程序潜在的用户群。如果设备带有一个应用程序清单中没有列出屏幕配置,那么就不会允许用户安装这个应用程序。在肯定应用程序在所有的屏幕配置上都不会工作时,最后才使用这个方法。相反为了给多个屏幕提供完全的支持,应该按照“支持屏幕多种配置”指南(http://developer.android.com/guide/practices/screens_support.html)来给不同的屏幕尺寸和密度来添加可选的资源。
如果只想给应用程序设置一个最小的屏幕尺寸,那么就应该使用<supports-screens>元素。例如,如果要让应用程序只对大屏幕(large)或超大屏幕(xlarge)的设备有效,那么<supports-screen>元素就要声明应用程序不支持小屏幕(small)和普通屏幕(normal)的设备。外部服务(如Google Play)根据<supports-screen>的设置来过滤应用程序。还能够使用<supports-screens>元素来声明系统是否应该调整应用程序,以便适应不同的屏幕尺寸。
子元素(CHILD ELEMENTS):
<screen>
这个元素指定一个跟应用程序兼容的屏幕配置。
在<compatible-screens>元素内部,至少要有一个这个元素的实例。这个元素必须同时包含android:screenSize和android:screenDensity属性,如果没有同时声明,那么这个元素就会被忽略。
属性(ATTRIBUTES):
android:screenSize
指定跟应用程序兼容的屏幕配置的屏幕尺寸。可以是以下的值:
· small
· normal
· large
· xlarge
android:screenDensity
指定跟应用程序兼容的屏幕配置的屏幕密度,可以是以下值:
· ldpi
· mdpi
· hdpi
· xhdpi
例子(EXAMPLE):
如果应用程序仅跟小屏和普通屏幕的设备兼容,而不管屏幕的密度,那么必须要指定八个不同的<screen>元素,因为每个屏幕尺寸都有四种不同密度的配置。必须对这些配置逐一声明;任何没有指定的尺寸和密度的组合,都会被认为这个屏幕配置跟应用程序不兼容。如果应用程序只跟小屏幕和普通屏幕兼容,那么清单配置如下:
<manifest ... >
...
<compatible-screens>
<!-- all small size screens -->
<screenandroid:screenSize="small"android:screenDensity="ldpi"/>
<screenandroid:screenSize="small"android:screenDensity="mdpi"/>
<screenandroid:screenSize="small"android:screenDensity="hdpi"/>
<screenandroid:screenSize="small"android:screenDensity="xhdpi"/>
<!-- all normal size screens -->
<screenandroid:screenSize="normal"android:screenDensity="ldpi"/>
<screenandroid:screenSize="normal"android:screenDensity="mdpi"/>
<screenandroid:screenSize="normal"android:screenDensity="hdpi"/>
<screenandroid:screenSize="normal"android:screenDensity="xhdpi"/>
</compatible-screens>
<application ... >
...
<application>
</manifest>
引入(INTRODUCED IN):
API Level 9
摘自 FireOfStar的专栏
补充:移动开发 , Android ,