第一,系统内存不足导致死机;第二,软件与操作系统的兼容不好导致死机;第三,操作不当导致死机;第四,环境温度偏低导致死机。第五,待机时无端死机(这是广大机友遇到最多的,也是最头痛的)别着急,解决的办法还是有的!
1.系统内存不足导致死机
我们先澄清一个概念,我们通常所说的内存,是指系统的缓存,也就是用“显示电量”软件看到的“存储内存”,这个缓存通常比较小,不到1兆,它是storage、storage card和机器自身ROM中程序运行时即将用到的数据的缓存区,当storage、storage card、机器自身ROM和机器cpu之间的数据交换的时候扮演桥梁的角色。这个桥梁,却成往往为机器死机的罪魁祸首,通常的机器死机或多或少都与它有关。以后我们提到的内存,就是这个“存储内存”而不是什么“storage”大家要注意!storage相当于我们的电脑硬盘,在手机中和storage card一样,只是存储设备,并不是什么内存(在手机中有一个有趣的现象,就是我们把机器自带的存储部分就叫内存,这的确误导了很多人)。好了,内存到底是什么我们明白了,接下来我们就说说storage空间不足为什么会导致小五死机。
先举个例子吧:还记得早些年的老电脑吗?它们通常硬盘都不会很大,当我们疯狂向里面存储东西,即将把硬盘塞满但还未满时(比如还剩100多兆空间),电脑经常出现的情况吗?对了!那就是——蓝屏。为什么蓝屏呢?不是还有100兆可以用的吗?这就要从电脑的存储数据的原理入手:电脑无论在运行什么程序的时候,都要把这个程序要用到的相关数据从硬盘读出来,存到内存中,然后cpu再把它进行计算时用的数据从内存取出来(这里面还要经过cpu自带的一级二级缓存这个“桥梁”,一级、二级缓存在内存条和cpu之间所扮演的角色就相当于内存条在硬盘和cpu之间所扮演的角色一样,起到加快数据交换的作用)
,读到cpu中进行计算,要知道cpu从内存条中读数据要比从硬盘直接读数据快的多,这样就大大提高了程序执行的速度。计算完毕后,cpu就执行计算的结果,比如计算结果是执行一条指令:打开文件夹,那么电脑就会把文件夹里的内容显示出来。再比如我们正在输入一篇文档,电脑的cpu通过我们敲击键盘计算出我们输入的是什么文字,那么它把我们输入的文字放在那里了呢,就是放在内存中,直到我们给它一个命令,让它把我们输入的文字“存盘”,它才会把我们输入的内容从内存条中转储到硬盘上。然而事实是,电脑之所以能运行,都是由于有cpu的计算,我们一切的动作,甚至包括显示器显示,包括我们移动一下鼠标,都要经过cpu的计算和指挥,而这些计算和指挥的复杂庞大的中间结果,往往都要暂时存储在内存
条中,只有cpu认为内存已经装不下了,或是我们给了电脑一个命令,命令它存盘,才会转存在硬盘上,这个过程中硬盘一直在告诉旋转,随时准备接受从内存转储过来的数据。而cpu这时还要抽出精力来时时检测存储在硬盘上的位置,以便下次再存储时从这个位置接上。而我们的硬盘在装的差不多快满时,往往那点剩余空间都以碎片形式存在,更增加了cpu时时检测存储在硬盘位置上的难度,加之以前的cpu运行速度不是很快,内存条又不是很大,这种转储就要经常进行,这种大量的数据交换造成了cpu疯狂的运算,弄不好就造成死机。这就是为什么电脑剩余空间不多时经常蓝屏或死机的原因。
好了,说了这么多电脑,无非就是要抛砖引玉,把话题引到我们的smartphone上,前面说过,手机里storage和storage card都是手机里的存储设备,不是真正的“内存”,只是相当于电脑里的硬盘,而真正的内存是不到1兆空间的“存储内存”(这个我们通过软件“显示电量”可以看到的,或者是文件管理器里的“系统信息”都可以看到)这个“存储内存”才是真正相当于电脑里的“内存条”。话说到这里已经很明白了,为什么小五storage空间不足时比较容易死机,smartphone系统和windows系统的相通之处,对照上面的电脑蓝屏,不用再多说了吧。
大家都用OxiosHibernat这个释放内存的软件吧,有没有注意到一个很有趣的现象?那就是无论你在什么情况下,无论你的系统有多么慢,无论你在释放内存之前用了什么程序,只要你点击了OxiosHibernat来释放内存,被释放的内存从来都没有超过888k,这就对了,因为小五的“存储内存”本身才888k,你释放的怎么可能超过它呢。我们这个大名顶顶的释放内存软件,释放的就是相当于电脑里内存条的手机里的内存“存储内存”,而不是什么storage 和 storage card。
2.操作不当引起死机
关于操作不当导致死机的情况是可以避免的,除非你没有任何使用电脑的经验。小五虽然是智能手机,但是无论是操作系统还是cpu,都无法与电脑的相比,所以建议机友最好要“单线程使用”,既最好在程序正在执行的时候(出现“忙”符号时)不要去干其他的事情,比如你的小五正在搜索你卡里的图片,这个时候你按了其他的按键,也许你是想退出搜索,但执着的小五非要搜索到底不可,双方僵持的结果常常是——死机。
3.环境温度过低导致死机
长期以来关于环境温度是否能导致死机,广大机友一直争论不休,答案是肯定的,过低的温度的确能导致小五死机!但是,这不是小五的缺陷,事实恰恰相反,这是小五的一个并不高明的自我保护功能。windowsmobile2003操作系统具有检测环境温度的功能。我们用的“温度计”软件就是依赖于windowsmobile2003操作系统而检测温度的,实际上它是把操作系统自身检测到的温度读出来而已,并不是“温度计”这个软件自己能检测硬件温度。有人说,
“温度计”检测的是电池的温度,这是片面的,它实际上是在windowsmobile2003操作系统里找到可以判断某部分硬件电流电压的那段代码,通过换算来测量温度的。而这段代码是受硬件控制的,也就是说这个硬件的电电压对温度反应相当敏感,这个硬件通常是cpu或者是“缓存”(不是内存,即不是通常所说的storage)当然有时也是电池。这就是为什么“温度计”在有些515上的windowsmobile2003上可以用,但在某些565机友的windowsmobile2003SE上就用不了,原因是2003和2003SE在代码段上有很大区别,“温度计”还在原来的位置找那段代码,当然会找不到。即使是同一个机器,如果换了一块其他牌子的电池,有时候也会因为代码段的变化而读不出温度来。正是这种温度的变化引起机子内部的硬件电流或电压变化,电流或电压的变化又引起系统监测部分的反应,但是由于软件设计的不周全,也许是设计上的纰漏,也许是设计师们根本没有考虑,让操作系统自生自灭,甚至以“死机”来达到对温度的对抗和阻止机器继续运行,的确是系统设计者应该解决的大问题!那么为什么非要让windowsmobile2003操作系统对低温有反应呢?过多的解释我不想多谈,这涉及到液晶的工作原理等等,为了使小五的液晶屏正常显示就必须保证小五在一定温度范围内运行,所以操作系统必须要对温度起到监测作用。广大机友可以亲自做个实验,在比较低的温度下(例如低于5度)启动机器,在机器装载系统的画面出现以后,系统检测到温度过低,会自动关机,拒绝启动,实现自我保护。相反,在温度比较高的情况下,比如高于24度,或者是有阳光直接照射到屏幕上时,机器的反应速度要明显高得多,屏幕的反应时间至少要缩短一半,几乎按键的同时,显示已经完成,丝毫没有迟滞现象!值得一提的是,由于温度过低死机的现象不仅发生在待机时候,即使是在“飞行模式”下,照“死”不误!
结论:不管你的小五多么的坚强,一定要给它以温度。当由于温度过低造成死机有一次,就一定会有第二次,而且一次比一次死机的温度高,最后死机的温度的高的可能会让你无法忍受。尤其北方的朋友在冬季更要注意,最好把小五放在贴身内衣外面,不要象个农民似的把小五挂在腰间。
4.待机时无端死机
现在轮到待机时候无端死机的问题了。待机时死机,大部分是由于windowsmobile2003操作系统的软件运行方式造成的。我们知道,我们的手机通常是用来打电话的,这也是windowsmobile2003操作系统的软件设计师们优先考虑的事情,所以,在手机待机时,绝大部分手机资源优先分配给待机信号部分,而另外一方面,windowsmobile2003操作系统还要兼顾我们自己DIY的软件,要每隔一段时间自动搜索我们安装的软件的信息,并且要通过缓存来做记录(注意是“缓存”,就是前面说过的“存储内存”,不是“storage”)。如果这个记录很长,而且比较复杂,在操作系统忙于和基站信号联系的同时,又要搜索机器信息,还要做记录,就有可能导致塞车——待机时死机。这就是为什么会出现象OxiosHibernat这样的释放内存(缓存)的软件了,的确,当机器每隔一段时间就自动重新装载搜索到的信息,而原来的信息又得不到释放,缓存(不是指storage)空间越来越小,死机概率增加!这个现象在spv和515上比较严重,而在565由于采用的是2003SE,加上缓存增加,这种现象有所减少。
那么如何解决这个问题呢,其实大家都会,只是要注意先后顺序:首先,硬启,恢复出厂设置。然后在不安装任何软件、不插存储卡、温度起码高于15度以上的环境下安全运行7天(所谓安全运行,是指中间不允许出现一次死机现象,这样就要求在关机的情况下环境温度也不允许低于15度,尤其是在早晨开机时,一定要保证机器的体温高于15度。如果中间出现一次死机,就要重新硬启,重新计算天数),这样做的目的是windowsmobile2003操作系统在搜索自身自带的软件(在ROM中)时,发现没有“入侵者”,也就是没有用户自己后安装的软件(在storage和存储卡中)而做一个标记。这个标记做好后,当过了安全期,用户自己安装软件时,机器再搜索,就从这个标记下面开始搜索,即只搜索storage和sorage card,而越过了对自带软件的搜索。否则,我们一旦硬启后马上就安装新软件,那么每次机器开机时都认为是新安装了大量的软件,每次开机时都会告诉自己有大量的入侵者,从而愚蠢的无限次每隔一段时间自动重新搜索所有空间的新软件的信息,增加了机器搜索的负担,其结果往往是,刚开始的时候还不出现什么问题,随着时间的推移,对我们对自己安装的软件的使用,新的信息(包括每次使用的各种信息,而这种信息往往成为手机中的垃圾,大多数用户经
常发现手机内存变小了,就是这种信息造成的)不断被写进原程序的记录,系统在每隔一段时间自动搜索时,负担逐渐增加,最后的结果是——待机时莫名其妙地死机。
在安全期期间,用户要注意“考机”,所谓“考机”,就是你在这7天内要频繁地使用机器,凡是机器自带的功能,比如什么“凌云壮志”,什么“快捷方式”,各种设置,都用一用,增加系统对软件的熟知度。
当安全期过后,才可以插上存储卡,才可以向存储卡和storage里安装软件。从这以后,机器每次搜索时,实际上只是在搜索存储卡和storage里的软件信息,而会忽略对手机自身的搜索。(在这里我再强调一点:有些没有安装存储卡的手机也死机,很大原因就是操作系统对软件的熟知度不够。要注意在安全期期间考机,另外一定要在安全期过后,才可以向手机storage里安装软件。)当我们按照上述方法做了,再插上存储卡时,从IA-FileManager(文件管理器)里可以看到多了一个“storage card”这个storage card,从今往后机器是不会主动去搜索它的,所以所有安装在卡里的软件的图标,在开机后都会显示成同一个样子——未经识别的标签样式。只有当我们给机器以刺激,命令它去搜索卡里的信息,它才会去搜索。
我们可以做个实验:机器先关机,再开机,按左软键“开始”-“其他”-“其他”
……你会发现,所有安装在卡里的软件图标都是未经识别的标签样式。然后按“首页”返回,再“开始”-“其他”-“其他”……,同样,卡里的软件怎么还是未经识别的标签标!?这就对了,机器没有主动搜索卡里的软件信息,缓存里的软件信息量减少了,这样的机器通常是不容易死机的,这就是我们的目的所在。那么怎样刺激机器让它搜索呢?我们可以按“其他”按到最后一页,进入“游戏”,打开“凌云壮志”玩玩,然后关掉游戏,返回首页,这回再看看安装在卡里的软件图标,怎么样,图标全变成本来的面目了吧。为什么玩“凌云壮志”就能刺激机器机器重新搜索程序信息呢?首先,这是个大型游戏;其次,这个游戏是机器自带的。当我们运行这个游戏时,就要占用很多资源,就是通常我们说的空间,这个“空间”当然就包括“缓存”,所以当大量的数据涌过来,机器就不得不把原来搜索到的程序信息清空掉,倒出空间全力以赴保证游戏的运行。当游戏结束后,空间恢复了,机器不得不重新搜索已经安装的软件信息了。这一搜索,安装在卡里的信息就被读进缓存了,图标的样子也就恢复了。
现在我们做个小结:按照我介绍的方法,对于storage来说,系统每次在开机时就已经搜索它的信息了,所以安装在storage里的软件信息,图标始终是原来本身的样子,而对于存卡storage card,机器要受刺激才能去搜索里面的软件信息,于是有人会问:这样一来,一旦卡里的软件信息也进入缓存了,缓存里的信息不是和原来一样多,不是照样容易死机吗?不是的,其实我在前面已经说过,按照这个方法的“制作”的机器,在安全期期间,系统已经做了标记的,也就是说本次搜索到的,只是仅是安装在卡里和storage里的软件信息,不包括ROM中的大量机器自身的信息。这点信息机器完全“消化”得了的。
相反,如果有谁在硬启机器后马上就向storage里安装软件或立即插入存储卡向里安装东西,那么他的机器大多数时候在每次开机时就会从上到下搜索个遍,把所有软件信息(包括20几兆的大量机器自带的软件的相关信息)一个不落的纪录下来存到缓存中,为用户随时调用这些信息而准备着。其表现是开机后按左软键“开始”,要过3至4秒才可以进入下一页(这段时间机器正在搜索机器里所有已经安装的软件的信息和机器自带软件的信息),而且进入下一页后我们立刻就能看见安装在存储卡里的软件的图标已经变回了它原来的真实样子,这种机器通常是不稳定的,死机的概率增加。而且为了保持软件信息的最新,这种搜索还会每隔一段时间自动重复,但是smartphone还未聪明到可以把原来的信息覆盖,反而在原信息的后面追加存储。这种没完没了的充塞一旦把可怜的缓存空间塞满,机器必死无疑。两种方法的区别在于:前一种只搜索一次;后一种无限重复,死机概率增加。
总之:不管你的手机有没有存储卡,要想待机是不死机要做到三步:
一、硬启。二、不插存储卡,保温,考机一周。三、一周后再插卡,装软件
温馨提示:答案为网友推荐,仅供参考