Publishing multiple apks with different filters for mobile and tv
Я хочу опубликовать несколько apks: один для мобильных и других AndroidTv в одном приложении. Согласно публикации нескольких APK с разными фильтрами, в одном приложении есть только четыре отличительных фильтра:
В настоящее время Google Play позволяет публиковать несколько APK для одного и того же приложения, только если каждый APK предоставляет различные фильтры на основе следующих конфигураций:
Форматы сжатия текстур OpenGL
Размер экрана (и, необязательно, плотность экрана)
Уровень API
Архитектура процессора (ABI)
Все остальные фильтры по-прежнему работают так же, как обычно, но эти четыре являются единственными фильтрами, которые могут отличать один APK от другого в том же списке приложений в Google Play. Например, вы не можете публиковать несколько APK для одного и того же приложения, если они отличаются только в зависимости от того, есть ли на устройстве камера.
Я думал различать по уровням API и размеру экрана, но, похоже, есть совпадение:
Уровень API (MinSDK) для приложения androidtv поддерживается на уровне 21, а для мобильного приложения - на уровне 16. Таким образом, уровни API (21 и выше) перекрываются.
Размер экрана для Android-телевизора может совпадать с размером экрана планшета: например. Стандартные разрешения экрана телевизора высокой четкости - 720p, 1080i и 1080p. Также разрешение Samsung Nexus составляет 720х1280.
Боюсь, что если я опубликую androidtv apk с более высокой версией, он может заменить мобильное приложение на планшете с уровнем API> = 21 и размером экрана 720x1280, что также соответствует размеру макета приложения для телевизора.
Итак, как я могу четко различать эти два apks, используя разные фильтры в манифесте приложения?
ОБНОВИТЬ
Я уже добавил функцию отскока в манифесте приложения для Android
<manifest>
<uses-feature android:name="android.software.leanback"
android:required="true" />
...
</manifest>
Я вижу 42 поддерживаемых устройства для androidtv apk (не вижу, какие устройства) и 10791 для мобильного устройства apk, а всего 10832 устройства поддерживаются для всего приложения.
10791 + 42 = 10833
Таким образом, все еще существует вероятность 1 (10833 - 10832 = 1) перекрывающегося устройства, из-за которого отображается предупреждение.
предупреждение о перекрытии
Android APK
мобильный апк
всего устройства
Я не думаю, что перекрывающееся сообщение происходит из-за того, что androidtv apk является супер-набором мобильных apk, как упомянуто в одном из комментариев о количестве поддерживаемых устройств для androidtv, что намного меньше.
Поскольку существует только одно возможное перекрывающееся устройство, я опубликую его, но я бы хотел знать, какие устройства перекрываются для приема обоих apks.
1 ответ
На самом деле есть "функция", которая используется специально для Android TV. Вы можете просмотреть инструкции в документах. Но в основном вам просто нужно указать, что он использует leanback
особенность как ниже.
<manifest>
<uses-feature android:name="android.software.leanback"
android:required="true" />
...
</manifest>
Это гарантирует, что любое ТВ-устройство, работающее в режиме ожидания, получит ваш APK (вы можете установить required=false, если вы используете один APK). Я считаю, что все официальные телевизоры Android используют эту функцию. Вполне возможно, что откат может быть не на телевизионном устройстве, но в этом случае все их приложения будут отображаться как телевизионные приложения.
Есть несколько других функций, которые вы можете отключить / включить для Android TV, вы можете просмотреть контрольный список выпусков для получения дополнительной информации (в частности, в этом разделе).
Следует отметить, что есть некоторые перекрывающиеся устройства, которые могут удовлетворить как ваш мобильный телефон, так и APK. После разговора с представителем команды Play Console они порекомендовали способ обойти это:
Что касается сценария multi-apk, где у вас есть перекрывающиеся устройства - да, ваш Android TV APK всегда должен иметь более высокий код версии. Есть несколько вариантов, которые помогут решить эту проблему:
Вы можете вручную занести в черный список 2 перекрывающихся устройства. Это сразу решило бы проблему с перекрывающимися APK, однако, если в будущем будут выпущены новые устройства, которые имеют право на оба APK, вы столкнетесь с этой проблемой снова.
Используйте схему кода версии для вашего Android TV APK, которая значительно выше, чем для вашего мобильного устройства APK. Например, ваш APK для TV может иметь существующий код версии + 100000 или 100808, в то время как APK для вашего мобильного устройства остается на уровне 838. В этом сценарии вы можете опубликовать APK для мобильных устройств до кода версии 100808, не обновляя APK для Android TV с помощью каждый толчок Это также решит любые проблемы с альфа / бета-тестированием Android TV APK.
Его ответ также описан в разделе "Назначение кодов версий" этого документа.