It is a silly question, but I really don’t understand why. The code is finally compiled into bytecode and should be able to ran in all Dalvik VM. While the api changes, the bytecode that Dalvik VM understands should be more or less the same.
Share
Because your app does not bundle the Android framework. The framework code resides on the device.
That’s why to use certain newer API in older Android versions, you’ll have to include the support library in your APK.
The android.jar file is included in the build path for your code to compile but not exported to the APK. If it were to be exported, then every app on the device would have to bundle the Android framework, which would lead to unnecessary bloat, nothing to say about security implications.