Google Play: Приложение с неколькими APK для различных нативных платформ

До недавнего времени у некоторых разработчиков приложений, содержащих нативный код, существовала проблема при добавлении поддержки х86-й архитектуры, после добавления еще одной библиотеки, собранной под х86, размер установочного пакета приложение мог существенно увеличиться. Прежде всего это касалось приложений, в которых размер библиотеки был сравним с размером остальной части пакета: ресурсов, графики, Java кода. Я работал с несколькими разработчиками ПО, которые не готовы были включать поддержку х86 как раз по этой причине. Тогда единственным решением было - создавать отдельное приложение, как, например, поступили с приложение Good for Enterprise, для х86-й платформы разработчики создали отдельное приложение GFE - Intel. При этом это было именно новое приложение, которое не унаследовало от оригинального продукта ни счетчика загрузок, ни рейтинга.

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

И вот, совсем недавно, компания Google объявила о новом способе фильтрации пакетов приложения - по аппаратной платформе. Что это означает для разработчика - теперь, если появилась необходимость добавить поддержку новой аппаратной платформы, но есть опасения, что размер приложения может значительно увеличится можно поступить просто, создать несколько APK пакетов под каждую платформу. Google Play их будет различать по именам подкаталогов внутри папки lib: armeabi, armeabi-v7a, x86 и, соответственно, будет предлагать к загрузке пакет, соответствующий аппаратной платформе пользователя.

Как это реализовывается на практике. Сначала необходимо собрать APK файлы под необходимые нативные платформы, причем один пакет, как и раньше, может содержать поддержку для двух и более платформ. Например отдельно собирается пакет под х86 и отдельно под ARM, ARMv7. При этом при создании новой сборки необходимо менять параметр Version Code в манифесте приложения, т.к. для приложения в Google Play не может существовать два APK файла, пусть даже и различающихся поддержкой нативныъ латформ, но с одной версией.

Пакеты созданы, подписаны, можно загружать. Заходим в панель управления, выбираем (или создаем) приложение, переключаемся на закладку "APK Files".

Загружаем наш первый пакет, порядок загрузки роли не играет. После загрузки. если все прошло успешно видим следующую информации о пакете.

Там же видим, что пакет (в данном случае) будет использован для загрузки на х86-е устройства.

Загружаем следующий пакет, так же видим информацию о нативных платформах.

В списке видим информацию о всех APK файлах приложения.

Как видите оба пакета активны и готовы к установке на устройства пользователей.

For more complete information about compiler optimizations, see our Optimization Notice.