0

如果我将最低 SDK 指定为 2.0,目标 SDK 指定为 4.1,我是否必须编写显式代码以确保向后兼容。就像我想使用 SDK 级别 7 中引入的手势检测功能,我将目标设置为 7,最小值设置为 3。我问我是否需要编写显式代码(不包括手势检测功能)以便它在小于 7 但大于 3 的目标中运行?

4

3 回答 3

2

是的,在旧版本的 Android 上运行时,您必须避免调用未来的 API。您可以根据操作系统的版本组织代码以在运行时选择适当的代码路径。

使用新 API 时如何保持向后兼容性的示例。

于 2013-06-13T06:12:08.583 回答
1

是的,您需要这样做,但我认为没有任何合乎逻辑的理由仍然支持 8 (2.2) 之前的任何 API。

安卓平台分布

它实际上是市场的 1.6%。不再值得努力维护和支持这样的早期版本。

也就是说,如果您需要执行特定于版本的代码,这是处理它的方法:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) {
    //Use API 7+ code
} else {
    //Use backwards compatible code
}
于 2013-06-13T06:09:56.780 回答
0

您应该查看 Android官方网站,了解如何保证向后兼容到最低级别 4(无论如何在 api 级别 7 之前都可以忽略不计。稍微重要的份额通常是 api 级别 8 以上),并始终使用最新的支持库

当然还有一些小的代码更改(例如getSupportFragmentManager()替换getFragmentManager()等)。可能发生的最糟糕的情况是NoSuchMethodException,您必须非常小心,不要调用较低平台中不存在的 API。sdk 应该非常清楚地建议它发生时。

于 2013-06-13T06:15:23.203 回答