什么是android SDK平台包?

什么是
Android SDK平台包?

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

最佳答案 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类“显示”到编译器,以便它可以编译自己的类.

点赞