LZ初学Android,最近在看Android的SDK兼容性方面的资料。有点不确定自己对于“向后兼容”的概念是否理解正确,开贴向大家求证一下:
所谓的“向后兼容”,就是说旧版本SDK中提供的API,在新版本的SDK中都有提供,2者在调用的时候没什么区别,无论是形式还是实现的功能都一样(内部实现可能不一样)。
因此可以得出以下2个推论:
(1)使用旧版本SDK编译的App,完全可以在新版本SDK的环境下运行;
(2)使用新版本SDK编译的App,如果没有使用新版API(就是说只使用旧版本SDK中的API),那么完全可以在旧版本SDK的环境下运行。
最终结论:在开发涉及SDK兼容性的应用时,应该:
(1)根据App所必须使用到的API,来设置最小兼容的SDK版本(Minimum SDK version);
(2)在开发过程中:要么不使用高于Minimum SDK version中的API;要么通过if进行版本测试后使用;要么加入第三方的library替代此API;
(3)在编译的时候,一律使用最新的SDK进行编译,因为即使API在新旧SDK中看上去一样,但是其实现可能进行了优化,因此编译出来的apk文件执行效率可能更高。
不知道以上理解是否正确?
所谓的“向后兼容”,就是说旧版本SDK中提供的API,在新版本的SDK中都有提供,2者在调用的时候没什么区别,无论是形式还是实现的功能都一样(内部实现可能不一样)。
因此可以得出以下2个推论:
(1)使用旧版本SDK编译的App,完全可以在新版本SDK的环境下运行;
(2)使用新版本SDK编译的App,如果没有使用新版API(就是说只使用旧版本SDK中的API),那么完全可以在旧版本SDK的环境下运行。
最终结论:在开发涉及SDK兼容性的应用时,应该:
(1)根据App所必须使用到的API,来设置最小兼容的SDK版本(Minimum SDK version);
(2)在开发过程中:要么不使用高于Minimum SDK version中的API;要么通过if进行版本测试后使用;要么加入第三方的library替代此API;
(3)在编译的时候,一律使用最新的SDK进行编译,因为即使API在新旧SDK中看上去一样,但是其实现可能进行了优化,因此编译出来的apk文件执行效率可能更高。
不知道以上理解是否正确?