QuickLook

来源:互联网 发布:郑州航院网络教学平台 编辑:程序博客网 时间:2024/06/04 18:48

QuickLook是Leopard(10.5)引入的一项新特性,允许在Finder中快速预览多种不同类型的文件。不需要双击鼠标来打开文件,只需要按下空格键就可以通过QuickLook快速预览文件内容。QuickLook采用的是可扩展的架构,使得大部分工作都由插件完成。这些插件是后缀为.qlgenerator的bundle,只要将这些bundle文件拖放到QuickLook目录(系统范围的QuickLook目录为/System/Library/QuickLook,针对用户个人的QuickLook目录为~/Library/QuickLook)中即可完成插件的安装。

bundle是OS X中使用的一项基础软件部署架构,本章后面会对此详述。现在只要知道一个bundle是一个遵循固定结构的目录层次即可。

实际的插件是一个特殊编译的程序——但不是一个独立的可执行程序。插件程序没有传统的main()入口点,而是实现了QuickLookGeneratorPluginFactory入口点。另外还有一个配置文件负责将插件和对应的文件类型关联起来。文件类型通过苹果的UTI(Uniform Type Identifier)表示,这实际上就是逆DNS表示法(reverse DNS notation)。

为什么使用逆DNS表示法

使用逆DNS表示法作为软件包的标识符是有合理原因的。具体原因为:

因特网DNS格式用于形成主机名称全局唯一的层次名称空间,实际上组成一个树状结构,根节点为空域名(.),顶级域名包括.com、.net和.org等。

在软件中使用类似名称空间的思想最早源于Java。为了避免名称空间的冲突,Sun(现为Oracle)注意到可以使用DNS名称(尽管是倒过来的)提供一种非常类似于文件系统的层次结构。

在阅读本书的过程中您会发现,苹果在OS X中广泛使用了逆DNS表示法。

quicklookd(8)是系统的“QuickLook服务器”,是通过/System/Library/LaunchAgents/com. apple.quicklook.plist文件在登录时启动的。这个后台服务程序本身在QuickLook框架中,而且不带GUI。qlmanage(1)命令的作用是维护插件,并且控制后台服务程序。这条命令的使用如输出清单2-1所示:

输出清单2-1:演示qlmanage(1)的使用

morpheus@Ergo (/) % qlmanage –m

living for 4019s (5 requests handled - 0 generated thumbnails) -

instant off: yes - arch: X86_64 - user id: 501

memory used: 1 MB (1132720 bytes)

last burst: during 0.010s - 1 requests - 0.000s idle

plugins:

org.openxmlformats.wordprocessingml.document ->

/System/Library/QuickLook/Office.qlgenerator (26.0)

com.apple.iwork.keynote.sffkey -> /Library/QuickLook/iWork.qlgenerator

(11)

..

org.openxmlformats.spreadsheetml.template ->

/System/Library/QuickLook/Office.qlgenerator (26.0)

com.microsoft.word.stationery -> /System/Library/QuickLook/Office.qlgenerator (26.0)

com.vmware.vm-package -> /Library/QuickLook/VMware Fusion

QuickLook.qlgenerator (282344)

com.microsoft.powerpoint.pot -> /System/Library/QuickLook/Office.qlgenerator (26.0)

0 0
原创粉丝点击