我有2个问题。
如果我使用targetSDKVersion 23
编译了我的应用,但在运行api level 19
的模拟器上对其进行了测试,我是否确定它会在api level 19
的设备上运行?
当我将minSDKVersion
设置为API level
并使用该api级别上不可用的内容时,我会收到编译错误吗?如果不是,我怎么能确定我的程序与minimum api level
兼容的是什么?
答案 0 :(得分:1)
如果我使用targetSDKVersion 23编译我的应用程序,但在运行api level 19的模拟器上测试它
targetSdkVersion
无法更改您的代码或其在设备上的运行方式。
当我将minSDKVersion设置为API级别并使用该api级别上不可用的内容时,我会收到编译错误吗?
您不会遇到编译错误 - 您会收到lint警告。如果您实际在没有该API的设备上运行,则会出现运行时错误。
我怎样才能确定最低api级别
在运行时,您可以查询设备的SDK级别:
Build.VERSION.SDK_INT
将是API级别。
然后,您可以使用常量执行检查以优雅地降级:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
// fallback
} else {
// use your lollipop api
}