我对目标构建和sdk的使用感到困惑。
让我说我有这个代码
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
//do xyz
}
假设我是根据API 19 (kitkat)构建的,清单中的目标api是19,我的最低支持api是9。
现在,如果一个带有API 9的设备运行上述代码,它会崩溃吗?我希望答案是肯定的,因为它不会理解Build.VERSION_CODES.KITKAT的含义。然而,上面的检查有什么意义呢?
请帮助澄清这一点
谢谢
发布于 2014-03-29 11:19:17
较小版本的android将使用支持库,如果对kit-kat的检查失败,它将恢复到版本支持的最接近的可能性形式.通过支援图书馆..。您不能在任何低于最低版本的情况下运行您的应用程序,但只要它高于最小版本,它就会找到一种以小于目标版本的方式运行。
发布于 2014-03-29 11:21:01
不,它不会崩溃,因为它的Build.VERSION.SDK_INT值是9。它不会在if子句中输入。只有具有API 19或更高版本的设备才会在if中运行您的代码。Build.VERSION_CODES.KITKAT等于19。
发布于 2014-03-29 11:22:46
您发布的代码不会崩溃,因为类Build
是根据您在清单中设置的目标API为应用程序的每次构建(作为R
文件)创建和编译的。
当您将目标API设置为19时,Build
类将包含字段Build.VERSION_CODES.KITKAT
,因为它从API级别19开始存在。
https://stackoverflow.com/questions/22735658
复制