在清单文件中指定Android市场RAM

11

有些人继续在仅有100MB RAM的手机上下载并安装我们的高清游戏,并给我们差评... :)

是否有一种方法可以将应用程序的下载限制仅限于具有更多RAM的智能手机,或者限制为新型号/ CPU。

4个回答

9
我的最终解决方案来自Raghav Sood的提示。经过一番研究,我发现限制到以下屏幕将限制到具有512Mb+ RAM的设备。虽然不是100%安全,但这是我找到的最佳解决方案 :)只需在清单文件中添加这些过滤器即可。
    <compatible-screens>
        <!-- some normal size screens -->
        <screen android:screenSize="normal" android:screenDensity="hdpi" />
        <screen android:screenSize="normal" android:screenDensity="xhdpi" />
        <!-- all large size screens -->
        <screen android:screenSize="large" android:screenDensity="ldpi" />
        <screen android:screenSize="large" android:screenDensity="mdpi" />
        <screen android:screenSize="large" android:screenDensity="hdpi" />
        <screen android:screenSize="large" android:screenDensity="xhdpi" />
        <!-- all xlarge size screens -->
        <screen android:screenSize="xlarge" android:screenDensity="ldpi" />
        <screen android:screenSize="xlarge" android:screenDensity="mdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="hdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
    </compatible-screens>

请注意,一些新手机的像素密度高于xhdpi,因此它们将被屏蔽!我正在尝试使用新的过滤器:

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

到目前为止,一切都还好。我发现受支持设备列表中有低端设备,但迄今为止没有人报告过与设备有关的错误(在85k次下载中)。

我建议使用第二个解决方案,但请谨慎使用!我将在我的即将推出的游戏中绝对会使用它。

欢迎您提供反馈意见!


2

你说你的应用是高清的。为什么不过滤掉不支持高清的设备呢?通常拥有高清屏幕的设备都应该有足够的RAM来运行你的应用。你可以使用 supports-screen 标签来排除低像素和可能的中等像素屏幕的设备。虽然这样做可能不能完全锁定所有低端设备,但它将锁定很多。


嗯...那可能有帮助...我会尝试做一些研究。我认为那是一个接近的答案 :) - Tom

1

谢谢回复,但我需要编辑清单文件,以便不允许低端设备的用户下载游戏,以保护自己免受恶评。我有1600个设备在列表中。我不能一个一个地禁用它们。 - Tom
你读了另一个问题吗?你可以在应用程序启动之前运行测试,并给出一条消息,说明你的设备不受支持。这比在用户正在使用应用程序时强制关闭要好得多。 - wtsang02
是的,我试过了,但这不是我想要的。我仍然希望有一种方法可以通过清单文件来解决这个问题。但现在这是我唯一拥有的东西。 - Tom
我希望它能有所帮助,满足用户的需求比实现世界和平更难。 - wtsang02
呵呵...你说得对。谢谢回复,我会继续寻找替代方案,但看起来我只能按照你的方式去做了。 - Tom

1

据我所知,这不是 Google Play 的筛选器之一。 http://developer.android.com/guide/google/play/filters.html

我想你可以:

  • 过滤掉你知道不符合你的标准的设备。你可以在 Android 开发者控制台上执行此操作(只需列出您的应用程序可以运行的设备,并单击“排除”将它们添加到手动排除列表中)。但考虑到存在的 Android 设备数量,这可能很困难。

  • 在应用内,检查分配给你的内存,如果不足以提供良好的体验,则采取行动。让用户知道(如果是付费的话,退款 :))等。仅当您确定内存是唯一的限制因素时才这样做。


谢谢回复...也许有一种方法可以限制新的CPU或它们的时钟吗?这也可以帮助过滤掉低端设备。 - Tom
我不相信有这样的方法。你可以回到基础并请求更高的minSDK版本。你所担心的低端设备很可能运行着古老的Android版本。 - Alex Florescu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接