2010-05-30 3 views
14

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

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

ответ

13

Меньший исполняемый файл - это более быстрая загрузка из магазина приложений. Однако вы вырезаете non-armv7 devices.

+0

из текущего состава, какие устройства не являются armv7? – coneybeare

+4

Возможно iPhone, iPhone 3G, iPod Touch 1st и 2nd gen. –

+0

@Alex Для людей, у которых есть iPhone 3G, что происходит, когда приложение находится в магазине приложений? Они не могут загрузить приложение или приложение рушится, когда они запускают его? – CedricSoubrie

19

Если ваша программа не требует 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» получит фактический размер файла двоичного файла.

Смежные вопросы