<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>plugin</title>
	<atom:link href="https://www.aitaocui.cn/tag/233533/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Sun, 27 Nov 2022 03:27:12 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>plugin</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>plugin(计算机应用程序)</title>
		<link>https://www.aitaocui.cn/article/345337.html</link>
					<comments>https://www.aitaocui.cn/article/345337.html#respond</comments>
		
		<dc:creator><![CDATA[先看]]></dc:creator>
		<pubDate>Sun, 27 Nov 2022 03:27:12 +0000</pubDate>
				<category><![CDATA[知识]]></category>
		<category><![CDATA[plugin]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=345337</guid>

					<description><![CDATA[plugin（Plug-in,addin,add-in,addon或add-on），一种计算机应用程序，这个名词是被Ed Bomke提出的。它和主应用程序（host applica...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>plugin（Plug-in,addin,add-in,addon或add-on），一种计算机应用程序，这个名词是被Ed Bomke提出的。它和主应用程序（host application）互相交互，以提供特定的功能。应用程序支持Plugin有许多原因，主要包括使得第三方开发者有能力扩展应用程序，以提供无法先期预料的特色；减小应用程序的大小；由于软件版权之间的不兼容性将源代码和应用程序分享。</p>
</article>
<article>
<h1>支持软件</h1>
<p>Plugin通常译作插件，下文中以插件代替Plugin。</p>
<p>支持插件的软件例如有：</p>
<p>Email客户端使用插件对email编码、解码</p>
<p>图像软件使用插件对文件格式进行支持和处理图像（Adobe Photoshop,AcdSee)</p>
<p>媒体播放器使用插件支持文件格式和应用过滤器（foobar2000,GStreamer,Quintessential,VST,Winamp,XMMS,WindowsMediaPlayer)</p>
<p>包嗅探器使用插件对包的格式进行解码(OmniPeek)</p>
<p>遥感应用使用插件处理不同类型传感器的数据（Opticks)</p>
<p>软件开发环境使用插件支持不同的编程语言(Eclipse,NetBeans,jEdit,MonoDevelop)</p>
<p>Web浏览器使用插件播放视频和媒体格式（Flash,QuickTime)</p>
<p>blog应用平台使用插件增强blog功能（WordPress,LightPress,MovableType,Z-Blog)</p>
<p>blog终端使用插件增加blog编辑功能（Windows Live Writer)</p>
<p>文件编辑器使用插件提供特定的文本编辑能力（Emeditor,Notepad++)</p>
<p>编译任务管理软件使用插件提供第三方语言支持或编译任务支持（Ant)</p>
<p>企业Web应用平台使用插件针对不同业务进行处理（Struts)</p>
<h1>机制</h1>
<p>主应用程序提供给插件可以使用的服务，让插件在主应用程序中注册插件本身，以及和插件进行数据交换的协议。插件依赖于主应用程序提供的这些服务，通常不能独立运行。相反地，主应用程序和插件是分离的，这就使得我们可以不改变主应用程序而动态增加或更新插件。</p>
<p>公开的应用程序接口(API）提供一个标准接口，允许第三方编写插件和主应用程序交互。一个稳定的API必须在主应用程序版本升级后第三方插件仍可以运行。插件同时也延长了过时的应用程序的生命。Adobe Photoshop 和 After Effects提供给插件的API已经成为一种图像处理软件API的标准，被相类的图像处理软件所采纳。其它类似的API包括 Audio Units 和VST。</p>
<p>这种插件的机制很普遍，比如一个网络交换器，它有一个没被占用而且是非标准的端口，用它来接纳不同的任意的物理层连接；再比如计算机硬件制造业的行业标准架构（Industry Standard Architecture）和IBM著名的微通道架构（Micro ChannelArchitecture），都允许第三方设备。这些都是类似插件的一种机制。</p>
<h1>插件和扩展</h1>
<p>插件稍不同于扩展（extension），插件通常依赖于主应用程序的接口，有一个它们可以运行的确定的界限。扩展则通常有更少的限制，也可以提供它们自己的接口。相同的是，它们通常都用来减少主应用程序的大小、提供一些可选的功能。</p>
<p>这里不得不提到Mozilla Firefox 和相关软件。它们使用一个叫做Add-on的名词，Add-on又被细分为插件、主题（theme）、搜索引擎（search engine）和扩展。在以后的文章中将会提到Mozilla插件和古老的NPAPI的渊源，以及firefox中插件和扩展的区别。</p>
<h1>历史渊源</h1>
<p>插件的概念可以回朔到上世纪70年代。那时在Univac 90/60系列主机的Unisys VS/9操作系统中，运行着一个叫 EDT的文本编辑器，它提供一种功能可以从编辑器中运行其它应用程序，并允许这些程序访问编辑器的缓冲区，在内存中提供一种编辑会话。这样这些外来的应用程序就可以依靠共享的缓冲区执行文本操作了。这种功能后来被 Waterloo Fortran编译器使用，和EDT编辑的Fortran程序进行交互编译。</p>
<p>在PC机上拥有插件功能的第一个软件可能是在Macintosh上的HyperCard和QuarkXPress，它们在1987年发布。1988年，Silicon Beach软件公司在 Digital Darkroom和SuperPaint软件中也包含了插件功能。而Plug-in这个名词则是被Ed Bomke提出。</p>
<h1>Plugin架构</h1>
<h2 id="a-bf2e0d6b">以下按编程语言分类</h2>
<p>plugin下包含有c++和jsp语法两种语言分类</p>
<h2 id="a-daf84dcd">C++</h2>
<p>FxEngine Framework-一个数据流处理框架</p>
<p>Qt PlugIns-TrollTech的 Qt框架的一部分</p>
<p>Delphi</p>
<p>TMS Plugin Framework</p>
<p>Java</p>
<p>Java Plug-in Framework(JPF），一种由Eclipse的插件机制而改写的架构</p>
<p>RCP，由Eclipse发展而来的技术平台，应用程序可以以插件方式编写，应用程序本身也可以拥有插件</p>
<p>Python</p>
<p>Setuptools</p>
<p>The Twisted Plugin System</p>
<p>Sprinkles</p>
<p>Python plugin system</p>
<p>.NET</p>
<p>AL Platform</p>
<p>Mono Addins-.Net和Mono的一个addin框架</p>
<p>Code Project基于.NET的插件框架</p>
<p>Active Visic</p>
<p>Active Visic</p>
<p>一般来说，；元素会指定对象是Applet还是Bean，同样也会指定class的名字，还有位置，另外还会指定将从哪里下载这个Java插件。具体如下：</p>
<p>属性</p>
<p>type=&quot;bean | applet&quot;</p>
<p>.将被执行的插件对象的类型，你必须得指定这个是Bean还是applet，因为这个属性没有缺省值.</p>
<p>code=&quot;classFileName&quot;</p>
<p>将会被Java插件执行的Java Class的名字，必须以.class结尾。这个文件必须存在于codebase属性指定的目录中.</p>
<p>codebase=&quot;classFileDirectoryName&quot;</p>
<p>将会被执行的Java Class文件的目录（或者是路径），如果你没有提供此属性，那么使用；的jsp文件的目录将会被使用.</p>
<p>name=&quot;instanceName&quot;</p>
<p>这个Bean或applet实例的名字，它将会在Jsp其它的地方调用.</p>
<p>archive=&quot;URIToArchive,&#8230;&quot;</p>
<p>一些由逗号分开的路径名，这些路径名用于预装一些将要使用的class，这会提高applet的性能.</p>
<p>align=&quot;bottom | top | middle | left | right&quot;</p>
<p>图形，对象，Applet的位置，有以下值：</p>
<p>bottom</p>
<p>top</p>
<p>middle</p>
<p>left</p>
<p>right</p>
<p>height=&quot;displayPixels&quot; width=&quot;displayPixels&quot;</p>
<p>Applet或Bean将要显示的长宽的值，此值为数字，单位为象素.</p>
<p>hspace=&quot;leftRightPixels&quot; vspace=&quot;topBottomPixels&quot;</p>
<p>Applet或Bean显示时在屏幕左右，上下所需留下的空间，单位为象素.</p>
<p>jreversion=&quot;JREVersionNumber | 1.1&quot;</p>
<p>Applet或Bean运行所需的Java Runtime Environment (JRE) 的版本.缺省值是1.1.</p>
<p>nspluginurl=&quot;URLToPlugin&quot;</p>
<p>Netscape Navigator用户能够使用的JRE的下载地址，此值为一个标准的URL。</p>
<p>iepluginurl=&quot;URLToPlugin&quot;</p>
<p>IE用户能够使用的JRE的下载地址，此值为一个标准的URL。</p>
<p>你需要向applet或Bean传送的参数或参数值。</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/345337.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
