Подтвердить что ты не робот

Android NDK: что я должен установить в Application.mk для APP_ABI?

Мне интересно, какие архитектуры я должен поместить в файл Application.mk моей Android-игры.

Я хочу поддерживать все возможные платформы, которые могут загружать игры в Google Play и других магазинах Android.

Я бы сказал, что я должен установить:

APP_ABI := armeabi x86 (as many x86 devices are coming soon as far as I know)

Но мне интересно, не следует ли устанавливать:

APP_ABI := armeabi armeabi-v7a x86

или

APP_ABI := all

Просьба пояснить.

4b9b3361

Ответ 1

Вы также можете указать mips, который будет включен, когда вы используете all.

armeabi код может работать на устройствах armeabi-v7a, но не наоборот. Поэтому вам не нужно armeabi-v7a, если у вас есть armeabi, но это позволит вам использовать аппаратные операции с плавающей запятой на некоторых устройствах.

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

Взгляните на docs/CPU-ARCH-ABIS.html в вашей установке NDK для получения дополнительной информации о различных архитектурах.

Ответ 2

Я бы рекомендовал установить, как минимум, armeabi-v7a и x86.

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

x86 охватывает всю текущую культуру устройств x86 (самой большой из которых является вкладка Galaxy Tab 3). Кроме того, Intel в течение этого года делает большой и очень общественный шаг в пользу доли рынка планшетов и, вероятно, будет более популярной в будущем.

Есть ряд эффектов этого. krsteve верен, это сделает ваши сборки немного медленнее (поскольку вы сейчас строите свою игру дважды, эффективно), и это сделает ваш APK больше (потому что вы вместе включаете двоичные файлы x86 и ARM вместе), однако, в большой схеме вещи, которые двоичные файлы, вероятно, будут затмеваны по размеру вашими активами, а если они не будут, то ваша игра вряд ли будет достаточно большой, чтобы в любом случае пересечь предел размера APK в Google Play.

Подводя итог:

  • Используйте armeabi-v7a и x86 или используйте все
  • Дополнительный размер apk будет либо неактуальны или затмеваны вашим размером вашего актива.
  • Время сборки будет увеличиваться, но это увеличивает количество устройств, которые вы можете поразить, поэтому что кажется справедливым компромиссом