複製鏈接
請複製以下鏈接發送給好友

xpi

(XPI文件格式)

鎖定
xpi文件是Firefox瀏覽器(火狐瀏覽器)的擴展包文件,Firefox瀏覽器中的xpi擴展包實際上類似於IE中的插件或擴展(如Flash插件等)。
外文名
xpi
格    式
Zip

xpi軟件特點

xpi格式一般為.Zip,由XUL、Javascript、CSS、HTML和圖片等構成。
Firefox擴展包(Firefox Extensions)是指對為了增強在Mozilla Firefox中瀏覽網頁所做的一些小改進的名字。他們也許只是 可以為Mozilla Firefox增加新的功能一個小程序或者插件。您可以在Extensions page上看一看各種擴展包列表。
擴展包最偉大的好處是它使得Mozilla Firefox小巧而不臃腫,任何人可以根據自己需要選擇安裝適當的擴展包。

xpi安裝方法

xpi xpi
擴展文件通常是xpi文件格式(以.xpi結尾).有三種安裝方法:
1. 直接拖拽到Firefox瀏覽器的窗口裏或擴展窗口裏。
2. 點擊 “菜單”--“工具”--“擴展”,把.xpi文件拖進彈出窗口裏,稍後就可以看到Firefox會詢問你是否要安裝這個插件,點擊是,並重啓Firefox瀏覽器。
3. 鼠標右鍵點xpi文件,選打開方式,在打開方式裏選firefox,設置關聯。以後只要雙擊xpi文件就自動安裝了。

xpi擴展包

xpi主要目錄

xpi是火狐瀏覽器插件的擴展名。它實際上是一個zip格式的壓縮文件
一個標準的擴展程序,解壓縮後會生成以下幾個目錄:
* chrome:
Mozilla 規定擴展必須具備的目錄。其下有一個 JAR 文件,此文件中保存着完成擴展主要功能的文件,後面將做更進一步的説明;
* components:
約定俗成的可選目錄,用於存放自定義的 XPCOM 組件文件。由於大多數的擴展根本沒必要自己定義 XPCOM 組件,因此,在沒有自定義 XPCOM 組件的情況下,此目錄是不用存在的;
* defaults:
負責存放一些默認的設置數據,其下還會包含子目錄,以分別對默認數據進行存儲; 另外,其下一般還會具備 3 個特殊的文件:
* install.rdf:
它是一個 RDF/XML 格式的文件,用於描述當前擴展的註冊信息和附加信息等。擴展在安裝時,負責安裝擴展的程序會自動分析此文件的信息,然後將這些信息註冊到 Mozilla 系統下。此文件必須被命名為 install.rdf,並置於擴展壓縮包的頂級目錄下;
* install.js:
負責安裝擴展的腳本,此文件可選。一般情況下,install.rdf 完全可以勝任擴展的安裝註冊工作。但是,如果有些擴展要在安裝時做一些額外的準備工作,則要通過一個稱為 XPInstall 的機制來完成,那些負責額外工作的代碼則要被固定地寫到此文件中;
* chrome.manifest:
負責將擴展的各種包註冊到 Mozilla 的 chrome 系統中。Gecko 1.8 內核新引入的機制,用來代替原有的 contents.rdf 文件;
如果你在別人編寫的擴展中看到了除此之外的其它目錄和文件,這應該是擴展開發者的一種個人行為,而不是必須的。

xpi其他目錄

在上提到的 chrome 目錄下,會一個與當前擴展名稱相近或相同的,擴展名為 JAR 的文件,此文件用來組織擴展的核心功能。第一章已經説過,編寫一個擴展就像編寫一個桌面程序一樣,你需要構造擴展的外觀並且編寫完成邏輯功能的代碼。那麼,這些外觀和代碼就都被存儲在此文件中。解壓縮此 JAR 文件之後,一般會生成以下 3 個目錄。
* content:用於存儲負責描述擴展界面的 XUL 文件和完成實際邏輯功能的 JS 文件;
* locale:用於存儲負責本地化處理的字符串數據文件,這些文件中的本地化字符串內容會被 content 目錄中的文件所引用。如果某個擴展沒有對本地化進行處理,那麼它是可以省略的;
* skin:用於存儲負責美化界面外觀的樣式表文件和圖片文件,這些文件中的樣式和圖片會被 content 目錄中的文件所引用。如果擴展沒有使用單獨的樣式表文件和圖片,那麼它也是可以被省略的;
其實,那些目錄下的文件不一定是直接存儲在它下面的,甚至它還有可能被存儲在一個不相干的目錄下。這是因為,Mozilla 下的擴展開發有一些固定的和約定俗成的東西。對於那些非固定的規定,你可以不遵守。就比如説,有的擴展可能將以上負責不同功能的文件混合放在 content 目錄下。但是,作者不建議你這麼做,這種方式只會給擴展的維護帶來困難。
下面我們再來看一下這些目錄下的所存儲的內容:
* content:目錄下可能還會包含一個與擴展名稱相同或相近的子目錄,用這個子目錄來存儲以上提到的界面和代碼文件。對於 locale 和 skin 目錄,你可能也會看到再包含一個與擴展同名的子目錄的規則;
* locale:目錄下還會有針對不同語言的子目錄,這些子目錄會被起成如“en-US”,“zh-CN”這種用來區分“語言-國家/地區” 的名稱。通過這種國際上標準的語言區分方式,Mozilla 會根據其自身的語言,選擇一個最合適的語言目錄讓 content 中的文件進行引用。這樣做的結果就是,同一個擴展,在編寫了不同的語言包之後,它會根據 Mozilla 的語言來進行自適應。其實,這是 Mozilla 的功勞,我們僅僅是提供了不同的語言包文件,選擇並適應的工作是由 Mozilla 來完成的;
* skin:目錄下還會有針對不同的 Mozilla 主題命名的目錄,如“classic”,“modern”等。不過,一般情況下,我們只創建針對 classic 的“皮膚”。皮膚的適應方式與語言一樣的。