西游记86版紫金红葫芦:便携版Firefox制作全教程1

来源:百度文库 编辑:九乡新闻网 时间:2024/10/02 18:02:50

便携版Firefox制作全教程(1)——Firefox主程序文件的选择

接下来的几天里,我会陆续放出我的便携版Firefox制作方法全教程,这个教程也是我制作便携版Firefox至今的心得和体会,尽力让大家在看完教程后都能制作属于自己的便携版Firefox。今天先从制作便携版Firefox的第一步——选择合适的Firefox主程序开始。

Firefox是一个鼎鼎大名的开源软件,正由于它的名气和开源使得Firefox存在许多非官方的版本,算上官方的版本,这种种版本的选择就成了一个问题。

常见的第三方编译版Firefox大家可以点击这里查看。除去官方原版,国内使用的最多的第三方编译版本就是tete009和绫川编译的版本(注意,绫川的网站需使用代理才能访问)。这三个版本在本质上并没有太大的区别,简单的说:

官方的版本注重的是稳定性和兼容性;

而tete009则比较注重技术的创新,他的版本在图形绘制上略有优势,tete009的Firefox默认只对SSE指令集做了优化,如果想对SSE2指令集也进行优化可下载tete009主页上的支持SSE2指令集优化的tmemutil.dll,替换tete009的Firefox中的默认文件即可,不过实际性能的提升相当有限;

绫川的版本最近在天朝蔓延的速度很快,虽然我也比较喜欢他的版本,但实际上他的版本是比较偏激的,他的版本里也有用到tete009的部分优化技术,并且非常追求新的编译器,一直使用VS2008、VS2008SP1的,所以他的版本默认是需要安装VC++2008或者VC++2008SP1运行库才能正常运行的,当然,为了制作便携版程序,我们也可以直接集成所需要的运行库,这在后面会有提到。

就JavaScript性能来说是绫川的最好,tete009的次之,官方的最差;但自从Firefox3.0Beta5时JavaScript性能大幅度提升后官方的版本性能比也不是太差,所以这三个版本在得分上的差距换算到实际使用恐怕只有几十毫秒的差距。当然,官方的3.1并打开TraceMonkey除外,这个性能提升太大了!综合考虑性能、兼容性等各个方面,我更倾向于使用tete009的版本。至于你用什么版本,还得由你自己的使用环境说决定。

下面我来说说上面提到的三个版本制作便携版程序所需要的一些基本处理:

便携版程序需要的是程序体积尽量小巧,以减少程序运行时对宿主设备的读写,对于传输速度普遍较慢的便携存储设备比较有利,所以程序的精简的必须的。

获得官方版本最简单的方法就是下载网上发布的最新简体中文版Firefox,在本机上安装,然后提取出安装文件夹下的所有文件;或者也可以直接到Mozilla FTP下载最新的Nightly版,解压即可获得Firefox的主程序。而精简也主要集中在一些无用的文本类文件、字典文件等。一般根目录下只需保留application.ini、blocklist.xml、browserconfig.properties和platform.ini四个文本文件即可,其余文本类型的文件均可删除(注意:名为.autoreg的文件不要删)。Uninstall文件夹也没有用,可以删除。

tete009的版本下载后除了和官方原版一样的处理之外,另外还可以把除firefox.exe之外的所有exe程序删除,另外还有一个名为Source的文件夹,是tete009的源代码,也可以删除。

绫川的版本相对干净,只需要和官方版本一样处理即可,只不过制作便携版我们还需要集成绫川版所需要的运行库,在安装了VC++2008或者vc++2008sp1的机子上提取出vcomp90.dll和Microsoft.VC90.OpenMP.manifest两个文件,放在firefox.exe的同一目录下即可。

另外tete009和绫川的版本下载后默认都只有英语一种语言,所以我们需要加入简体中文语言文件,我们可以从官方版本的chrome文件夹里提取出zh-CN.jar和zh-CN.manifest两个简体中文语言文件,然后放到tete009和绫川的同一文件夹下;或者也可以从Mozilla FTP下载对应版本的语言插件,然后用7z或者WinRAR解压这个插件,即可获得zh-CN.jar和zh-CN.manifest两个语言文件。

当然,你也可以用Restorator等资源编辑工具把tete009或者绫川的Firefox.exe主程序的图标改成Firefox正式版的图标,这个怎么操作这里就不多讲了。

到这里,Firefox主程序的处理就差不多了。

