6

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

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

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

谢谢

4

5 回答 5

8

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

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

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

请务必查看uses-sdk文档。

于 2010-01-13T02:10:56.800 回答
4

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

于 2010-01-13T00:19:24.567 回答
2

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

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

于 2010-01-13T00:08:07.390 回答
1

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

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

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

于 2010-01-13T00:14:58.067 回答
1

在我看来,最好的做法是使用 Android 1.6 sdk 进行编译,并在清单中将 minSdkVersion 设置为 3。

我这样说是基于 Dianne Hackborn(名为 hackbod 的用户,对接受的答案发表评论)在这个线程中的推荐,她是一名谷歌员工,在 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 的用户。

于 2010-02-22T14:07:31.643 回答