如果我将最小SDK指定为2.0,将目标SDK指定为4.1,那么我是否必须编写明确的代码以确保向后兼容。就像我想要使用SDK级别7中引入的手势检测功能一样,我将目标设置为7,最小值设置为3.我问我是否需要编写明确的代码(其中不包括手势检测功能),以便它运行在小于7但大于3的目标上?我是否必须编写明确的代码以确保向后兼容?
0
A
回答
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
}
2
是的,你必须避免在旧版Android的运行时要调用的API的未来。您可以组织代码在运行时选择适当的代码路径,具体取决于您的操作系统版本。
An example of how to preserve backwards-compatibility when using a new API.
0
你应该检查出的Android official site如何保证向后兼容性,最低4级(可忽略不计,直到API第7级呢。稍微更显著份额通常是API 8级以上),并始终使用最新的support library。
当然有一些小的代码更改(如getSupportFragmentManager()
代替getFragmentManager()
等)。你可能发生的最坏的事情是NoSuchMethodException
,所以你必须真正小心,不要调用低级平台中不存在的API。 sdk应该非常明确地建议,当它发生时。
相关问题
- 1. 如何确保URL重写后的向后兼容性?
- 2. 以这种方式编写Android兼容代码是否安全?
- 3. 我是否必须明确支持ADMX文件中的Wow6432Node?
- 4. 方式,也必须保持其向后兼容性休息
- 5. 服务意向必须是明确的:意向
- 6. 我是否必须按顺序明确销毁对象
- 7. 我是否必须明确关闭此文件?
- 8. 我的以下代码是否正确?
- 9. MemoryStream必须明确处置?
- 10. Olingo4是否向后兼容?
- 11. 我必须明确地调用Destructor
- 12. 我对编写伪代码(java)的理解是否正确?
- 13. 我是否必须处理查询以确保含义是事实?
- 14. 我必须明确地用DateTimeZone重写PHP的DateTime吗?
- 15. 正确的向后兼容性,java.lang.VerifyError
- 16. 如何编写向后兼容的HTML5?
- 17. 如何查看代码是否向后兼容Python?
- 18. PHP PDO,需要确保我明白我的代码是什么?
- 19. 这是明确的代码?
- 20. 如何正确编写此MVC剃须刀代码以使用我的JavaScript?
- 21. 确保动态加载类型的向后兼容性
- 22. 确保向后兼容性的API设计
- 23. Android的向后代码兼容性
- 24. 在Node.JS中编写CLI时,你是否总是回退到向后兼容的代码?
- 25. 我们是否必须明确提及主键的非空约束?
- 26. 是我为sparql执行写的代码是否正确?
- 27. Xcode 4代码向后兼容
- 28. 向后兼容Android/Java代码
- 29. 必须声明子类方法是否与PHP中的父类方法兼容?
- 30. 我是否正确编写这个makefile?
我刚才提到的sdk版本中只有虚拟值,我的意思是像2.0和4.1这样的版本,只是示例,没有别的。 任何方式感谢您的答案:) –
有没有什么办法可以知道当我编码时哪些功能不会自动处于目标版本中? –
如果您使用减法方法,lint会向您发出相同警告。 – Raghunandan