Поддержка различных версий Android

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

Диаграмма используемых версий регулярно обновляется и показывает соотношение установленных версий Android. Диаграмма строится на основе статистики из Google Play Store. В целом, хорошей практикой является поддержка 90% активных устройств при нацеливании на последние версии.

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

Указание минимальной и целевой версии API

В файле AndroidManifest.xml описывается какие версии Android поддерживает приложение. Конкретно указываются атрибуты minSdkVersion и targetSdkVersion для элемента <uses-sdk>, которые указывают на минималную версию с которым ваше приложение совместимо и максимальную версию, на которой вы разрабатывали и тестировали приложение.

Например:

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

Получение версии Android во время выполнения приложения

Android хранит специальный код для каждой из версий в виде константы в классе Build.

Приведенный ниже код задает условие, чтобы функции, доступные в более высоких версиях API выполнялись, только если данный API доступен на устройстве.

Примечание:При обработке XML ресурсов, Android игнорирует атрибуты, которые не поддерживаются на текущем устройстве. Вы можете безопасно использовать XML атрибуты, доступные только в новых версиях не беспокоясь о том, что на старых устройствах это вызовет ошибку. Например, если вы установите targetSdkVersion=”11”, то панель инструментов автоматически добавится на устройствах с Android 3.0 и выше. Для добавления кнопок на панель вам необходимо указать атрибут android:showAsAction=”ifRoom” для пункта меню. Вы можете добавить данный атрибут в XML файл для всех версий устройств, поскольку в старых версиях атрибут showAsAction будет просто проигнорирован. Другими словами, вам не нужно создавать в этом случае отдельную версию в директории res/menu-v11.

Использование встроенных тем и стилей

Android содержит стандартные темы интерфейса, которые позволяют приложению выглядеть как одно целое с системой. Эти темы легко использовать в приложении, указав их в файле манифеста. При использовании встроенных тем, приложение будет «следить за модой» и выглядеть по новому с каждым новым выпуском Android.

Чтобы сделать явление похожим на диалоговое окно:

Чтобы применить вашу тему, описанную в файле /res/values/styles.xml:

Чтобы применить тему ко всему приложению целиком (ко всем явлениям), добавьте атрибут android:theme к элементу <application>

Подробнее о создании и использовании тем читайте в разделе Темы и стили руководства по API.

Добавить комментарий