fbpx
维基百科

捆绑 (macOS)

NeXTSTEPMac OS X和GNUStep中,捆绑(Bundle)是一个目录(也可能是一个文件),它允许相关资源(例如可执行代码,本地化资源,图片等)被组合在一起,在某些情况下可以当作一个单独文件看待。在Mac中,该特性在Mac OS 9中引入,被称为“包”(package),它类似于RISC OS和ROX Desktop中应用程序目录的特性,以及使用SpatialBundle技术的UbuntuDebianLinux发行版

应用程序,应用程序框架和插件通常以捆绑的形式将其内部文件组织在一起,同时,文档也可以构成框架。在NeXT的Foundation工具包和Cocoa的Foundation框架中,可以使用NSBundle类操作捆绑;在Core Foundation中,则使用CFBundle系列函数进行操作。

捆绑通常包含一个可执行代码文件和一些资源文件,例如NIB文件,图像,声音,本地化字符串,配置文件(通常是属性列表文件)和其它媒体。在其它系统上,例如Microsoft Windows,这些资源通常在编译时就被直接包含在了可执行文件中。Mac OS XNeXTSTEP中引入了捆绑的概念,用以代替早期Mac OS中以资源分支存储附加元数据的技术。多数类型的捆绑在使用时与普通文件类似,从而减少了其内部文件意外更改或丢失的风险。同时,捆绑的另一个意义在于可以使用文件夹简化组织资源的方式,避免使用资源分支导致的额外的复杂性。

捆绑的统一类型标识符是com.apple.bundle,而包的则是com.apple.package

Mac OS X中的应用程序捆绑

应用程序捆绑通常为软件包,以单一文件的形式出现在用户面前。这个“文件”实际上是一个以.app为扩展名的文件夹。辅助点按这个包,然后选择“显示包内容”,即可以文件夹的形式打开该捆绑并查看、修改其内容。对于应用程序,捆绑中的唯一一个一级子目录通常是Contents。在Contents中,通常有另外一些目录,包括可执行文件目录(在Mac中为MacOS,GNUStep中则为应用程序的名字),资源目录(Resources)等。资源目录中通常包含了程序所需的本地化资源,包括字符串文件(.strings文件),nib文件等等。

其它常见的子目录包括PluginsFrameworksShared FrameworksFrameworks包括了该程序使用的框架,程序运行时会首先查找此处的框架而不是优先使用系统提供的,可以在一定程度上避免类似DLL地狱的情况发生。Shared Frameworks目录包含了可以由本程序和其它程序使用的框架,同时,与Frameworks不同,只会在无法在系统中找到更新的版本时使用。Plugins目录则包含了程序使用的插件。

Mac OS X中的框架捆绑

Mac OS X中的框架也以捆绑的形式储存。框架中的动态库代码储存在与框架同名的文件中,放置于顶层目录中;顶层目录中也可能包含Headers,储存了该框架提供的头文件

Mac OS X中的可载入捆绑

可载入捆绑即包含可以在运行时载入的代码的捆绑[1],其扩展名通常为.bundle,常常被用作插件

其它捆绑格式

其它的一些捆绑包括包含图形的,以.rtfd为扩展名的RTF文件,Safari的下载未完成的文件等。GarageBandKeynotePagesNumbersiMovieXcode等程序的部分版本中,项目文件亦存储为捆绑。在iWork '09版中,其文件为一压缩的捆绑,可以将其解压后查看内部结构[2];另外,Microsoft Office 2007引入的新文件格式也采用了类似的技术。

苹果安装器包(.pkg)是包含pax归档文件的捆绑,参见Installer (Mac OS X)

Linux发行版Super OS使用RUNZ格式的捆绑。

参考文献

  1. ^ Code Loading Programming Topics for Cocoa: About Loadable Bundles 互联网档案馆的,存档日期2008-09-05.
  2. ^ Open iWork' 09 flat files as folders. [2010-10-15]. (原始内容于2009-02-27). 

参见

  • Application Directory — RISC OS中的应用程序捆绑
  • klik — 一个使用类似原理的Linux程序
  • RUNZ
  • SpatialBundle 采用“一个文件,一个程序”哲学的用于Linux的可移植程序

外部链接

  • Bundle Programming Guide (页面存档备份,存于互联网档案馆) at Apple Developer Connection
  • NSBundle documentation (页面存档备份,存于互联网档案馆) from the GNUstep project
  • Platypus (页面存档备份,存于互联网档案馆) — a tool to create application bundles around scripts
  • Tech News (页面存档备份,存于互联网档案馆) — new technology news information with reviews

