The compiled version simply tells your compiler which Android classes and functions are available. for example, if you try to use the method introduced in v11, and your compilation version is 8, you will get a compilation error.
I believe that if there was a constant value that changed between 8 and 11, it could have compiled differently for your application, but this is unlikely because Android developers will know the problems that may cause, and this will violate their principle advanced compatibility :
Since almost all changes to the API are additive, an Android application developed using any particular version of the API (as defined by its API level) is compatible with later versions of the Android platform and higher API levels.
However, the tip here is :
In general, you should compile your application with the lowest possible version of the platform that your application can support.
i.e. compile version = min sdk version
(Note that one exception would be when you need the API functions from a later API, but you intend to Build.VERSION checking out Build.VERSION . In this case, you need a higher compilation version than the minimum).
To refer to your application:
I think this is not possible, since it depends on the operation of the system
It is important to note that devices with an API higher than targetSdkVersion will try to emulate the lower level of the target API :
As Android evolves with each new version, some changes in behavior and even appearance may change. However, if the API level on the platform is higher than the version claimed by your targetSdkVersion application, the system can enable compatibility behavior to ensure that your application continues to work as you expect.