Intereting Posts
Привязка данных Android, значение атрибута «android: text», связанное с типом элемента «TextView», не должно содержать символ «<» AnimationSet setInterpolator () не работает вэнь с использованием 9oldandroids lib Не удается разрешить класс привязки данных Android Разность зависимостей в Gradle между компиляцией, проектом apk, проектом компиляции, предоставленным, проектом реализации Поддержка NDK – экспериментальные функции, и все варианты использования еще не подтверждены ошибкой в ​​Android Studio? Попытка инициализировать аппаратное ускорение вне основного потока, прерывание Итерация объекта массива JSON Как я могу почерпнуть и распаковать строку с помощью GZIPOutputStream, совместимого с .Net? Диалоговое окно оповещений с цифровым полем EditText Как получить ABI (Application Binary Interface) в android Совет по партнерским программам для музыки для Android-приложений Где дополнительные параметры командной строки в Android Studio версии 1.5.1 для эмулятора OnConfigurationchanged не вызывается через jellybean (4.2.1) Динамическое использование setImageDrawable для установки изображения в ImageView Как отлаживать приложение с Android App Widget?

Android: есть ли преимущество настройки compileSdkVersion для более низкой версии, чем последняя api?

Есть ли какое-либо преимущество в том, что параметр compileSdkVersion в манифесте меньше, чем последний номер сборки api, или вы всегда должны устанавливать его в последнюю сборку api?

android { compileSdkVersion 22 

Когда я говорю о преимуществах, я имею в виду производительность приложения, время компиляции приложения, размер apk и т. Д. Я говорю, конечно, о случаях, когда вы можете установить его ниже – то есть приложение, которое не работает Использовать общие переходы или любые особенности леденцов.

Нет, нет.

Кроме того, благодаря commonsware для указания этого, но есть разница между compileSdkVersion и targetSdkVersion. См. Предыдущий ответ на Stackoverflow.

Просто не устанавливайте его в последнюю версию M Preview прямо сейчас. Не то чтобы вы это сделали, я просто говорю это для новых разработчиков Android, которые читают это. Android M – это предварительная версия, и она еще не предназначена для приложений.

При этом, если вы просто редактируете код приложения, которое кто-то написал пару лет назад, и ваш босс говорит вам не тратить больше времени, чем на небольшие изменения, которые он хочет, чтобы вы сделали, тогда вы Может также придерживаться этого плана и только скомпилировать исходный api, который изначально использовался.

Кроме того, есть случай проверок безопасности и сертификации. Если у правительственного учреждения или охранной компании не было времени для проверки последней версии ОС или sdk, вы можете застрять в компиляции только до последней, прошедшей сертификацию.

На самом деле это не вносит никаких изменений. Но я бы предложил вам использовать последнюю, чтобы скомпилировать ее, чтобы быть уверенным.

Во-первых, существует разница между targetSdkVersion и compileSdkVersion .

compileSdkVersion

Программа compileSdkVersion предоставляет вашему приложению доступ к новейшим API, стилям и темам. У вас будет ошибка компиляции, если вы попытаетесь использовать API, представленный в более поздней версии Android, чем compileSdkVersion .

targetSdkVersion

targetSdkVersion указывает, к какой версии API было проверено ваше приложение.

Ориентация на более старую версию включает поведение совместимости, чтобы убедиться, что приложение продолжает работать одинаково.

Обновление targetSdkVersion для более новой версии может привести к тонким изменениям поведения, поэтому убедитесь, что вы знаете новые API и правильно протестируете приложение, если вы это сделаете. Например: вызов AlarmManager.set() когда таргетинг API <19 запланирует будильник в точное время, так как раньше он работал. Вызов одного и того же метода при таргетинге на API 19+ позволит системе настроить время доставки сигнала тревоги на несколько минут, чтобы сэкономить время автономной работы, и если вам нужно точное время, вам нужно вызвать новый метод AlarmManager.setExact() .

compileSdkVersion всегда должен быть равен или больше, чем targetSdkVersion .