×

Поддержка приложений для Android

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Как поддерживают приложения для разных Android API? Ведут отдельную кодовую базу под разные платформы и генерируют разные apk или в одном и том же коде проверяют if’ами версию API и делают ветвления? Есть ещё варианты? Хотелось бы узнать best practice, так сказать.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Зачастую окно поддерживамых версий АПИ сводят к минимуму. А то что у пользователя версия андроида устарела то не ваша забота — пусть покупают поновее телефон )

android:minSdkVersion="14″ ,
Остальное — if + OOP

А можно ли как-то в том же Android Studio помечать код специфичный для отдельного API, а потом в конфигах Gradle указать, чтобы генерировалось несколько apk, каждый из которых игнорирует лишний для него код (на основе меток)?

Можно, но только не так как вы себе представляете-)
Копайте в сторону gradle и productFlavors.

Спасибо, это подходит.

А если юзер обновит прошивку на более поздний АРI, то арк уже не подойдет.

А смысл? Экономите 50кб кода но вместо одного приложения получаете зоопарк, который нужно как-то поддерживать?

чаще всего можно использовать AppCompat’ы различные.
посмотрите вот сюда
developer.android.com/...upport-library/index.html

к примеру, Вам требуется дернуть какую-то функцию, которая есть в новом апи, но нет в старом. В таком случае Вы включаете support library в билд и вызываете необходимое через нее.

Иногда все же бывает, что это способ не работает, тогда просто ставите target sdk и min sdk в билд скрипте и в рантайме проверяете какой код использовать.
Отдельные codebase не делают, и делать не рекомендуется. Как, впрочем, и собирать отдельные apk, если речь только о разных sdk.

В общем-то, попробовал собирать разные apk, потом забил на это и сделал проверку в рантайме, как большинство здесь пишут.

всё правильно сделали.
Ну и рекомендую все же обратить внимание на support-libraries

Підписатись на коментарі