#android
#Android
Вопрос:
В каких сценариях будут отличаться целевая версия SDK и версия Build SDK («Compile with» на экране ниже)?
Я пытаюсь понять, почему целевой 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).