我已经看了用Gradle构建的文档,但我仍然不确定compileSdkVersion和targetSdkVersion之间的区别是什么。

它只是说:

The `compileSdkVersion` property specifies the compilation target.

那么,什么是“编译目标”呢?

我认为有两种可能的解释:

compileSdkVersion是构建应用程序时使用的编译器版本,而targetSdkVersion是“应用程序目标的API级别”。(如果是这种情况,我假设compileSdkVersion必须大于或等于targetSdkVersion? 它们是同一个意思。"编译目标" == "应用程序目标的API级别" 别的吗?

我知道这个问题以前被问过,但唯一的答案只是引用了文档,这对我来说是不清楚的。


当前回答

在Visual Studio 2017(15.8.5)中,Android项目属性的应用程序设置将它们组合在一起:

其他回答

CompileSdkVersion是你的应用程序在开发过程中用于编译等的SDK平台的版本(你应该总是使用最新的)。这是与你正在使用的API版本一起提供的

您将在构建中看到这一点。gradle文件:

targetSdkVersion:包含应用程序在开发过程到应用商店后附带的信息,允许它瞄准Android平台的指定版本。根据应用程序的功能,它可以针对低于当前的API版本。例如,即使当前版本是23,您也可以以API 18为目标。

好好看看这个谷歌官方页面。

compileSdkVersion应该是最新的稳定版本。 targetSdkVersion应该经过充分测试,小于或等于compileSdkVersion。

在Visual Studio 2017(15.8.5)中,Android项目属性的应用程序设置将它们组合在一起:

不回答你的直接问题,因为已经有很多详细的答案,但值得一提的是,与Android文档相反,Android Studio建议使用相同的版本compileSDKVersion和targetSDKVersion。

快速总结:

对于minSDKversion,请参阅twitter handle中的最新条目:https://twitter.com/minSdkVersion

TargetSDKversion:参见twitter handle: https://twitter.com/targtSdkVersion中的最新条目 或者使用最新的API级别,详见devel https://developer.android.com/guide/topics/manifest/uses-sdk-element.html

编译的版本: 使它与TargetSDKversion相同

maxSdkVersion: 来自Android的建议是不要设置这个,因为你不想限制你的应用程序不能在未来的Android版本上运行