我想在市场上发布一个应用程序。它没有使用 2.0 版本中的任何新功能(例如蓝牙),并且在使用 1.6 至 2.1 版本的每个模拟器中都能正常工作。

我的问题是关于 sdk 的版本,我应该分发我的应用程序以使其与运行 1.6、2.0 或 2.1 的所有设备兼容吗?

我只有一个运行 1.6 的物理设备来测试它,但正如我所说,它没有使用任何花哨的东西,并且在使用 API 级别 4、5、6 或 7 的模拟器上运行良好。

谢谢

有帮助吗?

解决方案

这里的答案很好,但这里还有一些建议:

  • 不设置 android:maxSdkVersion 除非你绝对确定你需要它。
  • android:minSdkVersion3 所以纸杯蛋糕设备可以运行它。
  • android:targetSdkVersion4 表明该应用程序已在 Donut 上进行了测试。

然后,您的应用程序应该可以在所有 >= Cupcake 设备上正常运行。如果您计划为高密度屏幕(Droid、Nexus One)提供高密度资源,那么您还需要做更多的工作。最好为此启动另一个线程,但长话短说,您可以将高密度资源放在名为drawable-hdpi-v4的文件夹中。

请务必查看 使用-sdk 文档。

其他提示

我会用 1.5 进行测试并放置 android:minSdkVersion=“3” 基于此,仍然有很多设备 1.5 http://developer.android.com/resources/dashboard/platform-versions.html

如果您的应用程序没有做任何花哨的事情,没有使用这些版本之间已弃用/更改/添加的任何内容,并且可以在相应的模拟器上运行,那么您应该没问题。

只需使用以下命令将其限制为 2.1 作为上限 android:maxSdkVersion="7" — 您可以随时在下一个 SDK 发布时进行更新。

我相信以前版本的 SDK 中编写的任何内容都与最新版本完全兼容。

我确定我在设置 IDE 时在 SDK 文档中读过此内容。

如果我是正确的,那么实际上没有必要更新您的应用程序来使用添加的功能,尽管如果您决定扩展它,该选项将始终存在。

在我看来,最佳实践是使用 Android 1.6 sdk 进行编译,并在清单中将 minSdkVersion 设置为 3。

我这样说是基于 Dianne Hackborn(对已接受的答案发表评论的名为 hackbod 的用户)的推荐 这个线程, ,她是一名 Google 员工,负责 Android 源代码本身。

基本上有相当多的 Android 1.5 SDK 设备,因此使用 Android 1.5 SDK 进行编译将为更多使用 1.5 SDK、1.6 SDK、2.0 SDK 或 2.1 SDK 的设备提供支持,但有些设备需要 1.6 SDK,例如与 HTC Tattoo 一样,使用 1.6 sdk 编译您​​的应用程序,但将 minSdkVersion 设置为 3 允许大多数设备能够使用您的应用程序。

如果您按照已接受的答案所述操作并使用最新的 2.1 SDK 进行编译,那么您将错过大量用户。使用 2.1 SDK 编译的应用程序只能由具有 2.1 SDK 或更高版本的设备使用,因此基本上您将用户限制为目前拥有 Google Nexus One 的用户。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top