3 回答
TA贡献1770条经验 获得超3个赞
该分SDK版本是Android SDK应用程序可以运行的最早版本。通常这是由于较早的API出现问题,缺少功能或其他一些行为问题所致。
该目标SDK版本为您的应用程序的版本针对上运行。理想情况下,这是因为某种最佳运行条件。如果要“使您的应用程序版本为19”,则将在此处指定。它可能在早期或更高版本上运行,但这是您的目标。这主要是为了指示您的应用程序在市场等方面的最新使用情况。
该编译SDK版本是Android平台的IDE(或编译,我想其他的部件)版本使用,使您的应用程序时,您发布.apk
的文件。这对于测试您的应用程序很有用,因为在开发应用程序时通常需要编译该应用程序。由于这是要编译为APK的版本,因此自然是您发布的版本。同样,建议您将此目标匹配为sdk版本。
TA贡献1804条经验 获得超3个赞
该分SDK版本是运行应用程序所需的Android操作系统的最低版本。
该目标SDK版本就是Android的版本,您的应用程序创建来运行。
该编译SDK版本就是Android的版本的编译工具用来编译和为了释放,运行或调试构建应用程序。
通常,编译sdk版本和目标sdk版本是相同的。
TA贡献1796条经验 获得超4个赞
公式是
minSdkVersion <= targetSdkVersion <= compileSdkVersion
minSdkVersion-是一个标记,用于定义可在其上安装应用程序的最低Android版本。Lint还使用它来防止调用不存在的API。它还对构建时间有影响。因此,在开发过程中,您可以使用构建样式将minSdkVersion覆盖为最大。使用Android团队为我们提供的所有改进,这将有助于加快构建速度。例如,某些Java 8功能仅可从特定版本的minSdkVersion使用。
targetSdkVersion-表示Android系统可以打开特定的行为更改。
例如:
从Android 6.0(API级别23)Runtime Permissions开始引入。如果设置targetSdkVersion为22或更低,则您的应用程序不会在运行时要求用户获得某些权限。
从Android 8.0(API级别26)开始,所有内容都notifications必须分配给一个频道,否则它将不会出现。在运行Android 7.1(API级别25)及更低版本的设备上,用户只能按每个应用程序管理通知(实际上,每个应用程序在Android 7.1或更低版本中仅具有一个通道)。
从Android 9(API级别28)开始,Web-based data directories separated by process。如果targetSdkVersion是28岁以上,并且您WebView在不同的流程中创建了多个流程,则会得到java.lang.RuntimeException
compileSdkVersion-实际上是SDK平台版本,告诉Gradle使用哪个Android SDK进行编译。当您要使用新功能或.java从Android SDK 调试文件时,应注意compileSdkVersion。 compileSdkVersion 未包含在您的APK中:仅在处使用compile time。更改compileSdkVersion不会更改运行时行为。例如,它可以生成新的编译器警告/错误。因此,强烈建议您始终使用最新的SDK进行编译。您将获得对现有代码进行新编译检查的所有好处,避免使用新近弃用的API,并准备使用新的API。还有一个事实是compileSdkVersion >= Support Library version
您可以在此处了解更多信息。另外,我建议您看一下迁移到Android 8.0 的示例。
- 3 回答
- 0 关注
- 3294 浏览
添加回答
举报