Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Разные APK для разных API

С выходом API 23 (Android 6) появилась необходимость билдить разные АПК для всех версий до 23, и для 23 лично. Причиной этому послужили изменения в работе с Bluetooth. Теперь для того, чтобы обнаруживать ближайшие устройства требуется доп. permission. Поэтому решено выкакить очередное обновление в виде двух разных АПК - для 23 с этим пермишеном, для всех остальных - без него.
Возникают вопросы:
Как произойдет обновление, если выкатить 2 разных версии? Корректно ли обновится приложение на API <23 и на API 23? ̶2̶.̶ ̶Ч̶т̶о̶ ̶п̶р̶о̶и̶з̶о̶й̶д̶е̶т̶ ̶в̶ ̶с̶л̶у̶ч̶а̶е̶,̶ ̶е̶с̶л̶и̶ ̶у̶с̶т̶р̶о̶й̶с̶т̶в̶о̶ ̶о̶б̶н̶о̶в̶и̶т̶с̶я̶ ̶д̶о̶ ̶A̶P̶I̶ ̶2̶3̶?̶
If you publish different APKs for different versions of Android (for different API levels), then when a user's device receives a system update that qualifies them for a different APK you've published, Google Play updates the user's application to the APK designed for the higher version of Android. Any system data associated with the application is retained (the same as with normal application updates when using a single APK).
Исходя из вышенаписанного, при обновлении версии Android, если есть более подходящий APK, то он будет установлен, как обычное обновление.


Ответ

Нужно сделать 2 APK файла с разными versionCode. Старше versionCode должен быть у APK, предназначенного для более новых версий Android, в данном случае для 23+. Младшую версию ненужно ограничивать максимальной версией Android (maxSdkVersion). Первым нужно заливать версию для всех телефонов. После нее - для API 23+. Таким образом для всех телефонов будет доступна более "старая" версия, а для API 23+ более "новая". В ситуации, когда для определенного дивайса доступны две версии сразу, будет установлена более "новая"

Комментариев нет:

Отправить комментарий