什么是Android SDK平台包?

时间:2018-03-18 21:13:05

标签: android

Android SDK平台包有哪些?

我是否需要为我定位的每个API级别下载相应的平台?

2 个答案:

答案 0 :(得分:2)

minSdkVersion是您的应用与之兼容的最低API版本。您无需根据此值下载任何内容。如果你设置一个值,比方说21(Marshmallow)你的应用程序将无法在Android版本19(KitKat)的设备上运行

targetSdkVersion用于检测您的应用兼容的最高sdk版本,它表示向前兼容性。这里的区别在于,如果您设置目标版本,例如21,您的应用将在具有Android 23的设备上运行。它可以被未来版本的Android用于了解是否可能是您的应用不支持的一些新功能。 Google Play政策最近已更新,因此您将被迫使用最新的API版本作为目标,请阅读here

compileSdkVersion是您在编译应用时使用的Android SDK版本。您必须下载该版本的SDK才能编译您的应用程序并使用该版本的SDK中的类。例如,您可能希望使用类Context,并调用方法getColor(int),SDK的版本23具有它,以便您可以在代码中使用它。如果您使用的是版本21,则该方法不存在,因此您无法在应用中调用它。您在此处看到minSdkVersion也很有用,因为您可能希望使用此方法,但它仅在版本23中引入,因为您有一个最小的SDK 21,您将在编译时收到警告。

构建工具用于编译您的应用程序,无论上述值如何,您都应该将它们更新到最新版本。我认为使用最新版本的Android gradle插件,您不再需要设置此值,它将自动处理。

总而言之,您只需要下载您正在编译的API版本的SDK,即compileSdkVersion

关于“编译反对”的含义,在编写应用程序时编译代码并将其打包到apk中,然后将apk部署到设备中。在您的代码中,您使用Android SDK中的类(例如Context),但这些类的代码不包含在apk中,它是从运行您的应用程序的设备的操作系统提供的。如果要编译使用这些SDK类的类,则必须将这些SDK类“显示”给编译器,以便它可以编译自己的类。

答案 1 :(得分:-1)

当您设置android:minSdkVersion时,表示您希望使用该版本的优势和开发工具(minSdkVersion以下的用户也无法使用您的应用程序)。因此,您必须下载支持您的工具和最低版本需求的SDK。

如果您设置了android:targetSdkVersion,则表示您已针对该版本测试了您的应用程序。所以显然你需要下载测试该版本所需的工具。如果您未设置android:targetSdkVersion,则默认情况下它将等于minSdkVersion

脚注:使用最新版本的SDK(作为compileSdkVersion)使您可以使用最新的工具和平台优势。如果您使用的是targetedminSdkVersion用户不支持的工具,开发软件会发出警告。