【问题标题】:What are pros and cons of setting TargetSDK = 22 but Compile SDK =26?设置 TargetSDK = 22 但编译 SDK =26 的优缺点是什么?
【发布时间】:2017-10-30 10:20:28
【问题描述】:

我已经阅读了几篇文章和documentation 和 SO 问题,以了解 minSDK、targetSDK 和 compileSDK 之间的区别。

例如这个在媒体上:Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion

基本上概括了

minSdkVersion

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

要考虑的点是 -

  1. 我想使用 RxJava 2、Dagger 2、带有最新支持库的 Android 架构组件、带有 Gradle 4.1 的 Android Studio 3.0 等。
  2. 通过将 Target SDK 版本设置为低于 Android M 的 22,我想避免运行时权限对话框。
  3. 将来应该能够迁移到 Kotlin。
  4. minSDK 版本是并且将保持 15

【问题讨论】:

  • 不要询问... 请求列表、投票、意见、讨论
  • 通过将 Target SDK 版本设置为低于 Android M 的 22,我想避免运行时权限对话框这就是制作糟糕应用的方式
  • @selvin 为什么?如果我决定保留 target sdk =22 但 compilesdk =26 并在以后开发应用程序时受苦怎么办?
  • 如果您不想遵循 Google 的指南,我对此无话可说。
  • @NayaneshGupte 您应该使用相同的版本(尊重 compileSdkVersion)

标签: android android-support-library runtime-permissions android-architecture-components android-min-sdk


【解决方案1】:

更新 - 2018 年 8 月 2 日:

以下是 Google 发送给开发者的电子邮件的一部分。

这是reminder,自 2018 年 11 月 1 日起,Google Play 上的应用和游戏将需要针对 Android Oreo(API 级别 26)或更高版本进行更新。在此日期之后,Play 管理中心将阻止您提交 targetSdkVersion 小于 26 的新 APK。

因此,从上述日期开始以 SDK 版本 22 为目标是不切实际的。

原答案:

目标 SDK 22

专业版:

  • 您无需为运行时权限编写代码。 (只给你,对用户没有好处)

缺点:

  • 糟糕的做法和糟糕的用户体验 - 不符合 Google 的指导方针。
  • 如果用户从设置中撤消权限,应用将会崩溃。
  • 您会收到用户说“权限太多”的差评,因为在安装之前会要求他们授予所有权限。
  • 您的应用在自然搜索中的优先级可能会降低。

【讨论】:

  • 我想补充一点,专业人士只适合他,因为运行时权限可以提供更好的用户体验。我不会使用要求我提供我无法选择的 n 个权限的应用程序。甚至会很可疑。
  • 完美答案。
【解决方案2】:

缺点

除了其他答案中已经提到的之外,这里还有一些缺点

  • TargetSDK 22 禁用了一些打盹优化。这可能会导致您的应用没有尽可能地优化电池。

优点

其中一些非常特定于应用类型

  • 打盹模式实际上可能会阻碍应用程序的功能。实际示例:启用打盹模式时,某些类型的健身应用程序无法可靠运行(除非您创建前台服务)。在这种情况下,targetSDK = 22 可能更合适。
  • 用户专业版:如果 targetSDK > 22,我们鼓励您使用 Google Play 服务。除了并非在所有设备上都可用之外,它实际上模糊了哪个应用程序实际上导致了电池消耗(现在电池消耗归因于“Google Play 服务”而不是实际行为不端的应用程序)。所以他们不知道要卸载哪个应用程序。由于我们谈论的是用户体验,因此将 targetSDK = 22 设置为对用户来说可能会更好,因为您对自己造成的电池消耗是诚实的。

一般来说,建议尽可能使用最新的 targetSDK - 除非您的应用在较新的 SDK 版本的限制下无法正常运行。

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2014-01-24
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多