重点来了,为什么安卓几乎是秒卸载,而Windows很慢。反之,删除太多文件,时间会很长,积少成多。现在所有的软件都很流氓。想卸载一个软件,要经历各种操蛋的选择过程,卸载、修复、狠心卸载、暂时不卸载等等。很头疼。

为什么手机程序安装时很久,卸载就一两秒的时间?

这个问题说起来也不复杂,简单的比喻来讲,这么说吧,嗯,你建一栋楼可能要花费半年的时间,但是你拆他的话,请个爆破队一周之内就搞定了。说得通俗一点吧,是这样的。系统在识别安装文件的情况下是一个解压缩的过程,这个解压缩的过程在安卓系统里面我们是看不到的。但是如果你在用windows系统,你是可以看得到安装进度的,比如说关键数据要写入系统盘c盘,写入注册表写入硬盘分区簇,然后剩下的安装文件会安装到您指定的位置,那手机里面界面做了很多的精简,但是道理是一样的。

这个过程我们是看不到,但是后台仍然在执行解压缩和重新建值的这么一个过程。但是如果是现卸载的话,那就很简单啦,直接全部打包删除,就没有那么复杂的执行啦。但是不知道从何时起,在windows系统中,不知道大家有没有感觉到。现在所有的软件都很流氓,你想卸载一个软件要经历各种操蛋的选择过程,什么卸载啊,修复啊,狠心卸载啊,暂时不卸载啊等等等等乱七八糟的选项,很头疼。

为什么手机卸载一个几个G的软件瞬间就完成了,而电脑却需要很长的时间?

苹果iOS不了解,所以这里只讨论安卓和Windows在安装软件方面的区别。Windows的大型软件通常都不是绿色的,需要安装,而且安装后的文件还不止一个。往往至少有一个exe文件,还有若干个dll,以及其他的资源文件(图片视频本地数据库等)。其中dll叫做动态链接库,可以用来和其他程序进行共享。

比方说视频解码功能,就可以编写一个专门的dll。另外Windows还有一个com机制,它的dll共享功能更加强大,但是必须注册。所谓注册,就是写入注册表,通知操作系统其他软件如何调用它。请注意,虽然开发人员不会经常自己写dll,但是会调用别人写好的共享dll,所谓的拿来主义。而使用它们,就必须在安装时也一并装上,注册上。

Windows的这种共享机制,使得Windows大型程序往往都有很多很多文件,还有很多很多写入注册表和写入系统目录的操作。安卓的安装就显得简单很多。安卓同样也需要共享库,这是所有大型程序都必须的。但是安卓在安装是会把这些库,还有资源文件全部压缩打包(zip),变成一个apk文件。如果一个APP有1G,即是指这个apk单个文件有1G。

如果是Windows,则可能是指成千上万个文件加起来1G。因为Windows没有打包。安卓的这种安装部署方式的好处就是简单,坏处就是没有实现真正的共享,造成空间浪费。这个好处坏处就不再展开讨论。反正大家现在明白了,安装时,安卓是将所有文件打包成一个文件,Windows不打包。在安装时,不管是Windows还是安卓,面对大型软件都是比较慢的,甚至超过1分钟。

比如安卓,会将1个G的单个apk复制到手机存储上,有的还需要预编译。不过这不是重点,我们关注的是卸载速度。重点来了,为什么卸载时安卓几乎是秒卸,而Windows很慢?刚说了,安卓安装时只有一个apk文件,卸载的时候删除这一个文件就可以了,一秒钟都用不了。当然有时也需要清理这个apk所产生的垃圾文件,不过按照安卓的惯例,数量都不多。

再看Windows,文件很多,一堆dll,一堆资源文件,注册表也要一个一个清理。我们来看看为什么删除一个大文件这么快,一个G甚至几十个G都不到一秒。这适用于Android和Windows,删除单个文件很快。因为在删除一个文件的时候,文件并没有被完全清除,只是将文件被占用的区域标记为已删除。


文章TAG:为什么等待卸载时间这么长  卸载  程序  手机  等待  
下一篇