gpt4 book ai didi

具有支持库的 Android 应用程序,其代码在较新的操作系统上运行时执行

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

即使这是一个普遍的问题,我也会举个例子来问它,这样会更容易理解。

场景:

  1. >我正在使用支持库 7 并使用操作栏功能。用户正在使用 Android 2.2 (API 8) 的设备上安装该应用程序。
  2. >我正在使用支持库 7 并使用操作栏功能。用户正在使用 Android 4.3 (API 18) 的设备上安装该应用程序。

很明显,在运行时场景 1 将运行受支持库的代码。但是情况 2 会发生什么?它会运行操作系统代码还是支持库代码。

我真的希望它能运行操作系统代码。

编辑
我知道 Java 的工作方式是通过在构建时确定的完全限定名称解析方法(如@adelphus 所写)。因此,支持库代码将运行。但如果我是实现支持库的人,我会做以下事情:

  1. >在运行时检查操作系统的版本
  2. >如果操作系统具有当前对象/方法,我将调用操作系统实现(实际上在这种情况下,支持库只是操作系统功能的包装器)。
  3. >如果这是一个旧操作系统,我会自己实现这个行为

那么,它是作为包装器作用于新版本,还是在这两种情况下都使用内部实现?

谢谢

最佳答案

它将运行支持库。

Java(以及 Android 应用程序)的工作方式是,方法由构建时确定的完全限定名称解析。由于您会根据支持库构建应用程序,因此无论它在哪个版本的 Android 上执行,都会调用它。

实际上,它应该对最终用户没有影响。支持库的目的是为不具备新版本功能的旧版 Android 提供相同的行为。如果最终结果相同,您为什么要关心它是否调用支持库?

关于具有支持库的 Android 应用程序,其代码在较新的操作系统上运行时执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19590532/

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