正如this question所指出的以及我所做的一些测试,android.os.Build.VERSION_CODES
适用于比您正在使用的VERSION_CODE
平台版本更早的平台版本。
E.g。这样:
android.os.Build.VERSION_CODES.HONEYCOMB
也适用于Gingerbread设备,虽然Honecomb是在 Gingerbread之后发布的。
这似乎只有在您的目标SDK晚于您使用的VERSION_CODE时才会起作用,这使我得知版本代码以某种方式从目标SDK编译到APK中。
现在,我的问题是:
这是如何工作的?根据链接问题的接受答案,这通过int别名起作用,但Java似乎不支持别名。
答案 0 :(得分:9)
答案 1 :(得分:5)
VERSION_CODES
都是静态最终整数,这意味着在构建应用时,所有变量都只是用数字替换。基本上,如果您在编译后查看应用程序的字节码,您可能会看到对VERSION_CODES
的任何引用仅替换为每个版本代码变量所代表的实际int
。