便携版Firefox制作全教程(2)——扩展和插件

    第一篇教程我已经介绍了Firefox主程序的选择和处理,这次我要讲的是Firefox的扩展和插件。扩展和插件是不一样的,扩展是指AdblockPlus、Download Statusbar等用于提升用户体验的组件;而插件则是Flash、WMP等能扩充Firefox的底层功能的组件。

    在便携版Firefox的制作中,扩展和插件的集成是相当重要的一个环节,甚至有些做得粗糙的便携版Firefox就是原版集成几个扩展及插件而已。我有时候也会下载别人做的便携版Firefox,但几乎每次总能看到塞得满满的扩展文件夹和插件文件夹,每次看到这里我就会直接把那个版本删了,因为从这儿我就可以看出这个版本根本没有任何借鉴价值,这个便携版的作者也没有用心的在做Firefox。Firefox的扩展和插件是很多的,这是他的优势,但也会带来一些负面的影响。安装过多的扩展和插件会影响到程序的启动和运行速度,增加资源占用。碰到制作不规范的甚至会导致Firefox的崩溃,所以对于扩展和插件我们应抱着能不装则不装的心态来对待。

    以现在流行的Firefox3为例,就是有很多人喜欢装Fasterfox这个扩展,这个扩展官方就没有提供对Firefox3的支持,但很多网友就是修改也要让这个扩展强行支持Firefox3。其实在Mozilla的论坛上早有讨论了,这个扩展在有限提升性能的同时会带来不少兼容性问题,在Firefox2下尚是如此,Firefox3下其实这个扩展根本发挥不了任何作用,他也只是修改了Firefox的配置文件中的几个参数而已,那么我们还不如手工修改来的好。还有迅雷官方的扩展,那个扩展是为Firefox2准备的,经过修改虽然能在Firefox3下使用但会造成一些菜单项的失效。尽管有网友的修改版解决了这些问题,但安装一个通用的FlashGot不是更好吗?有人说用FlashGot右键没有下载项,不方便。那么,看图:

    在FlashGot选项里勾上“在右键菜单中显示”就可以了。而且FlashGot不仅支持迅雷,还支持快车等多数主流下载软件,最新版本还加上了媒体探测功能,我实在想不出使用迅雷官方扩展的理由。

    Firefox的版本更新永远是走在扩展的版本更新之前的,下面我来说下让原本不支持新版本Firefox的扩展支持新版本的方法,总体来说有三种:
1、安装Nightly Tester Tools这个扩展,安装了这个扩展后就能安装原本不支持的扩展了。

2、在地址栏输入about:config,运行后新建两个布尔值,名字分别为extensions.checkCompatibility和extensions.checkUpdateSecurity,值都为false。

3、第三种方法是直接修改扩展,也是我最推崇的一种方法。把下载下来的扩展的后缀名从xpi改到zip,然后用任意解压软件解压到一个文件夹里,用记事本打开install.rdf,把maxVersion后的版本号改成3.1.*。就是说支持到Firefox3.1的所有版本,当然,也可以设的更大一点。然后选定所有解压出来的文件和文件夹,压缩成一个zip文件,最后把后缀从zip改到xpi,再安装就可以了。

    再来说下扩展的精简:一般一个扩展下载下来里面都包含多国语言的,而我们最多用到英简繁三种,所以我们也只需要保留这三种即可。
1、把下载下来的扩展的后缀从xpi改为zip,然后用压缩软件解压到一个文件夹,诸如扩展的文件名是download_statusbar-0.9.6.3-fx,则解压到名为download_statusbar-0.9.6.3-fx的文件夹中,打开这个文件夹,找到chrome.manifest的文件,用记事本打开这个文件,找到locale开头的几行,然后把除en-US、zh-CN和zh-TW的其他行删掉。

2、进入名为chrome的文件夹,这时候有两种情况:

(1)、进入后全是文件夹,则进入名为local的文件夹,删除除en-US、zh-CN和zh-TW的其他文件夹。

(2)、进入后只有一个后缀为jar的文件,则把这个文件的后缀改成zip,然后解压到一个文件夹,进入这个文件夹,一般见到的是这样的视图:

进入local文件夹,删除除en-US、zh-CN和zh-TW的其他文件夹。然后把以上几个文件夹选定后压缩为一个zip文件,再把后缀改成jar。确保新生成的jar文件和原始jar文件文件名一样,然后用新的jar文件替换旧的jar文件,再把由原始文件解压而得的文件夹删除即可。

3、选定由扩展解压后的目录中的所有文件,压缩为一个zip包,最后把后缀的zip改为xpi即可,所得即为一个精简版的扩展。

还有问题更多的插件,绝大多数便携版或者绿色版的Firefox中都会集成一大堆的插件,什么Java、QuickTime、SilverLight、 Office03/07和PDF等等等等,但他们真的测试过这些插件吗?他们知道这些插件在什么情况下能工作吗?

Java,其实根本没必要安装插件,你系 统里装了Java RunTime的话Firefox自己会找到相应的插件,自己装的甚至反而可能出现版本对不上的情况,没装的话就算你装了插件也没用,只是一个占了茅坑不 拉SHI的家伙;

