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

我已经经历了几篇文章和文档 ,所以问题来了解minSDK vs targetSDK与compileSDK之间的区别。

例如,在介质上: 选择您的compileSdkVersion,minSdkVersion和targetSdkVersion

基本上总结了一下

minSdkVersion <= targetSdkVersion <= compileSdkVersion

但是还是想知道如果我设置TargetSDK = 22但是编译SDK = 26有什么优点和缺点?

要考虑的要点是 –

  1. 我想使用RxJava 2,Dagger 2,最新支持库提供的Android Architecture组件,Android Studio 3.0和Gradle 4.1等。
  2. 通过将Target SDK版本设置为低于Android M的22,我想避免运行时权限对话框。
  3. 未来应该可以迁移到Kotlin。
  4. minSDK版本将保持15

目标SDK 22

优点:

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

缺点:

  • 糟糕的做法和糟糕的用户体验 – 不符合Google的指导原则。
  • 如果用户从设置中撤消权限,应用程序将会崩溃。
  • 你会从用户说“太多的权限”,因为他们会被要求在安装前授予所有的权限,坏评论。
  • 有机搜索中,您的应用可能会获得较少的优先级。

缺点

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

  • TargetSDK 22禁用一些打盹优化。 这可能会导致您的应用程序不能像电池那样进行优化。

优点

其中一些对应用程序的类型非常具体

  • 打盹模式实际上可能会阻碍应用程序的功能。 真实世界的例子:当打盹模式被启用时(除非你创建一个前台服务),某些类型的健身应用程序不能可靠地工作。 在这种情况下,targetSDK = 22可能更合适。
  • 赞成用户 :使用targetSDK> 22,鼓励您使用Google Play服务。 除了在所有设备上无法使用,它实际上模糊了哪个应用程序实际上导致电池耗尽(现在的电池消耗归因于“Google Play服务”,而不是实际的行为不端应用程序)。 所以他们不知道卸载哪个应用程序。 由于我们正在谈论用户体验,因此对于用户来说,设置targetSDK = 22可能会更好,因为您对所造成的电量消耗是诚实的。

一般来说,如果可能的话,最好使用最新的targetSDK,除非你的应用程序不能在较新的SDK版本的限制下运行。

Interesting Posts