当前位置:操作系统 > 电脑通通透 >>

软件精简与绿化专题之概念篇

答案:现在的软件,功能一个比一个多,个头一个比一个大,安装时间也是超级长,平时还不觉得,但如果系统重装,那就有的累了,一个系统安装只花半小时 ,但安装常用软件却得花半天!那么多的功能都是用的到的吗?软件能不能做的小一点?软件就一定要安装后才能使用吗?带着这些疑问,《家用电脑》在本期推出了软件精简与绿化专题,希望读者们看了此文后,能够亲自动手,让我们的软件变得更瘦更方便。

 精简软件的概念
 
现在的软件越做越大,功能越来越丰富,但是对于很多普通用户来说,许多功能都是根本用不到的,甚至都不知道存在这些功能,所以很多电脑爱好者就开始研究精简软件的方法,就是保留大多数常用功能,去掉极少用的功能模块,这样可以极大地减少软件的大小。

比如windows xp,里面有些功能(比如ATM的模块,泰国语言等)对于大多数用户是多余的,于是nuhi开发了nlite程序,可以把windows xp精简到200M左右,某些爱好者甚至可以精简到更小。还有xplite,可以精简安装好的xp系统。又比如我们常用的office软件,同样很多功能都是我们平时用不到,比如office 2003中的DOT NET可编程性支持,一般的用户可能仅仅需要word程序,如果我们去掉office软件中不太常用的组件,就可以office system精简到100M甚至几十M,这样可以把一些常用的软件做到一张光盘上,便于携带。此外,现在很多软件都捆绑了诸如3721,cnnic等插件(比如紫光3.0输入法捆绑了百度的搜索助手),很多用户都在不自愿的情况下被强制安装了这些插件,如果可以把这些插件从捆绑的软件中精简掉,就不会有不小心安装的情况了。

一般来说功能模块划分比较清晰的软件,容易精简也可能精简,如果软件的文件相关性很强,互相依赖,那么就无法精简。

绿色软件的概念

安装完操作系统后,我们一般需要安装一些常用的软件,但是随着我们常用软件的增多,这个安装过程显得越来越令人厌烦:运行setup,然后是选择目标路径,不断的重复这个过程。即使我们的硬盘上已经安装了这个软件,也要重新安装一次,才能正常使用。那么对于硬盘上已经存在的软件,能不能不安装而直接运行,仍然可以工作正常呢?

实践证明,按照是否需要重新安装来分类,可以分为3类:
1 有一部分软件具有不需安装而可以直接运行的特点。
2 还有一部分软件经过改造,可以通过简单的配置而不再需要重新安装就可以正常运行了。
3 有些软件必须重新安装才可以正常运行。

一般来说把前2种类型的不需要安装就可以运行的软件称为绿色软件,绿色软件具有如下优点,对操作系统无污染(恐怕这也是绿色这个名字的由来),不需要安装,方便卸载,便于携带,可以拷贝到便携的U盘上到处运行。一句话概括就是方便无污染。

制作软件的绿化版本就是手工安装,如果软件的配置过程很简单甚至根本不需要配置,这个软件就比较容易绿化。如果软件的安装过程比较复杂,甚至要替换操作系统的核心文件,这时候就不适合做绿化,比如directx。
                       
精简软件与绿色软件的关系

我们常常听到“精简绿色版”这个名词,那么精简软件和绿色软件有什么关系呢?
一般说来,精简软件与绿色软件有着以下几种关系:
1、仅仅可以精简。有些软件太复杂或者需要替换操作系统模块,不适合绿化。比如office系统很难绿化,但是由于office安装程序的模块化比较好,很容易找出不需要的组件,所以容易精简。
2、仅仅绿化,有些软件功能很单一,没有多余的功能模块,这时候没有什么可以精简的,只能绿化。
3、绿化并且精简,很多时候,绿化软件的同时对软件进行精简,比如上一期的绿化msn messanger,为了便于安装和携带,就是对msn messanger同时绿化和精简。一般来说,绿化的同时伴随着精简,去掉不需要的文件和功能。
4、既不能绿化又不能精简,比如directx安装程序。
[page_break]

明白安装程序

