gpt4 book ai didi

android - 编译SDK会影响Android函数的返回值吗?

转载 作者:太空狗 更新时间:2023-10-29 14:06:01 24 4
gpt4 key购买 nike

假设我有一个设备 A,我的应用程序被编译了两次:第一次我设置了 compileSDK=8,第二次我设置了 compileSDK=22。当我现在从 Android 系统调用函数时,系统是否可能返回两个不同的值或对象?我认为这是不可能的,因为这取决于设备上运行的系统,并且针对编译 SDK 的编译过程只会断言它有效——但我的一位同事表示,这可能会在此处产生不同的输出。 (很抱歉这里没有任何例子..)

最佳答案

编译版本只是告诉您的编译器哪些 android 类和函数可用。例如如果您尝试使用 v11 中引入的方法并且您的编译版本是 8,那么您将得到一个编译错误。

我想如果有一个在 8 和 11 之间变化的常量值,它可能会以不同的方式编译为您的应用程序,但这不太可能,因为 android 开发人员会知道会导致的问题,并且会破坏他们的原则forward compatibility :

Because almost all changes to the framework API are additive, an Android application developed using any given version of the API (as specified by its API Level) is forward-compatible with later versions of the Android platform and higher API levels.

即便如此,来自here的建议是:

In general, you should compile your application against the lowest possible version of the platform that your application can support.

即编译版本=最小sdk版本

(请注意,一个异常(exception)情况是当您需要来自更高版本 API 的 API 功能时,但您打算通过检查 Build.VERSION 安全地回退。在这种情况下,您需要比最低版本更高的编译版本)。

要解决您的陈述:

I think this is not possible as this depends on the system running

重要的是要注意 API 高于 targetSdkVersion 的设备将尝试模拟到较低的 target API level :

As Android evolves with each new version, some behaviors and even appearances might change. However, if the API level of the platform is higher than the version declared by your app's targetSdkVersion, the system may enable compatibility behaviors to ensure that your app continues to work the way you expect.

关于android - 编译SDK会影响Android函数的返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295029/

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