我有 2 个问题。如果我用 编译了我的应用程序targetSDKVersion 23
但在运行的模拟器上对其进行了测试api level 19
,我能确定它在使用 的设备上运行api level 19
吗?
当我设置minSDKVersion
为API level
并使用该 api 级别上不可用的东西时,我会收到编译器错误吗?如果不是,我如何确定minimum api level
我的程序与什么兼容?
我有 2 个问题。如果我用 编译了我的应用程序targetSDKVersion 23
但在运行的模拟器上对其进行了测试api level 19
,我能确定它在使用 的设备上运行api level 19
吗?
当我设置minSDKVersion
为API level
并使用该 api 级别上不可用的东西时,我会收到编译器错误吗?如果不是,我如何确定minimum api level
我的程序与什么兼容?
如果我使用 targetSDKVersion 23 编译了我的应用程序,但在运行 api 级别 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
}