我有一个很老的Android应用程序。我使用了minSdkVersion 18和targetSdkVersion 21.现在它是Android v26,还有很多用户使用v24。 如果用户使用的是Android v24或更高版本,他们可以运行我的应用程序,因为我的targetSdkVersion是21.如果是,那么为什么我们必须将它设置为更高的targetSdkVersion?是不是将其设置得更低可以支持更多设备?可能有什么区别?
答案 0 :(得分:1)
如果用户使用的是Android v24或更高版本,他们可以运行我的应用,因为我的targetSdkVersion是21
是
是不是设置得更低可以支持更多设备?
没有。 targetSdkVersion
对您可以支持的设备没有直接影响。这是minSdkVersion
的作用。
targetSdkVersion
控制某些功能已添加到较新版本的Android中。我倾向于在课堂上描述targetSdkVersion
的方式是"它是您在编写代码时所考虑的Android版本"。较新版本的Android(看到旧的targetSdkVersion
)可能会选择行为与旧版Android相同,以使您的应用更有可能正常运行。例如,使用targetSdkVersion
,您无需为dangerous
权限实施运行时权限支持,就像使用23 {或更高版本的targetSdkVersion
一样。
那么为什么我们必须将它设置为更高的targetSdkVersion?
通常,您 。希望没有人指着你的枪强迫你改变这个价值。
某些图书馆作者会告诉您,他们的图书库需要有一定的targetSdkVersion
才能可靠地运作。最大的例子是Android支持库工件,他们希望工件的主要版本与compileSdkVersion
和targetSdkVersion
匹配。
此外,有时,由于旧的targetSdkVersion
,用户会将您的应用视为旧版。例如,您的应用程序不支持运行时权限,因此在安装时,用户必须同意您的权限。用户可能会看到并认为您的应用未被维护,然后选择放弃安装并找到一些看起来更加维护的应用。