【问题标题】:old targetSdkVersion for new devices新设备的旧 targetSdkVersion
【发布时间】:2018-05-07 16:07:10
【问题描述】:

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

【问题讨论】:

    标签: android target-sdk


    【解决方案1】:

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

    是的。

    是不是越低就可以支持更多设备了?

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

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

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

    一般情况下,您不必这样做。希望没有人用枪指着你的头来强迫你改变这个值。

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 1970-01-01
      • 2011-12-10
      • 2014-08-21
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多