Уровень api 28 что это
Android, SDK и API. Что это и зачем?
Пытаюсь разобраться в теме. Вот как я нашел-вижу (поправляйте, если что не так понял / прочитал). Буду показывать и задавать вопросы на основе своего приложения.
Через некоторое время выходит телефон с API 30. приложение будет работать на нем?
3 ответа 3
targetSDKversion указывает «совместимость» с определенным апи. Данный параметр оказывает такое влияние, что указав его, к примеру = 1, вы получите интерфейс (вид виджетов) первого андроида, даже если запустите такое приложение на последней версии или указав значение меньше 23, ваша программа не будет запрашивать runtime permision, на устройствах с апи больше 23 (будет работать в режиме эмуляции таких разрешений). Частично эффект такой, что программа будет считать, что она выполняется в указанном данным параметром апи, даже если на реальном устройстве другое апи (но здесь есть нюансы, как всегда). Параметр рекомендуется указывать по последнему релизному апи (сегодня это 28) во избежании трудностей, непонятного поведения и тех самых нюансов.
compileSDKversion указывает с помощью какого апи будет компилироваться ваша программа (из какого апи брать классы для компиляции кода). Указав данный параметр, например, равным 23, классы и методы более поздних апи будут недоступны (впрочем, они все равно будут недоступны по ограничению minSDKversion). Данный параметр так же рекомендуется указывать по последней релизной версии апи (сегодня это 28). Так же существует такая связь, что мажорная версия библиотеки поддержки не может быть больше значения compileSDKversion (если вы хотите использовать библиотеки версии 28.х.х, то данный параметр не может быть меньше 28-ми)
Указав эти три параметра какими то цифрами, ваше приложение будет запускаться на всех устройствах, от указанного в minSDKversion до текущего актуального, то есть указывая compileSDKversion = 26 ваше приложение будет работать и на апи 30, когда оно выйдет (ограничить устройства «сверху» можно только параметорм maxSDKversion, но он обычно не указывается вовсе)
разрядность процессора в «классическом» андроид-приложении не учитывается от слова совсем. Данный параметр будет актуален, когда вы решите использовать нативный С/С++ код в вашем приложении и нужно будет определяться с подключаемыми компиляторами С (для каждой архитектуры процессоров он свой)
Уровень api 28 что это
API Level это просто целое число, которое однозначно идентифицирует ревизию рабочего окружения программных библиотек (framework API revision), которая предоставляется версией платформы (операционной системой) Android.
Платформа Android предоставляет framework API, которое могут использовать приложения для взаимодействия с нижележащей системой Android. Framework API состоит из:
• Базового набора пакетов и классов.
• Набора элементов XML и атрибутов для декларирования в файле манифеста (manifest file).
• Набора элементов XML и атрибутов для декларирования и доступа к ресурсам.
• Набора намерений (Intents).
• Набора разрешений доступа к ресурсам устройства и системы, которые приложение может запросить, а также защита ограничения доступа, встроенная в систему.
Каждая последующая версия платформы Android может включать в себя обновления предоставляемого framework API приложения Android.
Обновления framework API разработаны так, чтобы новый API оставался совместимым со всеми более старыми версиями API. Т. е. большинство изменений в API добавочные, и представляют новый функционал, или функционал, заменяющий старый. Поскольку части API были обновлены, то старые заменяемые части объявляются устаревшими и нежелательными для использования (deprecated), но эти старые части все же не удаляются, чтобы существующие приложения могли продолжать их использовать. В очень редких случаях части API могут быть модифицированы или удалены, но только в том случае, если это необходимо для обеспечения устойчивости API и безопасности приложения или системы. Все другие части API от старых ревизий переносятся в новые ревизии платформы без модификации.
Framework API, который поставляет платформа Android, указывается в виде целого числа, и этот идентификатор в виде целого числа называется «API Level». Каждая версия платформы Android поддерживает точно один API Level, несмотря на неявную поддержку всех более старых версий API Level (вплоть до API Level 1). Первоначальный релиз платформы Android предоставлял API Level 1 и с каждым новым релизом номер API Level последовательно увеличивался на единицу.
В таблице ниже указаны поддерживаемые API Level для каждой платформы Android. Для информации по относительным количествам устройств, которые работают на каждой версии, см. страничку [2].
Версия платформы | API Level | VERSION_CODE |
Android 4.4 | 19 | KITKAT |
Android 4.3 | 18 | JELLY_BEAN_MR2 |
Android 4.2, 4.2.2 | 17 | JELLY_BEAN_MR1 |
Android 4.1, 4.1.1 | 16 | JELLY_BEAN |
Android 4.0.3, 4.0.4 | 15 | ICE_CREAM_SANDWICH_MR1 |
Android 4.0, 4.0.1, 4.0.2 | 14 | ICE_CREAM_SANDWICH |
Android 3.2 | 13 | HONEYCOMB_MR2 |
Android 3.1.x | 12 | HONEYCOMB_MR1 |
Android 3.0.x | 11 | HONEYCOMB |
Android 2.3.3, 2.3.4 | 10 | GINGERBREAD_MR1 |
Android 2.3, 2.3.1, 2.3.2 | 9 | GINGERBREAD |
Android 2.2.x | 8 | FROYO |
Android 2.1.x | 7 | ECLAIR_MR1 |
Android 2.0.1 | 6 | ECLAIR_0_1 |
Android 2.0 | 5 | ECLAIR |
Android 1.6 | 4 | DONUT |
Android 1.5 | 3 | CUPCAKE |
Android 1.1 | 2 | BASE_1_1 |
Android 1.0 | 1 | BASE |
[Как используется API Level в Android]
Идентификатор API Level играет ключевую роль в предоставлении информации пользователям и разработчикам.
• API Level позволяет платформе (операционной системе) Android описать максимальную ревизию framework API, которую платформа поддерживает.
• API Level позволяет приложениям описать требуемую для них ревизию framework API.
• API Level позволяет системе обрабатывать инсталляции приложений на устройстве пользователя и определять, какие их них являются несовместимыми с текущей версией системы.
Подробнее про использовании API Level в приложении и системе Android см. [3].
[Совместимость приложений с новыми версиями операционной системы Android]
Поскольку большинство изменений framework API в операционной системе являются добавочными, то приложения Android, разработанные с указанной версией API (как указано по API Level) будут совместимы в будущем (forward-compatible) с последующими версиями платформ Android и более высокими уровнями API level. Приложения должны иметь возможность работать на всех последующих версиях платформы Android, за исключением изолированных случаев, когда приложение использует часть API, которая по некоторым причинам было удалена в поздней ревизии API.
Forward-совместимость важна, потому что множество устройств, работающих на Android, получают обновления системы на лету, по каналу Wi-Fi (over-the-air, OTA). Пользователь может установить Ваше приложение и успешно его использовать, и позднее получить OTA-обновление на новую версию платформы Android. Как только обновление установлено, Ваше приложение будет работать уже в новой версии рабочего окружения, на новом API (run-time version environment), и от этого нового API и возможностей системы будет зависеть работа Вашего приложения.
В некоторых случаях изменения в API могут влиять на Ваше приложение, когда оно работает в новом окружении. По этой причине Вам как разработчику важно понимать, как будет выглядеть приложение и как оно будет себя вести в новом системном окружении. Чтобы помочь Вам протестировать приложение в различных версиях платформ Android, пакет Android SDK, который Вы можете загрузить, включает многие платформы и версии API. Каждая платформа включает совместимый образ системы, который Вы можете запустить в AVD, для тестирования Вашего приложения.
Каждая новая версия платформы Android может включать новый framework API, который дает приложениям доступ к возможностям новой платформы, или заменяет существующие части API. Новый API доступен приложениями, когда они работают на новой платформе и, как уже упоминалось, также будет доступен и в более новых версиях платформы, как указано по API Level. С другой стороны, потому что более ранние версии платформы не включают в себя новый API, приложения, использующие новый API, не смогут работать на более старых платформах.
[Выбор версии платформы и API Level]
Вы можете задать минимально возможную версию платформы, компилируя приложения на низкую целевую версию платформы. После того, как определите самую низкую версию, Вам нужно создать AVD с соответствующей версией платформы (и API Level) и полностью протестировать Ваше приложение на этой платформе. Убедитесь, что установлен декларированный атрибут android:minSdkVersion в файле манифеста приложения, и его установленное значение соответствует API Level версии платформы.
[Декларирование минимальной версии API Level]
Если Вы компилируете приложение, которое использует API или системные возможности, представленные в последней версии платформы, Вы должны установить атрибут android:minSdkVersion в значение API Level этой последней версии платформы. Это обеспечит, что приложение будет установлено только на тех устройствах, которые будут совместимы с нужной версией платформы Android. В свою очередь это гарантирует, что Ваше приложение может функционировать должным образом на их устройствах.
Если Ваше приложение использует API, представленные в последней версии платформы, но не будет декларировать атрибут android:minSdkVersion, то оно будет правильно работать на устройствах, где работает последняя версия платформы, но не на устройствах, где работают более ранние версии платформы. В последнем случае приложения будут завершаться по ошибке во время выполнения, когда попытается использовать API, которое не существует в предыдущих версиях.
[Тестирование на верхних уровнях API Level]
После того, как скомпилировали приложение, Вы должны убедиться, что протестировали его на платформе, указанной в атрибуте android:minSdkVersion приложения. Чтобы сделать это, создайте AVD, которая использует версию платформы, требуемую приложением. Дополнительно, чтобы убедиться в forward-совместимости, Вы должны запустить и протестировать приложение на всех платформах, которые используют более высокий уровень API Level, чем использует Ваше приложение.
Чтобы запустить приложение на другой версии платформы в эмуляторе, создайте отдельное виртуальное устройство AVD для каждой версии платформы, которую Вы хотели бы протестировать. Подробнее про AVD см. [5]. Если для тестирования Вы используете физическое устройство, убедитесь, что знаете API Level платформы, на которой запускаете приложение.
[Использование Provisional API Level]
В некоторых случаях может быть доступен «Ранний просмотр (Early Look)» платформы Android SDK. Это означает разработку для платформы, которая пока официально не появилась на рынке. Чтобы начать разработку на платформе, API которой еще не получила финальную версию, то не указывается API Level платформы. Вместо этого Вы должны использовать предварительный (provisional) API Level в манифесте приложения, когда делаете сборку приложения на указанной платформе. Provisional API Level не является числом, это строка, соответствующая кодовому имени еще не выпущенной версии платформы. Provisional API Level будет указан в примечаниях к релизу для ранних релизов SDK (Early Look SDK release), и эта строка чувствительна к регистру символов.
Использование provisional API Level разработано для того, чтобы защитить разработчиков и пользователей устройств от нежелательной публикации или инсталляции приложений, основанных на Early Look framework API, потому что на финальном образе системы приложение может работать не так, как ожидалось.
Provisional API Level будет допустим только при использовании Early Look SDK, и его можно использовать для запуска приложений только в эмуляторе. Приложения, использующие provisional API Level, никогда не могут быть установлены на устройство Android. После финального релиза платформы Вы должны заменить любые экземпляры provisional API Level в Вашем файле манифеста приложения на действительный идентификатор API Level в виде целого числа.
[Фильтрация документации на основе API Level]
Страницы документации на сайте разработчиков Android предоставляют фильтр «Filter by API Level» в правом верхнем углу на каждой страничке. Вы можете использовать этот контрол для того, чтобы просмотреть документацию только для частей API, которые действительно доступны для Вашего приложения, основываясь на API Level, который указан в android:minSdkVersion файла манифеста.
Чтобы использовать фильтрацию, поставьте галочку в чекбоксе для разрешения фильтрации, сразу ниже бокса поиска на странице. Затем установите контрол «Filter by API Level» в тот же API Level, который используется в Вашем приложении. Обратите внимание, что API, представленный в последующих версиях API Level нарисованы серым, и это содержимое будет замаскировано, потому что не будет доступно в Вашем приложении.
Фильтрация по API Level в документации не предоставляет просмотр, что нового представлено в каждом API Level. Фильтрация просто предоставляет метод для просмотра всего API, связанного с указанным API Level, когда исключаются элементы API, представленные в последующих API Levels.
Если Вы решили, что не хотите фильтровать документацию API, то просто отключите опцию, используя флажок. По умолчанию запрещена фильтрация по API Level, так что Вы можете увидеть полный full framework API, не обращая внимания на API Level.
Также имейте в виду, что документация по отдельным элементам API указывает API Level для каждого представленного элемента. API Level для пакетов и классов указывается как «Since » в правом верхнем углу содержимого каждой страницы документации. API Level для членов класса указан в соответствующем заголовочном файле.
Общие сведения об уровнях API Android
Xamarin. Android имеет несколько параметров уровня API Android, которые определяют совместимость приложения с несколькими версиями Android. В этом руководство объясняется, что означают эти параметры, как их настроить и как они влияют на приложение во время выполнения.
Быстрый запуск
Xamarin. Android предоставляет три параметра проекта уровня API Android:
Целевая платформа — указывает, какая платформа будет использоваться при сборке приложения. Этот уровень API используется на этапе компиляции Xamarin. Android.
Прежде чем можно будет настроить уровень API для проекта, необходимо установить компоненты платформы SDK для этого уровня API. Дополнительные сведения о загрузке и установке компонентов пакет SDK для Android см. в разделе пакет SDK для Android Setup.
Начиная с августа 2021, консоль Google Play требует, чтобы новые приложения были нацелены на уровень API 30 (Android 11,0) или более поздней версии. Существующие приложения должны быть ориентированы на уровень API 30 или выше, начиная с ноября 2021. Дополнительные сведения см. в разделе требования к целевому уровню API для консоли воспроизведения раздела «Создание и настройка приложения» в документации по консоли воспроизведения.
Как правило, для всех трех уровней API Xamarin. Android задано одно и то же значение. На странице приложение задайте для параметра компилировать с помощью версии Android (Целевая платформа) последнюю стабильную версию API (или, как минимум, до версии Android, которая содержит все необходимые компоненты). На следующем снимке экрана для целевой платформы задано значение Android 7,1 (API уровня 25-Nougat):
Если вы хотите обеспечить обратную совместимость с более ранней версией Android, задайте для минимальной версии Android целевую версию Android, которая будет поддерживаться вашим приложением. (Обратите внимание, что уровень API 14 — это минимальный уровень API, необходимый для Google Play служб и поддержки Firebase.) В следующем примере конфигурация поддерживает версии Android из API уровня 14 через уровень API 25.
Как правило, для всех трех уровней API Xamarin. Android задано одно и то же значение. Задайте для целевой платформы последнюю стабильную версию API (или, как минимум, до версии Android, которая содержит все необходимые компоненты). чтобы задать целевую платформу, перейдите к разделу сборка общие в параметрах Project. На следующем снимке экрана Целевая платформа настроена для использования последней установленной платформы (8,0):
Если вы хотите обеспечить обратную совместимость с более ранней версией Android, измените минимальную версию Android на самую старую версию Android, которую должно поддерживать ваше приложение. Обратите внимание, что уровень API 14 — это минимальный уровень API, необходимый для Google Play служб и поддержки Firebase. Например, следующая конфигурация поддерживает версии Android как раньше, чем API уровня 14:
Если приложение поддерживает несколько версий Android, в коде должны содержаться проверки среды выполнения, чтобы обеспечить работу приложения с минимальной версией Android (Дополнительные сведения см. в разделе проверки среды выполнения для версий Android ниже). Если вы используете или создаете библиотеку, ознакомьтесь со статьей уровни API и библиотеки ниже, чтобы получить рекомендации по настройке параметров уровня API для библиотек.
Версии Android и уровни API
По мере развития платформы Android и выпуска новых версий Android каждой версии Android назначается уникальный целочисленный идентификатор, называемый уровнем API. Таким образом, каждая версия Android соответствует одному уровню API Android. Так как пользователи устанавливают приложения на более ранних версий, а также в самых последних версиях Android, приложения для работы в реальном времени для Android должны быть разработаны с несколькими уровнями API Android.
Версии Android
Каждый выпуск Android проходит несколько имен:
Имя кода Android может соответствовать нескольким версиям и уровням API (как показано в таблице ниже), но каждая версия Android соответствует ровно одному уровню API.
Имя | Версия | Уровень API | Выпущено | Код версии сборки |
---|---|---|---|---|
Q | 10.0 | 29 | Август 2020 г. | BuildVersionCodes.Q |
Pie | 9.0 | 28 | Авг 2018 | BuildVersionCodes.P |
Oreo | 8.1 | 27 | Dec 2017 | BuildVersionCodes.OMr1 |
Oreo | 8.0 | 26 | Авг 2017 | BuildVersionCodes.O |
Nougat | 7.1 | 25 | Dec 2016 | BuildVersionCodes.NMr1 |
Nougat | 7.0 | 24 | Авг 2016 | BuildVersionCodes.N |
Marshmallow | 6.0 | 23 | Авг 2015 | BuildVersionCodes.M |
Lollipop | 5.1 | 22 | Мар 2015 | BuildVersionCodes.LollipopMr1 |
Lollipop | 5.0 | 21 | Ноя 2014 | BuildVersionCodes.Lollipop |
KitKat Watch | 4.4 w | 20 | Июнь 2014 | BuildVersionCodes.KitKatWatch |
KitKat | 4.4. | 19 | Окт 2013 | BuildVersionCodes.KitKat |
Jelly Bean | 4.3 | 18 | Июл 2013 | BuildVersionCodes.JellyBeanMr2 |
Jelly Bean | 4.2 — 4.2.2 | 17 | 2012 ноября | BuildVersionCodes.JellyBeanMr1 |
Jelly Bean | 4.1 — 4.1.1 | 16 | Июнь 2012 | BuildVersionCodes.JellyBean |
Южные Сандвичевы | 4.0.3 — 4.0.4 | 15 | Dec 2011 | BuildVersionCodes.IceCreamSandwichMr1 |
Южные Сандвичевы | 4.0 — 4.0.2 | 14 | Октябрь 2011 | BuildVersionCodes.IceCreamSandwich |
хонэйкомб | 3.2 | 13 | Июнь 2011 | BuildVersionCodes.HoneyCombMr2 |
хонэйкомб | 3.1. x | 12 | Май 2011 | BuildVersionCodes.HoneyCombMr1 |
хонэйкомб | 3.0. x | 11 | Фев 2011 | BuildVersionCodes.HoneyComb |
Gingerbread | 2.3.3 — 2.3.4 | 10 | Фев 2011 | BuildVersionCodes.GingerBreadMr1 |
Gingerbread | 2.3 — 2.3.2 | 9 | 2010 ноября | BuildVersionCodes.GingerBread |
фройо | 2.2. x | 8 | Июнь 2010 | BuildVersionCodes.Froyo |
еклаир | 2.1.x | 7 | янв 2010 | BuildVersionCodes.EclairMr1 |
еклаир | 2.0.1 | 6 | Dec 2009 | BuildVersionCodes.Eclair01 |
еклаир | 2.0 | 5 | 2009 ноября | BuildVersionCodes.Eclair |
кольцевой график; | 1.6 | 4 | Sep 2009 | BuildVersionCodes.Donut |
купкаке | 1.5 | 3 | Май 2009 | BuildVersionCodes.Cupcake |
Основной | 1,1 | 2 | Фев 2009 | BuildVersionCodes.Base11 |
Основной | 1.0 | 1 | Октябрь 2008 | BuildVersionCodes.Base |
Как показано в этой таблице, новые версии Android выводятся часто, а иногда — несколько версий в год. В результате среда устройств Android, на которых может работать ваше приложение, включает в себя множество более старых и более новых версий Android. Как вы можете гарантировать, что приложение будет выполняться единообразно и надежно на разных версиях Android? Уровни API для Android могут помочь в управлении этой проблемой.
Уровни API Android
Каждое устройство Android выполняется только на одном уровне API — этот уровень API гарантированно уникален для каждой версии платформы Android. Уровень API точно определяет версию набора API, к которому может обращаться приложение. Он определяет сочетание элементов манифеста, разрешений и т. д., которые вы задаете в качестве разработчика. Система Android на уровнях API позволяет Android определить, совместимо ли приложение с образом системы Android перед установкой приложения на устройстве.
При сборке приложения он содержит следующие сведения об уровне API:
Целевой уровень API Android, на котором построено приложение для запуска.
Минимальный уровень API Android, который должен иметь устройство Android для запуска приложения.
Эти параметры используются, чтобы убедиться, что функции, необходимые для корректного запуска приложения, доступны на устройстве Android во время установки. В противном случае приложение блокируется на этом устройстве. Например, если уровень API устройства Android ниже минимального уровня API, указанного для приложения, устройство Android не позволит пользователю установить приложение.
Project параметров уровня API
В следующих разделах объясняется, как с помощью диспетчера пакетов SDK подготовить среду разработки для уровней API, которые вы хотите ориентировать, а затем подробно объяснить, как настроить целевую платформу, минимальную версию Androidи целевые параметры версии Android в Xamarin. Android.
Платформы пакет SDK для Android
Прежде чем можно будет выбрать целевой или минимальный уровень API в Xamarin. Android, необходимо установить пакет SDK для Android версию платформы, соответствующую этому уровню API. Диапазон доступных вариантов для целевой платформы, минимальной версии Android и целевой версии Android ограничен диапазоном установленных версий пакет SDK для Android. С помощью диспетчера пакетов SDK можно проверить, установлены ли требуемые версии пакет SDK для Android, и можно использовать ее для добавления новых уровней API, необходимых для приложения. Если вы не знакомы с установкой уровней API, см. раздел пакет SDK для Android Setup.
Целевая платформа (также известная как ) — это конкретная версия платформы Android (уровень API), для которой компилируется приложение во время сборки. Этот параметр указывает, какие API- интерфейсы будет использовать приложение при его запуске, но не влияет на то, какие API фактически доступны для приложения при его установке. В результате изменение параметра целевой платформы не приводит к изменению поведения среды выполнения.
Рекомендуется всегда компилироваться с последней доступной версией целевой платформы. Это позволяет получить полезные предупреждения для всех устаревших интерфейсов API, которые могут быть вызваны кодом. Использование последней версии целевой платформы особенно важно при использовании последних версий библиотеки поддержки — каждая библиотека предполагает, что приложение должно быть скомпилировано на основе минимального уровня API библиотеки поддержки или выше.
чтобы получить доступ к параметру целевой платформы в Visual Studio, откройте свойства проекта в обозреватель решений и выберите страницу приложения :
Минимальная версия Android
Минимальная версия Android (также известная как ) — это самая старая версия ОС Android (то есть самый низкий уровень API), которая может установить и запустить приложение. По умолчанию приложение может быть установлено только на устройствах, соответствующих параметру целевой платформы или выше. Если минимальная версия Android меньше, чем Целевая платформа, приложение также может работать в более ранних версиях Android. Например, если задать в качестве целевой платформы android 7,1 (Nougat) и установить для минимальной версии Android значение Android 4.0.3 (Ice-Южные Сандвичевы), приложение можно установить на любой платформе с уровня API 15 на уровень API 25 включительно.
Несмотря на то, что приложение может успешно создаваться и устанавливаться на этом диапазоне платформ, это не гарантирует, что он будет успешно запущен на всех этих платформах. Например, если приложение установлено в android 5,0 (без описания операций) и код вызывает API, доступный только в Android 7,1 (Nougat) и более поздней версии, приложение получит ошибку во время выполнения и, возможно, приведет к сбою. Поэтому код должен гарантировать – во время выполнения — он вызывает только те интерфейсы API, которые поддерживаются устройством Android, на котором оно выполняется. Иными словами, код должен включать явные проверки среды выполнения, чтобы гарантировать, что приложение использует более новые API только на тех устройствах, которые достаточно актуальны для их поддержки. Проверка среды выполнения для версий Androidдалее в этом руководство объясняет, как добавить эти проверки среды выполнения в код.
Если выбрать параметр использовать компиляцию с использованием версии пакета SDK, минимальная версия Android будет совпадать с целевой платформой.
Целевая версия Android
Целевая версия Android (также известная как ) — это уровень API устройства Android, на котором должно выполняться приложение. Android использует этот параметр, чтобы определить, следует ли включить любое поведение совместимости. Это гарантирует, что приложение продолжит работать так, как вы планируете. Android использует параметр целевой версии Android приложения, чтобы определить, какие изменения поведения можно применить к приложению без его нарушения (это то, как Android обеспечивает прямую совместимость).
Целевая платформа и Целевая версия Android с очень похожими именами не совпадают. Параметр целевой платформы передает сведения о целевом уровне API в Xamarin. Android для использования во время компиляции, а Целевая версия Android передает сведения о ЦЕЛЕВом интерфейсе API в Android для использования во время выполнения (если приложение установлено и выполняется на устройстве).
Рекомендуется явно указать в качестве целевой версии Android последнюю версию Android, используемую для тестирования приложения. В идеале его следует устанавливать на последнюю версию пакет SDK для Android — это позволяет использовать новые интерфейсы API до начала работы с изменениями поведения. Для большинства разработчиков не рекомендуется задавать в качестве целевой версии Android Использование функции Compile с использованием версии пакета SDK.
В общем случае целевая версия Android должна быть ограничена минимальной версией Android и целевой платформой. Это означает следующее:
Минимальная версия Android = Целевая версия Android Android.OS.Build.VERSION.SdkInt чтобы определить уровень API платформы, в которой работает приложение. Если уровень API меньше, чем минимальная версия Android, поддерживающая API, которую нужно вызвать, то код должен найти способ правильной работы без выполнения этого вызова API.
Как правило, проверка версии сборки помогает вашему коду принимать во время выполнения действия по сравнению со старым способом. Пример:
Нет быстрого и простого правила, объясняющих, как сократить или изменить функциональность приложения при запуске в более старых версиях Android, в которых отсутствует один или несколько API-интерфейсов. В некоторых случаях (например, в приведенном SetCategory выше примере) достаточно опустить вызов API, если он недоступен. Однако в других случаях может потребоваться реализовать альтернативную функциональность, когда Android.OS.Build.VERSION.SdkInt обнаруживается меньше уровня API, необходимого приложению для обеспечения его оптимального взаимодействия.
Уровни API и библиотеки
При создании проекта библиотеки Xamarin. Android (например, библиотеки классов или библиотеки привязок) можно настроить только параметр целевой платформы — минимальная версия Android и параметры целевой версии Android недоступны. Это связано с тем, что отсутствует страница манифеста Android :
Параметры минимальной версии Android и целевой версии Android недоступны, так как итоговая библиотека не является автономным приложением — библиотека может быть запущена в любой версии Android в зависимости от приложения, с которым оно упаковано. Можно указать способ компиляциибиблиотеки, но нельзя предсказать, на каком уровне API платформы будет выполняться библиотека. Учитывая это, при использовании или создании библиотек следует соблюдать следующие рекомендации.
При создании библиотеки Android — если вы создаете библиотеку Android для использования другими приложениями, убедитесь, что для параметра целевой платформы задан минимальный уровень API, необходимый для компиляции.
Эти рекомендации рекомендуется использовать для предотвращения ситуации, когда библиотека пытается вызвать API, который недоступен во время выполнения (что может привести к сбою приложения). Если вы разработчик библиотеки, вам следует ограничить использование вызовов API небольшим и хорошо установленным подмножеством общей контактной зоны API. Это гарантирует, что библиотеку можно будет использовать в более широком диапазоне версий Android.