Do Android version code constants work with older versions?

白昼怎懂夜的黑 提交于 2019-11-28 03:50:08

问题


Can I use Android version code constants with older Android runtimes? For instance,

if (android.os.Build.VERSION.SDK_INT >= 
   android.os.Build.VERSION_CODES.HONEYCOMB) ...

would this run without crash on old devices running Android operating system before HONEYCOMB when this constant has been first defined? Assuming we compile it with recent enough SDK?


回答1:


Yes, this will work.

The reason for this is that android.os.Build.VERSION_CODES.HONEYCOMB is an int. android.os.Build.VERSION_CODES.HONEYCOMB is just an alias (the int equals 11) for 11, as can be seen in an IDE such as Eclipse:

int android.os.Build.VERSION_CODES.HONEYCOMB = 11 [0xb]

So this will work as it'll just check if the android.os.Build.VERSION.SDK_INT is greater than or equal to 11.




回答2:


Yes you can. It works because the int values are static final. The compiler will inline them into the bytecode at compile time. No symbol import is required at runtime.



来源:https://stackoverflow.com/questions/21837356/do-android-version-code-constants-work-with-older-versions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!