gpt4 book ai didi

android - Eclipse 中的 SDK 版本规范

转载 作者:行者123 更新时间:2023-11-30 00:24:38 24 4
gpt4 key购买 nike

我是一位使用 Eclipse 的经验丰富的 Android 开发人员,但有一件事仍然让我感到困惑。即SDK版本规范。特别是,我发现了几个指定 SDK 版本的地方:

  1. 项目属性:Android:项目构建目标
  2. list :minSdkVersion
  3. list :targetSdkVersion
  4. list :maxSdkVersion

以下是我对用法的猜测(可能是错误的):

项目属性:项目构建类型
好的,看起来很简单。我相信这指定了要使用的 API“库”。

list :minSdkVersion
我的猜测是,这是检查所用方法的最低级别(如上所述)。好的,但似乎多余。如果我使用不受支持的方法,编译器不会对我咆哮吗?

list :targetSdkVersion
想不通这一点。如果我只调用支持的方法,这个设置还有什么作用?

list :maxSdkVersion
更加神秘。你为什么要限制最大版本?它们不是向后兼容的吗?

官方文档很少介绍这些设置的功能。谁能给我一些见解?

最佳答案

Android:项目构建目标

当您选择一个项目构建目标版本时,这意味着您是apk 或类将根据选择的SDK 进行编译。例如 - 如果您选择项目构建目标 16 并尝试使用注释 @JavaScriptInterface 它将找不到,因为该注释在该目标之上可用。

list :minSdkVersion

如果您定义了最低 SDK 版本,则使用低于指定最低 SDK 版本的 Android 用户将无法使用您的应用。

有关来自 google 文档的更多信息:

An integer designating the minimum API Level required for the application to run. The Android system will prevent the user from installing the application if the system's API Level is lower than the value specified in this attribute. You should always declare this attribute.

list :targetSdkVersion

targetSdkVersion 与您的应用程序的编译方式或您可以使用的 API 无关。 targetSdkVersion 应该表明您已经在您指定的版本上(可能达到并包括)测试了您的应用程序。这更像是您向 Android 操作系统提供的认证或签字,以提示它应如何根据操作系统功能处理您的应用。

例如,如文档所述:

For example, setting this value to "11" or higher allows the system to apply a new default theme (Holo) to your app when running on Android 3.0 or higher...

Android 操作系统在运行时可能会根据此值更改您的应用程式化方式或在操作系统上下文中以其他方式执行的方式。还有一些受此值影响的其他已知示例,并且该列表可能只会随着时间的推移而增加。

出于所有实际目的,大多数应用都希望将 targetSdkVersion 设置为最新发布的 API 版本。这将确保您的应用在最新的 Android 设备上看起来尽可能好。如果不指定targetSdkVersion,则默认为minSdkVersion

list :maxSdkVersion

如果您定义了maxSdkVersion,则使用运行 SDK 版本高于您在 maxSdkVersion 中定义的 Android 手机的用户将无法使用您的应用。

有关来自 google 文档的更多信息:

An application declaring maxSdkVersion="5" in its manifest is published on Google Play. A user whose device is running Android 1.6 (API Level 4) downloads and installs the app. After a few weeks, the user receives an over-the-air system update to Android 2.0 (API Level 5). After the update is installed, the system checks the application's maxSdkVersion and successfully re-validates it. The application functions as normal. However, sometime later, the device receives another system update, this time to Android 2.0.1 (API Level 6). After the update, the system can no longer re-validate the application because the system's own API Level (6) is now higher than the maximum supported by the application (5). The system prevents the application from being visible to the user, in effect removing it from the device.

关于android - Eclipse 中的 SDK 版本规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com