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

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

Инструментальная панель Версии платформы регулярно обновляется, чтобы показать распределение активных устройств, работающих на каждой версии Android, в зависимости от количества устройств, которые посещают Google Play Store. Как правило, это хорошая практика, поддержать около 90% активных устройств, в то же время ориентируя приложение на последнюю версию.

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

[wpanchor id=»1″]

Укажите минимальный и целевой уровень API


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

Например:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

 

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

[wpanchor id=»2″]

 

Проверьте версию системы во время выполнения


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

private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

 

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

[wpanchor id=»3″]

Используйте стили платформы и темы


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

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

<activity android:theme="@android:style/Theme.Dialog">

 

Чтобы деятельность имела прозрачный фон:

<activity android:theme="@android:style/Theme.Translucent">

 

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

<activity android:theme="@style/CustomTheme">

 

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

<application android:theme="@style/CustomTheme">

 

Для более подробной информации о создании и использовании тем, читайте Стили и темы.

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