Новые функции на старых Android-устройствах (библиотеки совместимости)

Применение новых функций на старых Android-устройствахПроблема

Вы хотите использовать новые функции Android, но ваше приложение правильно работает только в старых версиях.

Решение

Используйте библиотеки совместимости — для этого они и предназначены.

Обсуждение

Android — замечательная система для пользователей, в которой с каждой версией добавляются новые функции. Но есть проблема: более старые устройства не поддерживают последнюю версию Android. Производители низкоуровневых (дешевых) ус­тройств, возможно, никогда не выпустят обновлений. На более высоком уровне (так называемых флагманских устройствах) пользователи обычно получают обновления от производителя каждые два или три года. Но производители (и сотовые операто­ры), подобно производителям автомобилей, которые каждый год выпускают новые модели, чтобы соблазнять владельцев покупкой обновлений, которые им на самом деле не нужны, ожидают, что пользователи будут часто приобретать обновления.

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

Решением проблемы являются библиотеки совместимости. Они предоставляют заменяющие версии общих классов (например, Activity), которые используют толь­ко функции, найденные в старой версии Android, но обеспечивают функциональ­ность более новых версий.

Теперь вы можете подумать, что старые версии быстро исчезают, но сайт  показывает, что это справедливо только с определенной точки зрения (рис. 1.).

Рыночные доли версий платформы Android

Рис. 1. Рыночные доли версий платформы Android (по состоянию на август 2016 г.)

Обратите внимание, что доля версии Froyo API 8 составляет 0,1%, что являет­ся порогом для включения. Таким образом, вы ожидаете, что она исчезнет в лю­бой день, но на самом деле ее доля нескольких месяцев назад составляла 0,1%. Есть приблизительно 1,5 миллиарда устройств с платформой Android. Таким образом, 0,1% от этого количества означает, что все еще есть полтора миллиона активных пользователей устройств Froyo. У операционной системы Gingerbread есть еще 25 миллионов активных устройств. Если вы готовы пренебречь 26 миллионами потен­циальных заказчиков, ладно. Но даже тогда все не так просто — есть функции, кото­рые были добавлены в версиях Android 4, 5, 6 и т.д. Как вы отследите, какие функции и в каких версиях существуют? По большей части вам нужно не это. Правда, только если вы используете библиотеки совместимости!

Если вы создаете новый проект с помощью среды Android Studio, то по умолчанию он будет использовать библиотеку совместимости. Если вы рабо­таете над проектом, у которого нет поддержки совместимости, вы легко до­бавите ее. Один из способов — добавить библиотеку вручную, отредактиро­вав файл сборки, чтобы включить библиотеку с координатами  com.android.support:design:24.1.1 (как подключить библиотеку см . эту заметку). Добавьте ее в файл pom.xml для кар­каса Maven или app/build.gradle для платформы Android Studio (возмож­но, вам придется после этого обновить или синхронизировать проект). В среде Android Studio вы также можете выбрать модуль арр, выбрать команду Module PropertiesDependencies (Свойства модуляЗависимости), щелкнуть на кнопке Add и выбрать последнюю версию библиотеки совместимости.

Затем самое важное изменение — убедиться, что ваши активности (все, которые потребуют новейших средств) основаны на активности AppCompatActivity, а не на просто  Activity:

public class MainActivity extends AppCompatActivity {
    ...
}

 

Вас заинтересует / Intresting for you:

Версии платформы Android
Версии платформы Android 1359 просмотров Илья Дергунов Sun, 04 Nov 2018, 14:44:59
О платформе Android
О платформе Android 2233 просмотров Илья Дергунов Mon, 29 Oct 2018, 17:07:02
Понимание архитектуры приложен...
Понимание архитектуры приложен... 1421 просмотров Илья Дергунов Mon, 29 Oct 2018, 17:31:25
Источники примеров кода для со...
Источники примеров кода для со... 1379 просмотров Валерий Павлюков Sat, 24 Nov 2018, 12:19:04
Войдите чтобы комментировать