在Android 4.0上开发,是否能兼容2.3设备和所有平板电脑?

4

我已经在制作iPhone应用程序一段时间了,但现在也想开始制作Android应用程序。

然而,我注意到新的4.0版本正在出现,想知道如果我不使用仅适用于4.0的任何功能,是否可以使用4.0 SDK 同时为所有4.0、2.3和平板设备进行开发?

这样我就可以让它兼容所有平板设备和运行2.3的所有设备了吗?

非常感谢您的所有帮助。


1
只是另一个有用的链接- http://developer.android.com/resources/articles/backward-compatibility.html。此外,在为蜂窝和更高版本开发具备向后兼容性时,请牢记片段 - http://developer.android.com/guide/topics/fundamentals/fragments.html。 - Joe
3个回答

6
如果您想按照自己的说法进行操作,请在清单文件中添加以下内容:
 <uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="15" />

这里说您支持版本为2.3.2及以上,但正在针对4.0.3进行开发。

这将适用于所有运行Android >= 2.3.2的手机/平板设备。

使其在所有这些设备上看起来好看则是完全不同的问题。

编辑以解释min和target

midSdk表示我支持平台版本9及以上。 因此我可以在任何v9设备和以上的Android系统代码中运行。 结合targetSdk,它表示我可以在最低平台版本为v9上运行,但我告诉你我已经测试到了v15,所以如果您可以做一些很棒的事情来帮助我的应用程序(如硬件图形加速),那就做吧!因为我已经瞄准了那个版本。但我不依赖硬件加速工作!


我从来没有真正理解如何针对一个版本进行开发,但又指定其他版本以实现兼容性。你能详细说明一下这两个字段之间的区别吗? - njzk2
@njzk2 在Android系统中,如果你的应用程序使用了targetSdkVersion='15',那么系统可以在4.0设备上开启一些功能,前提是你已经对这个版本进行了测试。一个很好的例子就是硬件加速。 - Blundell
@njzk2 midSdk 表示我支持平台版本 9 及以上。因此,我可以在 v9 及以上的 Android 系统代码上工作。结合 targetSdk,它表示我可以在最低平台 v9 上运行,但我告诉你,我已经测试过 v15,所以如果你能做任何酷的事情来帮助我的应用程序(如硬件图形加速),那就做吧!因为我已经针对那个版本进行了优化。 - Blundell

2

在您的应用程序中,您有3个控件用于SDK版本。

<uses-sdk android:minSdkVersion="integer" 
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />

minSdkVersion 设置了你的应用程序允许安装的最小 API 级别。

targetSdkVersion 是应用程序实际构建的 SDK 版本。

maxSdkVersion 与最小 sdk 版本相同,但一般情况下不应该被使用。

每个 Android 版本都应该向后兼容,因此通常解决方案是针对最小 sdk 版本。在您的情况下,您可以以 2.3 为目标,您的应用程序将在 4.0 上正常工作。但是,如果这样做,您将无法使用任何 4.0 特定的 API 更改,其中很多是针对平板电脑的,您将错失机会。

如果您想利用 4.0 的专有功能,您可以根据详细说明此 博客文章,将两个单独的应用程序上传到市场(很多代码库可能是相同的)。或者,如果只有一小部分代码,请在运行时检测 API 版本,如这个 stackoverflow 问题所述。


1

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