设置TargetSDK = 22但编译SDK = 26的优缺点是什么?

Nay*_*pte 0 android android-support-library android-min-sdk runtime-permissions android-architecture-components

我已经阅读了几篇文章和文档以及SO问题,以了解minSDK与targetSDK和compileSDK之间的区别.

例如,在Medium上:选择compileSdkVersion,minSdkVersion和targetSdkVersion

这基本上总结了一下

minSdkVersion <= targetSdkVersion <= compileSdkVersion

但是仍然想了解如果我设置TargetSDK = 22但Compile SDK = 26有什么优缺点?

需要考虑的要点是 -

  1. 我想使用RxJava 2,Dagger 2,随最新支持库提供的Android架构组件,带有Gradle 4.1的Android Studio 3.0等.
  2. 通过将Target SDK版本设置为22以下Android M,我想避免运行时权限对话框.
  3. 应该可以在以后迁移到Kotlin.
  4. minSDK版本将继续保持15

Nab*_*ari 5

更新 - 2018年8月2日:

以下是Google向开发人员发送的电子邮件的一部分.

提醒一下,从2018年11月1日开始,Google Play上的应用和游戏更新将需要针对Android Oreo(API级别26)或更高级别.在此日期之后,Play控制台将阻止您提交targetSdkVersion小于26的新APK.

因此,从上述日期开始定位SDK版本22是不切实际的.

原答案:

目标SDK 22

优点:

  • 您不需要为运行时权限编写代码.(仅限您,对用户没有好处)

缺点:

  • 糟糕的做法和糟糕的用户体验 - 不符合谷歌的指导原则.
  • 如果用户撤消设置的权限,应用程序将崩溃.
  • 您将收到来自用户说"权限太多"的错误评论,因为在安装之前会要求他们授予所有权限.
  • 可能你的应用程序在有机搜索中的优先级较低.