I'll just add some relevant information:
Worth reading this about targetSdkVersion:
https://www.b4x.com/android/forum/pages/results/?query=targetsdkversion
There are two types of behavioral changes:
- Changes that depend on targetSdkVersion.
- Changes that don't depend targetSdkVersion.
The first type of changes are backward compatible and the second types aren't. Most of the non-backward compatible changes are related to security / privacy features.
At some point, Google decided that Google Play will not accept apps with old targetSdkVersions. From that point it became more difficult to maintain existing apps.