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 .

Intereting Posts
Запись аудиовыхода Android Сделать SurfaceView прозрачным без setZOrderOnTop (true) Android-новичок: понимание действий MotionEvent Загрузка с камеры и галереи не работает должным образом во всех версиях Поле не вводится в проект Android Dagger Сохранение и чтение растровых изображений / изображений из внутренней памяти в Android Сервер не поддерживает набор шифрования по умолчанию для Android 5.0 Команда ADB перечисляет только количество запущенных приложений на устройстве Как обрабатывать исключения в map () в Observable в RxJava WebViewCoreThread, используемый admob AdView, использует высокий CPU даже в том случае, если родительская активность приостановлена ​​ Как работает цветной эмулятор Apple, и есть ли версия для Android? GetPackageManager () .getInstalledPackages (PackageManager.GET_ACTIVITIES) возвращает значение null Добавление ресурса с использованием Кордовы Рисовать растровые изображения из ресурсов над другим Эллипсирование отдельных строк SpannableString в TextView