【问题标题】:About new methods and deprecated methods in Android APIs关于 Android API 中的新方法和不推荐使用的方法
【发布时间】:2015-08-08 21:10:38
【问题描述】:

我是安卓开发新手。

我正在用过时的书学习,所以我对新方法感到很困惑。

我将制作一个简单轻便的应用程序,即使在旧设备上也可以运行。

所以当我创建一个新的 android 项目时,我将“Minimum required SDK”设置为 API 8,将“Target SDK”设置为 API 22,将“编译方式”设置为 API 22。

这个设置是否意味着应用可以在 API 8 的设备上运行,即使我使用 API 22 的方法?

由于不推荐使用的方法,我问这个问题。

我使用已弃用的应用程序开发了近一半的应用程序。

我可以将它们全部替换为新的吗?

或者我必须使用不同的方法准备多个代码来支持不同的平台版本?

(旧版本的弃用方法,新版本的新方法?)

【问题讨论】:

    标签: java android deprecated


    【解决方案1】:

    这个设置是否意味着应用可以在 API 8 的设备上运行,即使我使用 API 22 的方法?

    是的。 min sdk version 用于限制运行 API 级别

    由于不推荐使用的方法,我问这个问题。

    由于折旧的方法,我到目前为止还没有遇到任何问题。但是,我建议使用 min sdk 版本为 14,因为 Google 已经引入了许多 UI 调整和增强功能。如果你做一些市场调查,使用 minsdk version = 14 将覆盖大约 85% 的 android 市场。

    我可以将它们全部替换为新的吗?

    是的,你可以。

    或者我是否必须使用不同的方法准备多个代码以支持不同的平台版本? (旧版本弃用的方法,新版本的新方法?)

    你也可以这样做。旧版本不支持有片段。片段极大地改善了平板电脑的用户体验。同样,棒棒糖设备的材料设计也很棒。您可以选择 API 级别特定实现的几个示例。但是,最好切换到 api level >= 14

    【讨论】:

    • 嗯,.. 我用更新的方法替换了一个,然后出现一个错误标记,上面写着“调用需要 API 级别 21(当前最小值为 14)”。所以我用 if 条件语句再次添加了旧行,但仍然......我现在没有旧设备,所以我不确定这是否应该可以。我可以忽略错误信息吗?
    【解决方案2】:

    为了消除你的困惑:

    所需的最低 SDK

    您要支持的最低 Android 版本。为了瞄准最大的市场份额,我推荐 API 级别 14 或更高。

    • 通常,数字越小,您定位的 Android 设备就越多。

    目标 SDK

    基本上,所有这些都说明了您使用什么 SDK 测试了您的应用。例如,如果那是 KitKat,那么您可以输入数字 19,即 KitKat 的 API 编号。您可以找到 API 编号列表here。随着您使用越来越高的 Android 版本测试您的应用,您可以增加该数量。

    • 将 Target SDK 设置为更大的数字意味着您可以针对更多的设备。

    编译方式

    指定您要编译应用的 Android API 编号。

    • 默认情况下,这是 SDK 管理器中可用的最新 Android 版本。应设置得较高以改善用户体验。

    不推荐使用的方法

    关于不推荐使用的方法的问题:您可以继续使用它们。它们已被弃用,取而代之的是在功能方面可能更好也可能不会更好的更新替代方案。

    【讨论】:

    • 哇,我不知道这么多人使用低于 4.x 的设备。谢谢
    【解决方案3】:

    不推荐使用的方法仍然有效,不推荐使用的关键字只是告诉您有一种更新的首选方法。 Android 非常擅长向后兼容,因此为 API 级别 8 编译的东西应该主要适用于较新的设备。

    【讨论】:

      【解决方案4】:

      您将不得不在版本上使用多个代码分支。您可以像这样在运行时检查您的系统版本:

      private void setUpActionBar() {
          // Make sure we're running on Honeycomb or higher to use ActionBar APIs
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
              ActionBar actionBar = getActionBar();
              actionBar.setDisplayHomeAsUpEnabled(true);
          }
      }
      

      API 8 真的很老了。看看version pie chart

      您可以在Android developers website上找到更多信息

      【讨论】:

      • 您发布了相同的链接哈哈。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      相关资源
      最近更新 更多