Хорошо, я знаю, что такое основа в реальной жизни. Я видел некоторые фреймворки, которые содержат некоторые файлы заголовков и двоичные файлы. Это оно? Существует ли в инфраструктуре OS X специальные функции, отличные от того, что вы являетесь папкой с заголовками и библиотеками, которые вы связываете с вашим приложением?
Что такое Framework в Mac OS X? (*.framework папки)
Ответ 1
Информация о структуре
Из Соединение с разработчиками Apple: определение платформы:
Структура - это пакет (структурированный каталог), который содержит динамическую общую библиотеку вместе с связанными ресурсами, такими как файлы nib, файлы изображений и файлы заголовков. Когда вы разрабатываете приложение, ваш проект привязывается к одной или нескольким фреймворкам. Например, проекты приложений iPhone по умолчанию привязаны к фреймворкам Foundation, UIKit и Core Graphics. Ваш код обращается к возможностям инфраструктуры через интерфейс прикладного программирования (API), который публикуется каркасом через его файлы заголовков. Поскольку библиотека динамически распределена, несколько приложений могут одновременно обращаться к коду инфраструктуры и ресурсам. Система загружает код и ресурсы фреймворка в память по мере необходимости и разделяет одну копию ресурса среди всех приложений.
Из Руководство по программированию Framework: что такое Frameworks?:
Рамки предлагают следующие преимущества перед статическими библиотеками и другими типами динамических разделяемых библиотек:
- Структура структур, связанных, но разделенных, ресурсов вместе. Эта группировка упрощает установку, удаление и поиск этих ресурсов.
- Рамки могут включать более широкий набор типов ресурсов, чем библиотеки. Например, структура может включать любые соответствующие файлы заголовков и документацию. В один и тот же комплект можно включить несколько версий фреймворка. Это позволяет быть обратно совместимым со старыми программами.
- Только одна копия ресурсов только для чтения основывается физически в памяти в любой момент времени, независимо от того, сколько процессов использует эти ресурсы. Это совместное использование ресурсов уменьшает объем памяти системы и помогает повысить производительность.
Связанный вопрос SO
Возможно, вы захотите посмотреть SO вопрос 1444543: Различия между Framework и не-Framework-сборками Python в Mac OS X.
Ответ 2
Это, цитируя "Обзор технологии Mac OS X":
framework Тип пакета, который упаковывает динамическую общую библиотеку с ресурсами, которые требуется библиотеке, включая файлы заголовков и справочную документацию.
Таким образом, ".framework" в основном эквивалент ".app", только для динамической общей библиотеки вместо исполняемого файла.
Ответ 3
В Mac OS X фреймворк представляет собой библиотеку, дополненную версиями, в комплекте. Как вы заметили, некоторые фреймворки довольно просты и содержат только заголовочные файлы и сама библиотека для одной версии. Другие фреймворки могут иметь несколько версий, несколько файлов библиотеки, подкадры (в этом случае родительская структура также называется срединной структурой) и файлы ресурсов, такие как изображения или локализованные строки.
Дополнительная информация доступна в Руководство по программированию платформ.