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?
Yes, this will work.
The reason for this is that
android.os.Build.VERSION_CODES.HONEYCOMB is an
android.os.Build.VERSION_CODES.HONEYCOMB is just an alias (the
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.
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.