【问题标题】:Run app with higher SDK on lower SDK在较低的 SDK 上运行具有较高 SDK 的应用程序
【发布时间】:2011-05-24 11:53:50
【问题描述】:

我想知道在 Android 3.0 中开发的应用程序是否可以在 Android 2.1 上运行。如果是这样,我该怎么做?

如果我使用 3.0 中的库(例如片段)开发应用程序,它可以在 2.1 中工作吗?

【问题讨论】:

  • 如何为我的项目添加向后兼容性?
  • 实际上片段在 2.1 中不可用,因此正如@Lukas Knuth 所说,始终尝试关注可能的最低 android 版本

标签: android android-sdk-tools


【解决方案1】:

没有。但是 2.1 的应用程序将在 3.0 下运行

您可以尝试复制您的代码并将其与 2.1 库一起使用,但有些东西不起作用(您需要做一些额外的工作才能将其移植回来)。

【讨论】:

  • 我已经下载了针对 api level 11 的 google iosched 项目。它在 android 2.2(api level 8) 上完美运行。
  • 好吧,如果它有效:很好。如果没有:您知道在哪里寻找它。始终尝试以最低的 Android 版本为目标(现在应该是 2.2 或 2.1)。
【解决方案2】:

可以编写针对 3.0 的应用程序,该应用程序也可以在 2.1 下运行。但是,它需要谨慎使用库和兼容性库。

第一步是在清单文件中设置适当的android:minSdkVersionandroid:targetSdkVersion 值。这将定义允许您的应用运行的设备范围。

第二个是确保您不要在较低版本的平台上使用来自更高版本 SDK 的任何 API 函数 - 尝试(例如尝试在 2.2 设备上使用 ActionBar)会导致您的应用崩溃。

我强烈建议阅读 Reto Meier 关于保持向后兼容性的文章: http://blog.radioactiveyak.com/2011/01/how-to-use-gyroscope-api-and-remain.html http://blog.radioactiveyak.com/2011/02/strategies-for-honeycomb-and-backwards.html

此外,Googles I/O app 的源代码绝对值得研究,看看它们如何处理在各种设备上运行,同时仍利用 Honeycomb(及更高版本)版本的功能。

【讨论】:

  • 非常感谢戴夫。这真的很有用。我会试试这个。
猜你喜欢
  • 1970-01-01
  • 2017-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 2014-04-13
  • 1970-01-01
相关资源
最近更新 更多