我现在正式对两个清单元素和
之间的区别感到困惑我认为仅使用Google Play会过滤掉不属于支持屏幕列表的设备。该应用不会在这些设备的搜索结果中显示。
我认为使用已经足够但似乎无法正常工作!
我是否还需要加入?
有人可以向我解释自然语言的差异。不幸的是,我没有找到谷歌的文件:s
干杯
答案 0 :(得分:19)
支持屏幕
但是,如果您的应用程序在调整大小以适应时效果不佳 不同的屏幕尺寸,你可以使用的属性 元素来控制您的应用程序是否应该 分发到较小的屏幕或将其UI放大(“缩放”) 使用系统的屏幕兼容模式适合更大的屏幕。
<强>兼容屏强>
未在此元素中声明的任何屏幕配置都是应用程序不具有的屏幕 兼容。因此,外部服务(例如Google Play)不应该 向具有此类屏幕的设备提供应用程序。
所以似乎支持屏幕意味着你的应用程序的布局适用于特定的屏幕,并将在其他屏幕上缩放
兼容屏幕意味着您的应用仅与特定屏幕和设备兼容。在Play商店中不会看到屏幕配置不是列出的设备。
答案 1 :(得分:14)
<强>描述强>
<强> 1.support屏强>
它允许您指定应用程序支持的屏幕尺寸 为大于您的屏幕启用屏幕兼容模式 应用支持。如果应用程序“支持”给定的屏幕大小 它适当调整大小以填满整个屏幕。正常调整大小 通过该系统适用于大多数应用程序,你不必 做任何额外的工作,使你的应用程序在大于的屏幕上工作 手机设备。但是,优化您的通常很重要 应用程序的UI用于不同的屏幕尺寸,提供替代方案 资源(布局,绘图,图像等)。
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="false"
android:xlargeScreens="false"/>
如果您的应用程序不支持large和xlarge, 系统的屏幕兼容模式可以放大(“缩放”)UI以适应 更大的屏幕。由于您没有设计更大的屏幕尺寸 正常的大小调整没有达到适当的效果, 屏幕兼容模式将通过模拟法线来扩展您的UI 尺寸屏幕和中等密度,然后放大,使其填充 整个屏幕。但是这会导致UI的像素化和模糊。
<强> 2.compatible屏强>
它指定应用程序所使用的每个屏幕配置 兼容。该元素只有一个实例 允许在清单中,但它可以包含多个 元素。每个元素指定一个特定的屏幕 尺寸密度组合,应用程序兼容。任何 未在此元素中声明的屏幕配置是一个屏幕 与应用程序不兼容的。
<强>差分强>
a)支持屏幕
基本上Android系统本身会读取清单元素,然后启用屏幕兼容模式。
- 醇>
在应用程序中始终使用此元素来指定应用程序支持的屏幕大小非常重要。
b)兼容屏幕
Android系统不会读取清单元素(既不在安装时也不在运行时)。这个元素是 仅供参考,可由外部服务使用(例如 Google Play)可以更好地了解应用程序的兼容性 特定屏幕配置并为用户启用过滤。
- 醇>
通常,您不应使用此清单元素。使用此元素可以大大减少您的潜在用户群 应用程序,不允许用户安装您的应用程序 有一个没有列出的屏幕配置的设备。 在申请时,您应该仅将其用作最后的手段 绝对不适用于特定的屏幕配置。
答案 2 :(得分:1)
Yes, Google make it confusing, their documentation needs a lot of work. They say how to make it for specific screen sizes using "compatible-screens", then use supported-screens in a different situation. I thought this paragraph here helps make it clear about the impact of using compatible-screens element in your manifest, (emphasis mine):
In such a case, you can use the element to manage the distribution of your application based on combinations of screen size and density. External services such as Google Play use this information to apply filtering to your application, so that only devices that have a screen configuration with which you declare compatibility can download your application.
The element must contain one or more elements. Each element specifies a screen configuration with which your application is compatible, using both the android:screenSize and android:screenDensity attributes. Each element must include both attributes to specify an individual screen configuration—if either attribute is missing, then the element is invalid (external services such as Google Play will ignore it).
What's confusing is they add this note afterwards
Note: Although you can also use the element for the reverse scenario (when your application is not compatible with smaller screens), it's easier if you instead use the as discussed in the next section, because it doesn't require you to specify each screen density your application supports
"Easier" is relative to your needs, which is what confused me. Then they go on and say this (emphasis mine):
Caution: If you use the element for the reverse scenario (when your application is not compatible with larger screens) and set the larger screen size attributes to "false", then external services such as Google Play do not apply filtering. Your application will still be available to larger screens, but when it runs, it will not resize to fit the screen. Instead, the system will emulate a handset screen size (about 320dp x 480dp; see Screen Compatibility Mode for more information). If you want to prevent your application from being downloaded on larger screens, use , as discussed in the previous section about Declaring an App is Only for Handsets.
So it seems that "compatible-screens" will force Google play store to filter according to screen configuration. The "supports-screens" element affects your device's screen-compatibility mode, which is different from "compatible screens".