【问题标题】:minSdk, targetSDK, Deprecated - AndroidminSdk,targetSDK,已弃用 - Android
【发布时间】:2014-01-23 20:37:37
【问题描述】:

如果我的目标 API 是 19,而我的最低要求是 8,那么在声明它们是在 API 11 中引入并强制我在方法上方添加此类属性的函数中:@TargetApi(Build.VERSION_CODES.GINGERBREAD)

此方法不适用于 API 8 手机吗?

但是,如果该方法表示已弃用,它是否适用于所有手机?因此,如果我在 API 11 中已弃用和引入之间进行选择,我真的应该选择已弃用吗?但是,如果我愿意做更多的工作,我可以检查手机 API 并运行适合该手机的方法吗?是这样,还是将我的最低 API 从 8 更改为 11?要查看我的 minSDK 应该是什么,我是否应该在目标 API 设置为低的情况下测试我的代码,如果它导致错误,请将我的 minSdk 设置为高于该值(或解决错误..或者/或)?

Android 手机用户可以更新他们的 API 级别吗?我没有安卓,快速的谷歌也没有透露这一点。

“从 Android 3.2(API 级别 13)开始,不推荐使用上述尺寸组,您应该改用 swdp 配置限定符来定义布局资源所需的最小可用宽度。” - 这是否意味着您应该使用 swdp 如果您要么先检查他们的手机是否高于 API12,要么将 minSDK 设置为 13?

谢谢。

【问题讨论】:

    标签: android api


    【解决方案1】:

    此方法不适用于 API 8 手机吗?

    如果“此方法”是指“您调用的方法,该方法已添加到 API 级别 11,触发了对@TargetApi 的需求”,那么,是的,该方法不适用于 API 级别 8、9 , 或 10。它是在 API 级别 11 中添加的,在此之前不存在。

    但是,如果该方法显示已弃用,它是否适用于所有手机?

    一般来说,是的。大多数不推荐使用的方法都被标记为不推荐使用,因为有更好的解决方案。出于安全原因或因为它们不再支持它们,某些方法已被弃用并且也被更改为什么都不做。这些通常在 JavaDocs 中如此标注。

    如果我在 API 11 中已弃用和引入之间进行选择,我真的应该选择已弃用吗?

    理想情况下,您选择同时使用两者,使用Build.VERSION.SDK_INT 来确定您正在运行的 API 级别。 API 级别 11+ 的方法通常比已弃用的方法更丰富,更符合用户期望。因此,请尽可能使用较新的 API,并在必要时优雅地降级为较旧的 API(无论是否已弃用)。

    但如果我愿意做更多的工作,我可以检查手机 API 并运行适合该手机的方法吗?

    是的,通过Build.VERSION.SDK_INT。见http://developer.android.com/guide/practices/compatibility.html#Versions

    要么这样,要么将我的最低 API 从 8 更改为 11?

    那将是另一种可能性。

    要查看我的 minSDK 应该是什么,我是否应该在目标 API 设置为低的情况下测试我的代码,如果它导致错误,请将我的 minSdk 设置为高于该值(或解决错误..或者/或)?

    通常,您会根据市场选择最低 SDK 级别。现在,very few devices run API Level 8 or 9, and not that many run API Level 10。您可能会认为测试旧设备可能不值得。

    Android 手机用户可以更新他们的 API 级别吗?

    设备制造商有时会发布更新,一些用户可能会求助于 ROM 模组,例如 Cyangenmod,以进行超出制造商所做的升级。

    我没有安卓

    如果不购买设备,我不会在 Android 开发方面走得太远。模拟器虽然不错,但只是模拟器。

    【讨论】:

      【解决方案2】:

      @TargetAPI 注释只是隐藏了在 API 级别较低的设备上使用需要高于 X 的 API 的方法时遇到的错误:

      表示无论项目目标是什么,Lint 都应将此类型视为针对给定 API 级别。

      不推荐使用的方法通常已经过时,因为它们是新 API 级别中更好的解决方案。这些新方法在旧级别中尚不存在,因此您必须为这些设备使用已弃用的方法。使用简单的 if 语句来检查用户正在使用的 API 级别,您可以选择适当的方法。

      最后,有些设备太旧,无法再获得更新。因此,它们的 API 级别不会改变。

      【讨论】:

        猜你喜欢
        • 2023-01-30
        • 2022-01-10
        • 1970-01-01
        • 2023-03-06
        • 2012-12-25
        • 2021-08-31
        • 2015-09-18
        • 2018-02-11
        • 2018-03-10
        相关资源
        最近更新 更多