【问题标题】:difference between <supports-screens> and <compatible-screens> on AndroidAndroid 上 <supports-screens> 和 <compatible-screens> 之间的区别
【发布时间】:2017-04-10 08:41:13
【问题描述】:

我现在对两个清单元素之间的区别和

我认为仅使用 Google Play 会过滤掉不属于支持屏幕列表的设备。该应用程序不会显示在这些设备上的搜索结果中。

我认为使用就足够了,但它似乎不起作用!

我也需要包含吗?

谁能向我解释一下自然语言的区别。不幸的是,我没有找到清楚的谷歌文档:s

干杯

【问题讨论】:

  • “官方”感到困惑?这是一种新型的混乱吗?开个玩笑。
  • 支持屏幕:为其设计应用程序,兼容屏幕:用户屏幕支持该应用程序要求

标签: android


【解决方案1】:

支持屏幕

但是,如果您的应用程序在调整大小以适应时无法正常运行 不同的屏幕尺寸,你可以使用的属性 元素来控制你的应用程序是否应该 分发到较小的屏幕或放大其 UI(“缩放”) 使用系统的屏幕兼容模式来适应更大的屏幕。

兼容屏幕
任何未在此元素中声明的屏幕配置都是应用程序不使用的屏幕 兼容的。因此,外部服务(例如 Google Play)不应该 将应用程序提供给具有此类屏幕的设备。

Source

因此,supports-screens 似乎意味着您的应用的布局适用于特定屏幕,并且会在其他屏幕中缩放

而且 compatible-screens 意味着您的应用仅与特定的屏幕和设备兼容。屏幕配置与所列内容不同的设备将不会出现在 Play 商店中。

【讨论】:

  • 感谢您的澄清...这是我缺少的自动放大功能
  • 那我们用哪一个?
【解决方案2】:

说明

1.support-screens

它允许您指定应用程序支持的屏幕尺寸和 为比您的屏幕更大的屏幕启用屏幕兼容模式 应用程序支持。应用程序“支持”给定的屏幕尺寸,如果 它会适当地调整大小以填满整个屏幕。应用正常调整大小 系统适用于大多数应用程序,您不必 做任何额外的工作以使您的应用程序在大于 手机设备。但是,优化您的 通过提供替代的应用程序的 UI 来适应不同的屏幕尺寸 资源(布局、绘图、图像等)。

 <supports-screens 
              android:smallScreens="true"
              android:normalScreens="true"
              android:largeScreens="false"
              android:xlargeScreens="false"/>

如果您的应用程序不专门支持 large 和 xlarge, 系统的屏幕兼容模式将按比例放大(“缩放”)UI 以适应 更大的屏幕。由于您没有为更大的屏幕尺寸设计 并且正常调整大小没有达到适当的结果, 屏幕兼容模式将通过模拟正常的 大小屏幕和中等密度,然后放大以填充 整个屏幕。但是这会导致 UI 像素化和模糊。

2.compatible-screens

它指定应用程序使用的每个屏幕配置 兼容的。该元素只有一个实例是 允许在清单中,但它可以包含多个 元素。每个元素指定一个特定的屏幕 与应用程序兼容的尺寸-密度组合。任何 未在此元素中声明的屏幕配置是屏幕 与应用程序不兼容的。

区别

a) 支持屏幕

  1. 基本上Android系统自己读取manifest元素,然后开启屏幕兼容模式。

  2. 务必始终在应用程序中使用此元素来指定应用程序支持的屏幕尺寸。

b) 兼容屏幕

  1. Android 系统不读取清单元素(无论是在安装时还是在运行时)。这个元素是 仅供参考,可能会被外部服务使用(例如 Google Play)以更好地了解应用程序的兼容性 特定的屏幕配置并为用户启用过滤。

  2. 通常,您不应使用此清单元素。使用此元素可以显着减少您的潜在用户群 应用程序,不允许用户安装您的应用程序,如果他们 有一个您没有列出的屏幕配置的设备。 您应该仅将其用作最后的手段,当应用程序 绝对不适用于特定的屏幕配置。

【讨论】:

  • 我应该使用哪一个?
  • 我只想让我的应用程序显示在每个屏幕尺寸上……就是这样。 stackoverflow.com/questions/34308081/…
  • 测试此场景的最佳方法是什么?好像在模拟器上你无法测试这个..如果有人没有所有类型的设备。
【解决方案3】:

是的,谷歌让它变得混乱,他们的文档需要做很多工作。他们说如何使用“兼容屏幕”使其适用于特定的屏幕尺寸,然后在不同的情况下使用支持的屏幕。我认为这段 here 有助于明确在清单中使用 compatible-screens 元素的影响,(强调我的):

在这种情况下,可以使用元素来管理 基于屏幕组合的应用程序分布 大小和密度。 Google Play 等外部服务使用此 将过滤应用到您的应用程序的信息,以便仅 具有您声明的屏幕配置的设备 兼容性可以下载您的应用程序。

元素必须包含一个或多个 元素。每个元素指定一个屏幕配置 您的应用程序是兼容的,同时使用 android:screenSize 和 android:screenDensity 属性。每个 元素必须包含两个属性以指定单个屏幕 配置——如果缺少任何一个属性,则该元素是 无效(Google Play 等外部服务会忽略它)。

令人困惑的是他们后来添加了这个注释

注意:虽然您也可以将元素用于 相反的情况(当您的应用程序与 较小的屏幕),如果您改为使用 正如下一节所讨论的,因为它 不需要您指定应用程序的每个屏幕密度 支持

“更容易”与您的需求有关,这让我感到困惑。然后他们继续说(强调我的):

注意:如果你使用相反的元素 场景(当您的应用程序与大屏幕不兼容时) 并将较大的屏幕尺寸属性设置为“false”,然后设置为外部 Google Play 等服务不应用过滤。你的申请 仍可用于更大的屏幕,但当它运行时,它将 不调整大小以适应屏幕。相反,系统将模拟 手机屏幕尺寸(约 320dp x 480dp;请参阅屏幕兼容性 模式了解更多信息)。如果您想阻止您的申请 从在更大的屏幕上下载,使用 , as 上一节中讨论过的关于声明一个应用程序仅适用于 手机。

因此,“兼容屏幕”似乎会强制 Google Play 商店根据屏幕配置进行过滤。 “supports-screens”元素会影响您设备的屏幕兼容模式,这与“兼容屏幕”不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多