【发布时间】:2020-11-06 02:26:22
【问题描述】:
我正在开发一个包含大量类的大型 android 项目。到目前为止,我们正在使用 Android 3.2 进行编译并支持 Android 2.3。
现在我正在测试使用 Android 5.1.1 进行编译,但仍然支持 Android 2.3。令我惊讶的是,现在很多代码都被弃用了……(getWith(), getDrawable(), setBackgroundDrawable(), HttpRequest, ActivityGroup,等等……)。那些弃用的函数不会给出编译错误,但会给出弃用的警告。
我知道如果 SDK_INT 低于 XX,我可以复制代码并对已弃用的方法进行特殊调用,如果 SDK_INT 比 XX 新,我可以调用新方法,但这是一个巨大的补丁,需要大量重复代码在大量类和包中的许多功能中,因此,如果可能的话,我们宁愿等到不需要支持最旧版本的android。这意味着继续使用已弃用的方法,直到例如我们只需要从 4.4 提供支持,这意味着将需要更少的重复代码和函数。
问题是:如果我用 Android 5.1.1 编译但仍然使用那些已弃用的功能,这个庞大的项目将继续在所有设备上运行(从 2.3 到 5.1.1)?现在它正在使用 Android 3.2 进行编译。
我了解已弃用意味着它们可能会在平台的未来版本中被删除,因此您应该开始考虑在您的代码中替换它们的使用,但如果它仍然受支持并且不会产生编译错误,它会像现在一样正常工作。这就是我对弃用的理解。 对吗?
谢谢。
【问题讨论】:
-
简短的回答是NO。较长的是有些代码有,有些没有
-
如果它没有给出编译错误为什么它不应该工作?
-
我了解已弃用意味着它们可能会在平台的未来版本中被删除,因此您应该开始考虑在您的代码中替换它们的使用,但如果它仍然受支持并且不提供编译错误,它将完美运行。这是我对弃用的理解。这是正确的? ——
-
@DerGol...lum developer.android.com/about/dashboards/index.html 不要迷惑。 2.2怎么活,2.3怎么死?
-
抱歉,误读了 2.3.x (with x > 2) 还活着。 API 9 已死。 Android 2.2 仍然完美活着
标签: android deprecated deprecation-warning