0

我有一个非常旧的 android 应用程序。我用的是minSdkVersion 18和targetSdkVersion 21。现在是Android v26,还有很多用户在使用v24。如果用户使用的是 Android v24 或更高版本,他们可以运行我的应用,因为我的 targetSdkVersion 为 21。如果是,那么为什么我们必须将其设置为更高的 targetSdkVersion?是不是设置低了可以支持更多的设备?有什么区别?

4

1 回答 1

2

如果用户使用的是 Android v24 或更高版本,他们可以运行我的应用,因为我的 targetSdkVersion 是 21

是的。

是不是设置低了可以支持更多的设备?

targetSdkVersion,对您可以支持的设备没有直接影响。这就是 的作用minSdkVersion

targetSdkVersion控制添加到较新版本的 Android 的一些功能。我倾向于targetSdkVersion在课堂上描述的方式是“这是您在编写代码时所考虑的 Android 版本”。较新版本的 Android,看到您的旧版本targetSdkVersion,可能会选择像旧版本的 Android 一样运行,以使您的应用更有可能正常运行。例如,对于您的targetSdkVersion,您不需要像使用23 或更高dangerous的 a 那样实现对权限的运行时权限支持。targetSdkVersion

那为什么我们必须将它设置为更高的targetSdkVersion?

通常,您不必这样。希望没有人用枪指着你的头来强迫你改变这个值。

某些库作者会告诉您,您需要有一定targetSdkVersion的条件才能使他们的库可靠地工作。最大的例子是 Android 支持库工件,他们希望工件的主要版本与您的compileSdkVersiontargetSdkVersion.

此外,有时,由于旧的targetSdkVersion. 例如,您的应用程序不支持运行时权限,因此在安装时,用户必须同意您的权限。用户可能会看到并认为您的应用程序没有得到维护,然后选择放弃安装并找到其他看起来更维护的应用程序。

于 2017-11-23T16:27:28.643 回答