【问题标题】:Target android 4.1 works on previous versions?Target android 4.1 适用于以前的版本?
【发布时间】:2013-01-21 02:33:19
【问题描述】:

我有一个可能看起来很愚蠢的问题,但我有这个...

我有一个适用于 android 的应用程序,由于使用了 api,因此必须针对 Android 4.1。

我怀疑该应用程序是否可以在系统低于 4.1 的 android 设备上运行?

在我的清单文件中放入以下内容

<uses-sdk
         android: minSdkVersion = "8"
         android: targetSdkVersion = "16" />

我在我的安卓 2.3.6 设备上进行了测试,运行正常,没有任何错误,其他版本也一样,没有出现问题?

【问题讨论】:

    标签: java android api target


    【解决方案1】:

    最低 SDK 版本

    最低 SDK 版本是您可以运行应用程序而不会导致问题的最低 API。

    一个整数,指定应用程序运行所需的最低 API 级别。如果系统的 API Level 低于此属性中指定的值,Android 系统将阻止用户安装应用程序。您应该始终声明此属性。

    -- &lt;uses-sdk&gt; Documentation

    目标 SDK 版本

    目标 SDK 版本只是说明您可以为您的应用程序使用哪个 API。

    一个整数,指定应用程序所针对的 API 级别。 ...此属性通知系统您已针对目标版本进行了测试,并且系统不应启用任何兼容性行为以保持您的应用程序与目标版本的前向兼容性。该应用程序仍然能够在旧版本(低至 minSdkVersion)上运行。

    -- &lt;uses-sdk&gt; Documentation

    示例

    例如,假设您在应用中使用 Display.getSize(Point)。此方法仅适用于 API 13+,因此您必须以 13 或更高版本为目标。但是,如果您不在使用 API 12 或更低版本的设备上调用此方法,则不会遇到任何问题。

    但是,假设您的应用要求您有权访问 Fragments 及其方法(并且不想使用支持库)。然后,您必须拥有 11 的最低 SDK 级别 - 否则,它会在低于该 API 级别的设备上崩溃。

    简答

    android:minSdkVersion="8" 表示您的应用可以在 Android 2.2+ 上使用。 android: targetSdkVersion="16" 意味着您可以在编译应用时访问 Android 4.1+ 的任何内容(但是否意味着旧设备可以使用这些功能)。

    【讨论】:

      【解决方案2】:

      minSdkVersion = 8 表示它将在运行 Android 2.2 或更高版本的设备上运行

      【讨论】:

        【解决方案3】:

        Eric 的回答非常好。我只想从文档中添加更多内容。它可能会帮助你..

        关于 minsdkversion

        1. 如果系统的 API Level 低于此属性中指定的值,Android 系统将阻止用户安装应用程序
        2. 如果不声明该属性,系统会假定默认值为“1”,表示您的应用兼容所有版本的Android
        3. 因此,如果您使用在您的 minsdk 版本之后引入的任何 api,那么程序将会崩溃。

        关于targetsdkversion

        1. 如果未设置,则默认值等于为 minSdkVersion 提供的值。
        2. 取决于您应用程序在不同版本的 android 操作系统上的 targetsdkversion,行为和外观可能会发生变化。因此来自文档..

        例如,将此值设置为“11”或更高允许系统 在 Android 上运行时为您的应用应用新的默认主题 (Holo) 3.0 或更高版本,并且在大屏幕上运行时也会禁用屏幕兼容模式(因为隐式支持 API 级别 11 支持更大的屏幕)。

        再举一个例子。假设您将targetsdk 版本设置为5。那么在所有操作系统版本中,菜单、标题栏和整体主题都将像ECLAIR。但是如果您将targetsdk 版本设置为14。那么对于ics,主题将是ics。并且在以下版本的操作系统上,主题将与该操作系统相对应。

        最后关于 maxsdkVersion:

        由于提到了其他两个,所以我认为我们也应该包括这个孤独的属性。如果声明了此属性,则其值必须等于或大于系统的 API 级别整数。如果未声明,则系统假定应用程序没有最高 API 级别。

        【讨论】:

          猜你喜欢
          • 2012-10-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-01
          • 1970-01-01
          相关资源
          最近更新 更多