捆绑, macos, nextstep, x和gnustep中, 捆绑, bundle, 是一个目录, 也可能是一个文件, 它允许相关资源, 例如可执行代码, 本地化资源, 图片等, 被组合在一起, 在某些情况下可以当作一个单独文件看待, 在mac中, 该特性在mac, 9中引入, 被称为, package, 它类似于risc, os和rox, desktop中应用程序目录的特性, 以及使用spatialbundle技术的ubuntu和debian等linux发行版, 应用程序, 应用程序框架和插件通常以捆绑的形式. NeXTSTEP Mac OS X和GNUStep中 捆绑 Bundle 是一个目录 也可能是一个文件 它允许相关资源 例如可执行代码 本地化资源 图片等 被组合在一起 在某些情况下可以当作一个单独文件看待 在Mac中 该特性在Mac OS 9中引入 被称为 包 package 它类似于RISC OS和ROX Desktop中应用程序目录的特性 以及使用SpatialBundle技术的Ubuntu和Debian等Linux发行版 应用程序 应用程序框架和插件通常以捆绑的形式将其内部文件组织在一起 同时 文档也可以构成框架 在NeXT的Foundation工具包和Cocoa的Foundation框架中 可以使用NSBundle类操作捆绑 在Core Foundation中 则使用CFBundle系列函数进行操作 捆绑通常包含一个可执行代码文件和一些资源文件 例如NIB文件 图像 声音 本地化字符串 配置文件 通常是属性列表文件 和其它媒体 在其它系统上 例如Microsoft Windows 这些资源通常在编译时就被直接包含在了可执行文件中 Mac OS X从NeXTSTEP中引入了捆绑的概念 用以代替早期Mac OS中以资源分支存储附加元数据的技术 多数类型的捆绑在使用时与普通文件类似 从而减少了其内部文件意外更改或丢失的风险 同时 捆绑的另一个意义在于可以使用文件夹简化组织资源的方式 避免使用资源分支导致的额外的复杂性 捆绑的统一类型标识符是com apple bundle 而包的则是com apple package 目录 1 Mac OS X中的应用程序捆绑 2 Mac OS X中的框架捆绑 3 Mac OS X中的可载入捆绑 4 其它捆绑格式 5 参考文献 6 参见 7 外部链接Mac OS X中的应用程序捆绑 编辑应用程序捆绑通常为软件包 以单一文件的形式出现在用户面前 这个 文件 实际上是一个以 app为扩展名的文件夹 辅助点按这个包 然后选择 显示包内容 即可以文件夹的形式打开该捆绑并查看 修改其内容 对于应用程序 捆绑中的唯一一个一级子目录通常是Contents 在Contents中 通常有另外一些目录 包括可执行文件目录 在Mac中为MacOS GNUStep中则为应用程序的名字 资源目录 Resources 等 资源目录中通常包含了程序所需的本地化资源 包括字符串文件 strings文件 nib文件等等 其它常见的子目录包括Plugins Frameworks和Shared Frameworks Frameworks包括了该程序使用的框架 程序运行时会首先查找此处的框架而不是优先使用系统提供的 可以在一定程度上避免类似DLL地狱的情况发生 Shared Frameworks目录包含了可以由本程序和其它程序使用的框架 同时 与Frameworks不同 只会在无法在系统中找到更新的版本时使用 Plugins目录则包含了程序使用的插件 Mac OS X中的框架捆绑 编辑Mac OS X中的框架也以捆绑的形式储存 框架中的动态库代码储存在与框架同名的文件中 放置于顶层目录中 顶层目录中也可能包含Headers 储存了该框架提供的头文件 Mac OS X中的可载入捆绑 编辑可载入捆绑即包含可以在运行时载入的代码的捆绑 1 其扩展名通常为 bundle 常常被用作插件 其它捆绑格式 编辑其它的一些捆绑包括包含图形的 以 rtfd为扩展名的RTF文件 Safari的下载未完成的文件等 GarageBand Keynote Pages Numbers iMovie和Xcode等程序的部分版本中 项目文件亦存储为捆绑 在iWork 09版中 其文件为一压缩的捆绑 可以将其解压后查看内部结构 2 另外 Microsoft Office 2007引入的新文件格式也采用了类似的技术 苹果安装器包 pkg 是包含pax归档文件的捆绑 参见Installer Mac OS X Linux发行版Super OS使用RUNZ格式的捆绑 参考文献 编辑 Code Loading Programming Topics for Cocoa About Loadable Bundles 互联网档案馆的存檔 存档日期2008 09 05 Open iWork 09 flat files as folders 2010 10 15 原始内容存档于2009 02 27 参见 编辑Application Directory RISC OS中的应用程序捆绑 klik 一个使用类似原理的Linux程序 RUNZ SpatialBundle 采用 一个文件 一个程序 哲学的用于Linux的可移植程序外部链接 编辑Bundle Programming Guide 页面存档备份 存于互联网档案馆 at Apple Developer Connection NSBundle documentation 页面存档备份 存于互联网档案馆 from the GNUstep project Platypus 页面存档备份 存于互联网档案馆 a tool to create application bundles around scripts Tech News 页面存档备份 存于互联网档案馆 new technology news information with reviews 取自 https zh wikipedia org w index php title 捆绑 macOS amp oldid 70821696, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。