Каковы преимущества/последствия компиляции архитектуры armv7?

При компиляции приложений iPhone существует настройка для "Оптимизированной" архитектуры (только armv7) и стандартной архитектуры armv6/armv7.

Каковы преимущества/последствия компиляции архитектуры armv7?

Ответ 1

Маленький исполняемый файл - это более быстрая загрузка из магазина приложений. Тем не менее, вы отключили не-armv7-устройства.

Ответ 2

Если ваша программа не требует OpenGLES 2.0 (которая поддерживается только на поддерживающих armv7 устройствах), вы должны скомпилировать стандартный жирный (armv6/armv7) двоичный файл. Жирный бинарный файл представляет собой в основном два (или более) бинарника Mach-O, склеенных вместе, с одной главной страницей в начале. Затраты на производительность незначительны: динамический загрузчик должен выполнить дополнительную страницу для страницы заголовка, чтобы определить, какую архитектуру загружать.

Построение для armv7 будет по существу вдвое уменьшать размер вашего исполняемого файла, хотя маловероятно, чтобы ваш исполняемый файл был настолько большим, чтобы начать с него. Вы можете использовать команды "размер" и "otool" на хосте, чтобы получить дополнительную информацию о различных разделах в бинарном приложении, например. "size -arch armv6 build/Release/MyApp.app/MyApp" получит размер различных разделов в версии двоичного файла armv6, "size -arch armv7 build/Release/MyApp.app/MyApp" получит размер различные разделы в версии armv7 двоичного кода, и, очевидно, "ls -l build/Release/MyApp.app/MyApp" получит фактический размер файла двоичного файла.