“最小sdk版本/目标sdk版本”和“编译sdk版本”有什么区别?我知道什么是最小和目标sdk的意思,但什么是编译sdk版本的意思?

在Eclipse中,我有min/max和目标sdk,但在android studio中有这三个设置。


当前回答

min sdk版本是应用程序可以在其上运行的Android sdk的最早版本。这通常是由于早期api的问题,缺乏功能,或其他行为问题。

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

当你发布一个。apk文件时,编译sdk版本是你的IDE(或其他编译方式)用来制作你的应用程序的android版本。这对于测试应用程序很有用,因为在开发应用程序时,编译应用程序是一个常见的需求。因为这将是要编译到APK的版本,所以它自然是您发布的版本。同样,最好让它与你的目标sdk版本相匹配。

其他回答

最小sdk版本是运行应用程序所需的Android操作系统的最小版本。

目标sdk版本是你的应用程序创建运行的Android版本。

编译sdk版本是构建工具用来编译和构建应用程序以发布、运行或调试的Android版本。

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

这里有一个简单明了的方法来理解——

minSdkVersion应该更低,以目标最大覆盖android设备上的应用程序将被安装。

在开发应用程序时需要compileSdkVersion,以使用最新和优化的android api。

tarketSkdVersion是最新的/版本的android操作系统上,你要运行你的应用程序,以实现android资源的充分优化。

注:如有错误,请指正。 谢谢

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

minSdkVersion:最小sdk版本是运行应用程序所需的Android操作系统的最小版本。

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

参考-媒介文章由Paulina Sadowska

compileSdkVersion定义哪个Android SDK版本将被Gradle用来编译你的应用。

例如:

在Android 12中,也就是SDK版本31中,引入了一个新的API,让我们能够轻松实现启动画面。在这个新的API中,启动画面可以使用这些属性进行定制:

如果你想在你的应用程序中使用该API,你首先必须:

i)  download SDK version 31 in Android Studio,
ii) and then: update compileSdkVersion to 31 in your app.

只有这样你才能看到这些新属性。只有这样,你才能在你的代码中使用这个新的启动画面API。

2.targetSdkVersion是一个属性,它告诉系统应用程序是在哪个Android版本上设计和测试的。

如果用户在android版本高于应用程序中定义的targetSdkVersion的设备上运行应用程序,对于新的android功能,系统可能会引入一些向后兼容行为,以确保你的应用程序仍然以你设计的方式运行。

例如:

In Android 12 the appearance of custom notifications was changed. Previously they could use the whole notification area, but in Android 12 system applies the standard template to all custom notifications so they look more consistent. If your targetSdkVersion is below 31 system will assume that you haven’t tested that feature and will display notifications in the old way to minimize the risk that notification will not be displayed properly. Only after you update the target SDK version to 31 the new notification appearance will be used.

min sdk版本是应用程序可以在其上运行的Android sdk的最早版本。这通常是由于早期api的问题,缺乏功能,或其他行为问题。

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

当你发布一个。apk文件时,编译sdk版本是你的IDE(或其他编译方式)用来制作你的应用程序的android版本。这对于测试应用程序很有用,因为在开发应用程序时,编译应用程序是一个常见的需求。因为这将是要编译到APK的版本,所以它自然是您发布的版本。同样,最好让它与你的目标sdk版本相匹配。