关于 Android API 中的新方法和弃用方法

About new methods and deprecated methods in Android APIs

我是 android 开发新手。

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

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

因此,当我创建一个新的 android 项目时,我将 "Minimum Required SDK" 设置为 API 8,将 "Target SDK" 设置为 API 22 和 "Compile With" 到 API 22.

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

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

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

我可以把它们都换成新的吗?

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

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

已弃用的方法仍然有效,已弃用的关键字只是告诉您有更新的首选方法。 Android 非常擅长向后兼容,因此针对 API 级别 8 编译的内容应该主要适用于较新的设备。

Does this setting mean the app can work on the devices of API 8, even though I use the methods of API 22?

是的。 min sdk version 用于限制设备 运行 OS with API level < minsdk 使用 app.您的应用不会显示在这些设备的 Play 商店中。

I'm asking this question due to deprecated methods.

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

Can I just replace them all with new ones?

是的,你可以。

Or do I have to prepare multiple codes using different methods to support different platform versions? (deprecated methods for older versions, and new ones for newer versions?)

你也可以。旧版本不支持有碎片。 Fragments 极大地改善了平板电脑的用户体验。同样,material Lollypop 设备的设计很棒。您可以选择 API 级别特定实现的例子不多。但是,最好切换为 api level >= 14

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

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);
    }
}

API8真的老了。看看 version pie chart

您可以在 Android developers website

上找到更多相关信息

为您解惑:

SDK 最低要求

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

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

目标SDK

基本上,这就是说您使用什么 SDK 测试了您的应用程序。例如,如果那是 KitKat,那么您可以写入数字 19,即 API KitKat 的编号。您可以找到 API 个数字 here 的列表。当您使用越来越高版本的 Android 测试您的应用程序时,您可以增加该数字。

  • 将 Target SDK 设置为更高的数字意味着您可以定位更多的设备。

编译方式

指定要编译应用程序的 API 数量 Android。

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

弃用的方法

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