When compiling a Java application with a Java 7 compiler, you can’t
use it with a Java 6 interpreter. The interpreter will tell you, that
it can’t interpret the produced byte-code, even thought you’re not
using any Java 7 language features. If you want to compile with the
latest compiler but make your byte-code runnable on older JVM
instances, you’ll need to tell the compiler to do so (using the
-target-flag).
In Android, you can declare what platform-versions you support in your
manifest-file, using the -element and it’s
android:minSdkVersion and android:targetSdkVersion-attributes. The
difference between those “targeting mechanics” is, that Android does
not care against which platform version the application was compiled.
If you declare your application to be compatible with API Level 4,
Android will happily install it, even if you compiled it against
Android 4.1 (API Level 16).