QuickTime的插件很多,有6~7个,但绝大多数需要系统里装有QuickTime才会生效,而且绝大多数插件的功能是在线播放一些格式比较特殊的音视频,诸如3gp、mov等,还会强制接管mp3等文件的默认操作(点个MP3下载链接他不下载反而在线播放 了);

SilverLight,至少我测试在最新版的Firefox中还无效,而且网络上用到SilverLight的机会实在太少了;

Office系 列,系统里有没有装MS的Office我们先不论,但你知道用户装的是03还是07吗(03和07的插件不一样的)?你有必要在Firefox中打开一个 Word文档或者PPT文档吗?

PDF,集成的人也很多,但你知道这个插件需要系统里安装了Adobe Reader才有效吗?这个几百兆的庞然大物我可不想装。

RealPlayer,这个装的人也很多,不过它和Java一样,只要系统里装了Real解码器,Firefox就能自动找到相应的插件,否则装了也没用。

    所以,就我个人感觉,插件我们只需要安装Flash:NPSWF32.dll、ShockWave:np32dsw.dll(可选)、WindowsMediaPlayer:npdsplay.dll、QuickTime插件中的npqtplugin6.dll(用来支持JPEG2000图片格式,无须安装QuickTime,可选)、WPF:NPWPF.dll(用于支持微软最新的WPF图形格式,可选)。

    还是那句话,扩展和插件宜精不宜多,如果制作的精简版是要发布给网友分享的,那更应该注意每个扩展及插件的测试。

便携版Firefox制作全教程(3)——整合

    忙了一个学期,好久没更新了,最近我会陆续更新一些内容的。言归正传,今天要说的是便携版Firefox制作教程的最后一篇——整合。至于如何整合,这和你所用的引导器有莫大的关系,引导器不同直接决定了文件布置的结构。我自然还是以我自己做的引导器FirefoxLoader为例介绍。

    FirefoxLoader所要求的文件结构相当简介,仅需要在FirefoxLoader的同级目录下放置一个名为Firefox的文件夹,并在这个文件夹里放置Firefox的程序文件即可,即形成如下图所示结构:

    Firefox程序本身需要精简的并不多,记得删除Uninstall文件夹、Update文件夹(每次运行过Firefox后都会出现)和tete009编译版本中的Source文件夹即可。

    Firefox的主页地址修改是在browserconfig.properties这个文件里的,用记事本打开这个文件,把browser.startup.homepage后的网址替换成你要设定的主页地址即可,空白页就设成about:blank。

   然后运行FirefoxLoader,FirefoxLoader会自动在同级目录下新建一个名为profiles的目录,并用默认配置文件启动Firefox。然后你就可以在这里安装扩展、主题并对Firefox的默认参数进行调整了,你可以修改Firefox的选项或者扩展的选项,还可以通过在地址栏输入about:config来进入Firefox的“注册表”,对Firefox进行更彻底的修改,修改的方法可以参照这里。当然,这里的技巧也不是都要用,如何取舍还得看你经验的摸索。所有修改过的参数会在profiles文件夹下的prefs.js文件中体现出来,你可以用记事本打开并编辑它,这和你在Firefox程序里修改选项或者about:config是等效的。

   如果有人分析过我做的便携版Firefox会发现我的默认prefs.js中并没有太多的优化参数,难道我没有做任何优化?这当然不可能。我只是把优化参数变成了Firefox的默认参数而已。Firefox的默认参数都保存在Firefox目录下的defaults和greprefs目录下的js文件中,而主要则保存在Firefox\defaults\pref目录下的firefox.js和Firefox\greprefs目录下的all.js这两个文件中,你可以把你在prefs.js中看到的修改项在这两个文件中查找,如果找到一样的选项的话直接把他们的值改为和prefs.js中的值一样即可,当然,查找的时候得把前面的“user_”去掉。

    Firefox还可以通过修改profiles\Chrome文件夹下的Userchrome.css和UserContent.css对界面的显示做一些控制。如果profiles\Chrome文件夹下只有UserChrome-example.css和UserContent-Example.css两个文件则把他们改名为UserChrome.css和UserContent.css后再进行修改。

   当你要修改的全部改好后,就把profiles目录下的extensions目录下的所有文件夹都复制到Firefox目录下的extensions文件夹中。再把profiles文件夹下除adblockplus(如果有装AdBlockPlus的话)、chrome两个文件夹及prefs.js、firegestures.sqlite(如果有装FireGestures)两个文件之外的其他文件删除,把Firefox\defaults\profile目录下的所有文件和文件夹都删除,把profiles文件夹中剩下的两个文件夹和两个文件复制到Firefox\defaults\profile目录下,最后把多余的profiles目录删除即可。

    至此,一个便携版Firefox就诞生了……