В compiledSdkVersion
предыдущих ответах я вижу много различий , поэтому постараюсь немного уточнить здесь, следуя веб-странице Android.
A - Что говорит Android
Согласно https://developer.android.com/guide/topics/manifest/uses-sdk-element.html :
Выбор версии платформы и уровня API. При разработке приложения вам нужно будет выбрать версию платформы, для которой вы будете компилировать приложение. В общем случае вы должны скомпилировать свое приложение для самой низкой из возможных версий платформы, которую ваше приложение может поддерживать.
Итак, это будет правильный порядок в соответствии с Android:
compiledSdkVersion = minSdkVersion <= targetSdkVersion
Б - Что говорят другие
Некоторые люди предпочитают всегда использовать самый высокий скомпилированный SkdVersion. Это потому, что они будут полагаться на подсказки кода, чтобы проверить, используют ли они более новые функции API, чем minSdkVersion, таким образом либо изменяя код, чтобы не использовать их, либо проверяя версию пользовательского API во время выполнения, чтобы условно использовать их с откатами для более старых версий API.
Подсказки об устаревших видах использования также появляются в коде, давая вам знать, что что-то устарело на более новых уровнях API, так что вы можете реагировать соответствующим образом, если хотите.
Таким образом, это будет правильный порядок в соответствии с другими:
minSdkVersion <= targetSdkVersion <= compiledSdkVersion (highest possible)
Что делать?
Это зависит от вас и вашего приложения.
Если вы планируете предлагать различные функции API в соответствии с уровнем API пользователя во время выполнения, используйте опцию B. Вы получите подсказки о функциях, которые вы используете при кодировании. Просто убедитесь, что вы никогда не используете более новые функции API, чем minSdkVersion, без проверки уровня пользовательского API во время выполнения, в противном случае ваше приложение вылетит. Этот подход также имеет преимущество в изучении того, что нового и старого в процессе кодирования.
Если вы уже знаете, что нового или старого, и вы разрабатываете одноразовое приложение, которое наверняка никогда не будет обновлено, или вы уверены, что не собираетесь предлагать новые функции API в зависимости от условий, тогда используйте опцию A. Вы не будете беспокоиться с устаревшими подсказками, и вы никогда не сможете использовать новые функции API, даже если у вас есть соблазн сделать это.