Android 最小SDK版本/目标SDK版本与编译SDK版本之间有什么区别?

Android 最小SDK版本/目标SDK版本与编译SDK版本之间有什么区别?,android,android-studio,Android,Android Studio,“最小sdk版本/目标sdk版本”和“编译sdk版本”之间有什么区别?我知道min和TargetSDK是什么意思,但编译sdk版本意味着什么 在Eclipse中,我有min/max和target sdk,但在android studio中有这三种设置。min sdk版本是运行应用程序所需的android操作系统的最低版本 目标sdk版本是创建应用程序以在其上运行的Android版本 编译sdk版本是Android的版本,用于编译和构建应用程序,以便发布、运行或调试 通常编译sdk版本和目标sdk

“最小sdk版本/目标sdk版本”和“编译sdk版本”之间有什么区别?我知道min和TargetSDK是什么意思,但编译sdk版本意味着什么


在Eclipse中,我有min/max和target sdk,但在android studio中有这三种设置。

min sdk版本是运行应用程序所需的android操作系统的最低版本

目标sdk版本是创建应用程序以在其上运行的Android版本

编译sdk版本是Android的版本,用于编译和构建应用程序,以便发布、运行或调试


通常编译sdk版本和目标sdk版本是相同的。

min sdk版本是应用程序可以运行的Android sdk的最早版本。通常这是因为早期API存在问题、缺乏功能或其他行为问题

目标sdk版本是应用程序运行的目标版本。理想情况下,这是因为某种最佳运行条件。如果你要“为版本19制作你的应用”,这就是你要指定的地方。它可以在早期或更高版本上运行,但这正是您的目标。这主要是为了表明您的应用程序在市场上的使用情况等


编译sdk版本是您发布
.apk
文件时IDE(或其他编译方式)用来制作应用程序的android版本。这对于测试应用程序很有用,因为在开发应用程序时编译应用程序是一种常见的需要。由于这将是编译为APK的版本,因此它自然将是您发布的版本。同样,建议将其与您的目标sdk版本匹配。

minSdkVersion、targetSdkVersion、compileSdkVersion

公式是

minSdkVersion <= targetSdkVersion <= compileSdkVersion

minSdkVersioncompileSdkVersion:compileSdkVersion是应用程序编译所依据的API版本。这意味着您可以使用该版本的API中包含的Android API功能(当然也包括所有以前的版本)。如果您尝试使用API 16功能,但将compileSdkVersion设置为15,则会出现编译错误。如果将compileSdkVersion设置为16,则仍可在API 15设备上运行该应用程序

minSdkVersion:minsdk版本是运行应用程序所需的安卓操作系统的最低版本


targetSdkVersion:目标sdk版本是您的应用程序运行的目标版本。

我的编译sdk版本和目标sdk版本相同。那是21。我的应用程序在API级别较低的设备上运行时崩溃。我是Android新手,现在该怎么做?@prgmrDev如果你的应用程序在低于21的版本上崩溃,你可能应该将你的min SDK版本设置为21。这实际上不会在低于21的目标上修复您的应用程序,只会注意到您的应用程序在较低版本上不受支持。您还可以选择确定到底是什么破坏了您的应用程序(在版本21中发生了什么变化),并添加支持以处理该依赖关系,但我怀疑这将是一项大量工作,不在Android初学者项目的范围内;targetSdkVersion=23;把SDK编译成19?@thadeuszlay你的问题无关紧要,因为你应该想一想,如果你的目标是在23版上运行,那么怎么可能用19版编译它呢!请遵循公式minSdkVersion,我不理解“目标sdk版本是您的应用程序运行的目标版本”。由于我从未针对特定的API级别,因为我应该而且我必须让我的应用程序在一系列具有不同API级别的设备上正常运行。当它们的优缺点不一致时?我目前正在开发一个应用程序,其中我使用的targetsdkversion为12,我的所有布局都非常不正常,然后我将其改回23,它工作起来很有魅力,所以我认为targetsdk版本必须始终与编译版本相关的文章最佳答案相同,因为它实际上解释了targetSdkVersion和compileSdkVersion@yoAlex5谢谢你的回答。我看到很多情况下targetSdkVersion和compileSdkVersion是相同的。为什么android将两个单独设置为一个不足以处理,或者设置为两个单独的字段背后有什么具体原因吗?@Manju您可以在SO thread@yoAlex5中找到更多内容“android系统打开特定行为更改”是什么意思?请解释一下?@atishr“特定行为更改”列在“例如”框中