Android设备上的屏幕兼容性

时间:2014-05-07 16:00:55

标签: android android-manifest

我想让我的应用程序仅用于智能手机而非平板电脑。

在清单中,我已将此行用于屏幕兼容性

<compatible-screens>
    <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />
    <!-- all normal size screens -->
    <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="480" />
    <!-- all large size screens -->
    <screen android:screenSize="large" android:screenDensity="mdpi" />
    <screen android:screenSize="large" android:screenDensity="hdpi" />
    <screen android:screenSize="large" android:screenDensity="xhdpi" />
    <!-- all large size screens --> 
    <screen android:screenSize="xlarge" android:screenDensity="mdpi" />
    <screen android:screenSize="xlarge" android:screenDensity="hdpi" />
    <screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
</compatible-screens>

在普通尺寸屏幕中,我添加了一条屏幕密度= 480的线。这应该让三星s5这样的设备能够下载应用程序。

在网上冲浪,我发现为了避免应用程序可以从平板电脑下载,我应该删除专用于屏幕xlarge的部分。 但如果我这样做,我担心那时,三星s4和三星s5这样的设备将无法下载我的应用程序。

这是真的吗?

2 个答案:

答案 0 :(得分:3)

嗯,让我们看看。 您可以参考以下链接:

http://developer.android.com/guide/practices/screens_support.html

要知道什么尺寸意味着“screenSize”或screenDensity,更具体地说,这个图像。

enter image description here

所以三星S5就有一个5.1英寸的显示器,按照那个图表很大;并且密度为432 ppi,这意味着xhdpi(它被认为是xxhdpi之类的东西不是吗?)。 你为什么要把它添加到正常状态?尺寸应该很大(除非硬件给操作系统提供了错误的读数,这并非闻所未闻,但三星设备不太可能)。

无论哪种方式,删除他们所说的内容

    <compatible-screens>
<!-- all small size screens -->
<screen android:screenSize="small" android:screenDensity="mdpi" />
<screen android:screenSize="small" android:screenDensity="hdpi" />
<screen android:screenSize="small" android:screenDensity="xhdpi" />
<!-- all normal size screens -->
<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="480" />
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />

让s8不受影响。

考虑到有多少设备遵循奇怪的规则运行android(早期版本的android甚至没有遵循这些确切的规则),这是非常容易的,也不是真的可能,只能阻止平板电脑。是的,我们都希望他们想出一个简单的平板电脑标签。

离开大片意味着某些平板电脑可以安装你的应用程序(有7英寸平板电脑)。大量淘汰意味着大多数平板手机甚至旗舰手机都会受到削减。

最后,您应该关注的是,不是通过设备定义来阻止,而是通过应用程序在该大小上的外观来阻止。希望这会有所帮助。

编辑:这个wiki链接也很有用wiki

答案 1 :(得分:1)

s4将能够下载此行的应用程序:

<screen android:screenSize="normal" android:screenDensity="480" /> 

请检查: https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=39622

和这个doc: http://developer.android.com/guide/practices/screens-distribution.html#FilteringHansetApps 在&#34;声明应用程序仅适用于手机&#34;