Android Market несколько APK … Как насчет разных архитектур процессора?

Поэтому я подумал, что теперь могу загружать свое приложение, используя разные скомпилированные библиотеки NDK для целенаправленных архитектур процессора, но похоже, что это невозможно.

Кто-нибудь знает, как загрузить в Android Market различные APK, каждый из которых содержит библиотеки, скомпилированные специально для разных архитектур процессора?

Я не пробовал это и выглядел как талия пространства, но можем ли мы включить несколько скомпилированных библиотек в один APK?

Обновить:
По-видимому, когда пользователь устанавливает apk, неподдерживаемые библиотеки не будут установлены на устройстве. Это хорошо, но пользователю по-прежнему приходится загружать весь apk, теряя пропускную способность.

Solutions Collecting From Web of "Android Market несколько APK … Как насчет разных архитектур процессора?"

Ну, наконец, Google Play позволяет иметь таргетинг на несколько APK !

«Мы добавили новые функции для приложений, которые используют поддержку нескольких APK. Теперь вы можете настроить таргетинг каждого APK на определенную собственную платформу».

Если у вас нет куча кода для вашего приложения, я бы предложил просто поместить собственный код для трех архитектур, поддерживаемых андроидами, и момента, armv5, armv7 и x86. Он будет умножать размер части кода вашего apk, но 3 * (небольшое число) все еще небольшое число. Вы можете сделать это, изменив файл jni / Application.mk или создав его, если у вас его еще нет, и добавьте строку:

APP_ABI := armeabi armeabi-v7a x86 

Это будет скомпилировано для всех трех.

Обратите внимание, что есть ошибка с текущим ndk (ndk r6), который пытается связать код x86 с кодом руки. Это исправлено, если вы получаете проект AOSP, source.android.com, или можете просто подождать, пока google-релизы r6b, которые, скорее всего, будут исправлены. В противном случае, если вы не хотите этого делать, вы можете просто отказаться от части x86 линии на данный момент и освободить приложение без кода x86 в нем и нажать обновление, когда выйдет новый ndk. Я не знаю многих популярных устройств, которые все еще используют инструкции x86.

Пожалуйста, см. Поддержка нескольких APK в документации на Android. Это детализирует некоторые особенности выпуска нескольких APK одного и того же продукта / приложения.

Что касается особенностей NDK, и, как уже упоминалось, вы можете использовать несколько платформ / ABI в значении APP_ABI вашего Android.mk.

В новой консоли разработчика Play Store, если вы хотите добавить несколько APK, вам нужно будет использовать одно и то же имя пакета и тот же ключ ключей, но другой код версии. Вы публикуете приложение, а затем сначала загружаете Apk, например, mobile_release и развертывание для производства, после того как вы загрузите еще один apk, вы должны выбрать опцию RETAIN в предыдущем APK также с текущим APK.

  android { // To create different apk per abi splits { abi { enable true reset() include 'armeabi', 'armeabi-v7a', 'x86' universalApk true } } } import com.android.build.OutputFile // Map for the version code ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'x86': 3] android.applicationVariants.all { variant -> // assign different version code for each output variant.outputs.each { output -> int abiVersionCode = project.ext.versionCodes.get(output.getFilter(OutputFile.ABI)) ?: 0 output.versionCodeOverride = (abiVersionCode * 1000) + android.defaultConfig.versionCode } } 

Вы можете объявить supports-gl-texture в вашем AndroidManifest.xml для каждого отдельно скомпилированного (и повторно упакованного) приложения. Это обеспечит фильтрацию рынка, поэтому один пользователь увидит только одну версию вашего приложения.