我是否必须编写显式代码以确保向后兼容性?

时间:2013-06-13 06:03:36

标签: android sdk

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

3 个答案:

答案 0 :(得分:2)

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

An example of how to preserve backwards-compatibility when using a new API.

答案 1 :(得分:1)

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

Android Platform Distribution

它占据了1.6%的市场份额。继续维护和支持这样的早期版本是不值得的。

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) {
    //Use API 7+ code
} else {
    //Use backwards compatible code
}

答案 2 :(得分:0)

你应该检查Android official site如何保证向后兼容到最低级别4(无论如何直到api级别7都可以忽略不计。稍微更重要的份额通常是api级别8以上),并且总是使用最新的support library

当然,有一些小的代码更改(例如getSupportFragmentManager()代替getFragmentManager()等)。你可能发生的最糟糕的事情是NoSuchMethodException所以你必须要非常小心,不要调用在较低平台上不存在的API。 sdk应该非常清楚地告诉它什么时候发生。