Что такое фреймворк в Mac OS X?(* .рамные папки) - PullRequest
18 голосов
/ 06 января 2011

Хорошо, я в основном знаю, что такое фреймворк в реальной жизни.Я видел некоторые фреймворки, которые содержат некоторые заголовочные файлы и двоичный файл.Это оно?Есть ли в платформе OS X специальные функции, помимо того, что они представляют собой папку с заголовками и библиотеками, на которые вы ссылаетесь в приложении?

Ответы [ 3 ]

22 голосов
/ 06 января 2011

Рамочная информация

Из Apple Developer Connection: определение платформы :

Каркас - это пакет (структурированный каталог), который содержит динамическую общую библиотеку вместе со связанными ресурсами, такими как файлы пера, файлы изображений и файлы заголовков. Когда вы разрабатываете приложение, ваш проект ссылается на одну или несколько платформ. Например, проекты приложений iPhone по умолчанию связаны с платформами Foundation, UIKit и Core Graphics. Ваш код получает доступ к возможностям платформы через интерфейс прикладного программирования (API), который публикуется платформой через заголовочные файлы. Поскольку библиотека динамически используется совместно, несколько приложений могут одновременно обращаться к коду и ресурсам инфраструктуры. Система загружает код и ресурсы инфраструктуры в память по мере необходимости и разделяет одну копию ресурса среди всех приложений.

alt text

Из Framework Programming Guide: Что такое Frameworks? :

Frameworks предлагает следующие преимущества по сравнению со статически связанными библиотеками и другими типами динамических разделяемых библиотек:

  • Рамочные группы, связанные, но отдельные ресурсы вместе. Эта группировка упрощает установку, удаление и обнаружение этих ресурсов.
  • Фреймворки могут включать в себя более широкий спектр типов ресурсов, чем библиотеки. Например, инфраструктура может включать любые соответствующие заголовочные файлы и документацию. Несколько версий платформы могут быть включены в один пакет. Это делает возможным обратную совместимость со старыми программами.
  • В любой момент времени в памяти физически находится только одна копия ресурсов только для чтения, независимо от того, сколько процессов используют эти ресурсы. Такое совместное использование ресурсов уменьшает объем используемой памяти и помогает повысить производительность.

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

Возможно, вы захотите взглянуть на SO вопрос 1444543: Различия между сборкой Python для Framework и не-Framework на Mac OS X .

3 голосов
/ 06 января 2011

В Mac OS X фреймворк - это версионная, связанная библиотека.Как вы заметили, некоторые фреймворки довольно просты и содержат только заголовочные файлы и саму библиотеку для одной версии.Другие инфраструктуры могут иметь несколько версий, несколько библиотечных файлов, подкадров (в этом случае родительский каркас также называется зонтичным каркасом) и файлы ресурсов, такие как изображения или локализованные строки.

Дополнительная информация доступна в Framework Programming Guide .

3 голосов
/ 06 января 2011

Это, цитируя «Обзор технологии Mac OS X»:

framework Тип пакета, который упаковывает динамическую совместно используемую библиотеку с ресурсами, которые требуются библиотеке, включая заголовочные файлы и справочную документацию.

Таким образом, ".framework" в основном эквивалентен ".app", только для динамической совместно используемой библиотеки вместо исполняемого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...