无论是精简还是绿化都要和安装程序打交道,弄明白了安装程序所作的工作,会极大地方便绿化和精简。
目前安装程序有4大类型:
1、微软的Installer制作的安装包,后缀一般是msi,msp,是基于数据库的概念来设计的,具有自修复,按需安装,和windows集成等优点,并且微软在极力推广,已经成为安装程序的标准。目前很多安装制作程序都可以生成msi格式的安装包,老牌的InstallShield 和 Wise 也推出了基于msi的安装制作程序。微软提供的的windows xp 的sdk中包含了免费的msi编辑修改等工具。
2、Iinstallshield制作的基于InstallShield自身安装引擎的安装包,在windows installer以前,多数安装程序都是Installshield制作的。使用winpack v3.0可以解码InstallShield3,5,6引擎的安装包(下载地址:http://family.chinaok.com/down/200516/winpack.rar)。
3、Wise制作的基于Wise自身安装引擎的安装包,比installshield小巧,用的也比较广泛。使用E_WISE(下载地址:http://family.chinaok.com/down/200516/e_wise.zip)或者使用Wise Unpacker GUI(下载地址:http://family.chinaok.com/down/200516/wun.rar)可以解码wise软件包。  
4、inno ,NSIS(Nullsoft),Installer VISE等制作的安装包,也是各有特色。total comander  有一个插件,叫WCXfar_IETotal,可以直接解压缩如下类型的安装程序:- Wise - Vise - Inno Setup - Gentee Installer - InstallShield - NullSoft Installer (ver>=1.10) - SetupFactory - Eschalon - MSI Windows Installer,不过还不是很完善,速度也比较慢。

 软件的精简过程
 
软件的精简就是去掉不需要的功能模块,删除相对应的文件,这里面关键是找出软件中各不同模块所对应的文件,一般有几种方法:
1、分析文件名字和目录,进行推测和实验,删掉或者把某些文件移动到别的目录,看看软件功能是否受影响,这可以知道各个功能模块所对应的文件了。这个方法适合比较小巧的软件或者功能划分比较明显的软件(比如adobe acrobat软件,划分为Acrobat,Acrobat Elements,ActiveX,Designer 7.0,Distillr等几个目录,可以猜测各个目录所对应的功能模块)。当文件和目录比较多并且没有明确的名字指明模块划分的时候,这种方法就很繁琐和困难了。
2、直接分析安装软件包,比如msi格式的安装包,天生就是按照模块来划分的,使用msi编辑工具,可以很容易的了解各个模块所对应的文件,所以虽然office 比较复杂,难以绿化,但是容易精简。这种方法需要比较完善的安装程序包的分析工具。除了msi之外的大多数安装包的相关分析工具都不太完善。
3、快照测试。安装的时候,不要选择某项功能模块安装,记录下这时候的系统快照,然后安装该功能模块,再一次记录系统快照,对比快照前后的变化,来了解模块和文件对应关系。

软件的“绿化”过程

绿色软件的制作,简称软件的“绿化”,绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略。
笔者一般遵循如下步骤制作一个绿色软件:
1、判断:猜测这个软件能不能制成绿色软件,从功能,从你对它的了解,如果你觉得这个软件和系统的关系非常紧密,就不要继续下去了,还是用原始的安装程序最保险最方便,这样的例子有directx9 ,IE6,Norton的反病毒软件等等。这样的判断可以节省你的时间,当然你可以忽略这一步,尝试制作绿色软件,那么就转到第2步。
2、“绿化”:对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具体的绿化方法随后讲述。
3、测试:“绿化”后的测试最好到一个全新安装的操作系统中测试,如果你要在多个操作系统中使用这个软件,还要在其它的操作系统中测试,有些软件的文件随着操作系统的不同而不同,这个时候你需要在不同的操作系统中进行”绿化“过程,最后综合为一个完整的适应多操作平台的绿色软件。
“绿化”方法,需要根据经验选择不同的“绿化”方法,也可能需要不断尝试不同的方法,直到成功为止。按照先易后难的次序,具体的方法包括:
1、解压缩。
2、安装然后卸载。
3、反编译安装程序。
4、观察反安装程序和log文件。卸载是安装的逆过程,如果知道怎么卸载,那么也可以推测出如何安装。
5、比较系统快照。就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同,而得知安装程序所做的工作。 通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步骤来安装的软件,还是使用原来的安装程序比较保险。

从上面的叙述可以看出,绿化和精简既紧密联系又相互区别,在下一篇将讲3个例子来具体讲述绿化和精简的概念。(长沙 李云浩)

上一个:软件精简与绿化专题之实战篇
下一个:服务器常用组件,我花了几个月才找全

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,