AIR/.Net 免安装终极解决方案:Thinstall
Adobe AIR 目前已经更新到了1.5,出新品速度非常迅猛。它的优点不少,可是有一点一直困扰了很多AIR开发人员的,就是那个Runtime的安装过程。AIR的运行环境不像Flash插件那么普遍,由于它推出的时间很短,所以它在世界范围内电脑的占有率非常低。因此利用AIR来开发东西,部署的过程会拉得很长,这对应用软件的推广绝对是一个巨大的威胁。直到我找到了Thinstall,终于解决了一个心头大患。现在我可以放心继续用AIR开发了。
在介绍Thinstall之前,应该先去看看一个叫"穷开心"(http://www.qkaixin.com%2F)的东西。这是某个个人针对开心网开发的AIR软件,可以查看在线好友和发送信息等。作者字面上的意思是为了摆脱开心网的JS蜗牛速度,才考虑搞出这个东东。不管怎样,它这个AIR软件居然是绿色的。整个软件只有一个12Mb大小的Exe文件,下载完后无需任何安装额外的东西即可马上运行,说实在的这一点我很震撼。原本要"下载15MB大小的AIR运行环境"-->"安装AIR运行环境"-->"下载几百Kb的软件的air包" -->"安装这个软件的air包"-->"运行这个软件",繁琐的步骤让用户望而止步。这个"穷开心"就简单多了,只有"下载-->运行",这是绝大多数网民都懂得做的步骤。通过这样处理之后,AIR的开发和部署甚至比Delphi还要容易,因为Flash有大量的现成设计资源可以利用,并且具有很强的网络通讯能力,尽管它对系统一些比较底层的功能要差一些,做Web客户端是完全足够了。我在某个RIA论坛找到了这个作者的信息,他在某个帖子回复里面提出,穷开心是用Thinstall制作的。
关于Thinstall,这是它的原名,也就是Thin-Install的瘦身安装的意思。后来被VMware收购了,现在可能叫做VMware ThinApp 或者NorthStar,中文关于它的资料不多。它的作用就是为软件虚拟一个运行的环境,例如Adobe AIR软件,或者微软的.Net系列,还有许多其他的软件,都可以用它来虚拟剥离,最后打包为一个单文件,省去许多安装设置上的麻烦。下面再简单说说它的基本原理和使用教程。每次我们需要为一个软件做新的打包的时候,打开Thinstall它会先对系统做一次扫描,监视注册表和文件的变化状态,第一次扫描完成以后,就可以把它暂时最小化,然后开始安装我们的软件,以AIR为例,在系统安装AIR 1.5,并且安装我们自己开发的软件。完成以后,再调出Thinstall,点击Next进行第二次系统扫描。通过前后两次扫描的对比,Thinstall会自动找出差异所在,并且把它们都集中到对应的Project目录,最后通过Build指令让它打包压缩成为一个单独的Exe运行文件,使用过程并不复杂,我这样的编程菜鸟都能搞定的事情,对开发人员更不是问题,可自行摸索。为避免干扰,这个过程最好能在干净的系统进行,例如通过VMWare虚拟安装一个新的Windows,然后再进行操作,我就是这样干的。
我比较关心的是打包后的性能是否能够保持,通过对这个"穷开心"的观察,以及我自己试验的一个,速度和功能都一样,还没看到与正常安装有什么不同。"Clockmaker Icon Generator"这个生成图标的东西做AIR的都应该知道吧,我选它是为了测试打包后的文件的读写,结果和正常的没什么两样,也就是说对SQLite数据库的操作也应该不会有什么问题。Thinstall的运行时,似乎是在"C:\Documents and Settings\Administrator\Application Data\Thinstall"建立了虚拟目录,所以air文件原来包含的数据库也会被放到这个地方。
总结一下,通过Thinstall的打包,省去了AIR的Runtime安装过程,AIR作品发布部署变得比较自由,这是一个比较重要的解决方案,现在AIR剩下的就只有一个吃内存的问题了,这个不是决定性的问题,完全在接受范围之内。