Целевой SDK для Android против Build SDK

#android

#Android

Вопрос:

В каких сценариях будут отличаться целевая версия SDK и версия Build SDK («Compile with» на экране ниже)?

Настройки версии SDK

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

Ответ №1:

В каких сценариях будут отличаться целевая версия SDK и версия Build SDK («Compile with» на экране ниже)?

Когда разработчик устанавливает для них разные значения.

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

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

Однако разработчики вполне могут захотеть поднять build SDK до более нового уровня API, оставив целевой SDK в покое. Целевая версия SDK контролирует некоторые элементы совместимости с пересылкой и, следовательно, может изменить то, что разработчик пока не готов решить.

Например, предположим, что разработчик создал приложение в середине 2013 года и на тот момент установил для SDK для сборки и целевого SDK значение 18. Затем, в начале этого года, разработчик начал работать с Android 4.4 (уровень API 19). Разработчик хотел добавить в свое приложение возможность печати. Самый простой способ поддержки печати уровня API 19 — установить для build SDK значение 19, чтобы она могла напрямую ссылаться на соответствующие классы. Однако KitKat также изменил поведение классических AlarmManager методов, таких как set() и setRepeating() , и она решает, что пока не готова иметь с этим дело. Поскольку эти изменения привязаны к целевой версии SDK, она пока оставляет свою целевую версию SDK на 18, отметив, что в будущем будет работать над поддержкой нового неточного характера AlarmManager сигналов тревоги. Следовательно, на данный момент ее SDK для сборки равен 19, а ее целевой SDK равен 18.

Ответ №2:

Целевой SDK: Самый высокий уровень API, на котором приложение было протестировано. Приложение должно быть совместимо со всеми устройствами с этим уровнем API или более поздним API.

Скомпилировать с помощью: уровень API с приложением был скомпилирован. По умолчанию это максимально возможный уровень (теперь это должен быть Android 4.4.4 kit kat).