以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

手机无缘无故响起音乐,手机老师自动放歌

  

  系统内存不足导致的死机。   

  

  首先,让我们澄清一个概念。我们通常所说的内存是指系统的缓存,也就是“显示电源”软件看到的“内存”。这个缓存通常比较小,不到1万亿,是手机存储、存储卡存储以及程序在机器自身系统运行时要用到的数据的缓存区。它在手机存储、存储卡存储、机器自身系统与机器cpu之间的数据交换时起着桥梁作用。然而,这个桥通常是机器崩溃的罪魁祸首,这或多或少与通常的机器崩溃有关。我们未来提到的内存就是这个“内存”,而不是“手机存储”。请注意!手机存储相当于我们电脑的硬盘,它和存储卡存储一样,只是一个存储设备,而不是内存(手机中一个有趣的现象是,我们把内存部分称为机器本身,这确实误导了很多人)。好了,我们明白什么是记忆了。接下来,我们来谈谈手机存储空间不足导致死机的原因。   

  

  先举个例子:记得早些年的旧电脑!通常他们的硬盘都不是很大。当我们在疯狂地往里面存储东西,硬盘快满了但还没满的时候(比如还剩100多兆的空间),电脑经常出现吗?没错!那是蓝屏。为什么是蓝屏?不是还有100兆可以用吗?这要从计算机中存储数据的原理说起:每当计算机运行任何程序时,都要从硬盘中读取这个程序中使用的相关数据并存储到内存中,然后cpu会从内存中取出其计算中使用的数据(这需要经过cpu带来的一级和二级缓存的“桥梁”。一级缓存和二级缓存在硬盘和cpu之间起到和内存一样的作用,起到加速数据交换的作用。)读入cpu进行计算时,需要知道cpu从内存读取数据的速度比直接从硬盘读取数据的速度要快,从而大大提高了程序执行的速度。计算结束后,cpu会执行计算结果,比如计算结果是执行一个指令:打开文件夹,然后电脑会显示文件夹中的内容。比如我们正在输入一个文档,计算机的cpu通过敲击键盘计算出我们输入了哪些单词,于是它就把我们输入的单词放在那里,也就是放在内存中,直到我们给它一个命令“保存”我们输入的单词,它就会把我们输入的内容从内存转移到硬盘上。然而,事实是,计算机之所以能运行,是因为对cpu的计算。我们所有的动作,甚至包括显示器,包括移动鼠标,都要经过cpu的计算和命令,而这些计算和命令的复杂而庞大的中间结果往往被临时存储在内存库中。只有当cpu认为内存无法再加载,或者我们给电脑一个保存的命令,才会转移到硬盘上。在这个过程中,硬盘将始终被存储。这时候cpu就要有多余的精力去时不时的检测硬盘上存储的位置,这样下次再存储的时候就可以从这个位置连接了。当我们的硬盘快满的时候,剩余的空间往往以碎片的形式存在,这就使得cpu更难时不时地检测并将其存储在硬盘位置。另外,以前的cpu运行速度不是很快,内存库也不是很大,所以这种转储应该经常进行,而这种大量的数据交换导致cpu疯狂运行,可能会导致崩溃。这就是为什么当没有多少剩余空间时,计算机经常会变蓝或崩溃。   

  

  好了,说这么多电脑,无非是抛砖引玉,把话题介绍到我们手机上。如前所述,手机中的存储和存储卡存储都是手机中的存储设备,并不是真正的“内存”,而只是相当于电脑中的硬盘,真正的内存是空间不足1万亿的“内存”(我们可以通过软件“显示电量”或者文件管理器中的“系统信息”看到)。这里的话已经说得很清楚了,为什么手机存储空间不足的时候很容易死机,智能手机系统和电脑windows系统的相似之处都和上面电脑的蓝屏做了对比,就不多说了。   

  

  让我们都使用OxiosHibernat,一个释放内存的软件。你有没有注意到一个非常有趣的现象?也就是说,不管你处于什么情况,不管你的系统有多慢,不管你在释放内存之前用的是什么程序,只要你点击OxiosHibernat释放内存,释放的内存永远不会超过888k。没错,因为“存储内存”本身只有888k,怎么能释放的比它多呢?我们著名的内存释放软件释放的内存相当于电脑和手机中的内存,而不是手机存储器和存储卡存储器。   

  

  除非你没有任何计算机经验,否则操作不当导致的崩溃是可以避免的。虽然是智能手机,但操作系统和cpu都比不上电脑。所以建议电脑朋友单线程使用,最好不要在程序执行时(出现“忙”符号时)做其他事情。例如,你的手机正在你的卡中搜索图片,此时你按下了其他按钮。也许你想退出搜索,但执着的手机却要搜索到底,双方僵持不下。   

  

  环境温度低引起的恐慌。   

  

  长期以来,大多数电脑朋友一直在争论环境温度是否会导致崩溃。答案是肯定的,温度太低确实会造成撞车!但是,这并不是手机的缺陷,相反,是自我保护功能差。Windowsmobile2003操作系统具有检测环境温度的功能。我们使用的“温度计”软件依靠windowsmobile2003操作系统来检测温度。其实它只是读出操作系统本身检测到的温度,并不是“温度计”软件可以自己检测硬件温度。有人说“温度计”检测电池的温度,这是片面的。事实上,它在windowsmobile2003操作系统中找到了可以判断某些硬件的电流和电压的代码,并通过转换来测量温度。这个代码是由硬件控制的,也就是说这个硬件的电压对温度很敏感,这个硬件通常是cpu或者“缓存”。   

(不是内存,即不是通常所说的手机存储)当然有时也是电池。这就是为什么“温度计”在有些手机上的windowsmobile2003上可以用,但在某些机友的windowsmobile2003SE上就用不了,原因是2003和2003SE在代码段上有很大区别,“温度计”还在原来的位置找那段代码,当然会找不到。即使是同一个机器,如果换了一块其他牌子的电池,有时候也会因为代码段的变化而读不出温度来。正是这种温度的变化引起机子内部的硬件电流或电压变化,电流或电压的变化又引起系统监测部分的反应,但是由于软件设计的不周全,也许是设计上的批漏,也许是设计师们根本没有考虑,让操作系统自生自灭,甚至以“死机”来达到对温度的对抗和阻止机器继续运行,的确是系统设计者应该解决的大问题!那么为什么非要让windowsmobile2003操作系统对低温有反应呢?过多的解释我不想多谈,这涉及到液晶的工作原理等等,为了使手机的液晶屏正常显示就必须保证手机在一定温度范围内运行,所以操作系统必须要对温度起到监测作用。广大机友可以亲自做个实验,在比较低的温度下(例如低于5度)启动机器,在机器装载系统的画面出现以后,系统检测到温度过低,会自动关机,拒绝启动,实现自我保护。

  

相反,在温度比较高的情况下,比如高于24度,或者是有阳光直接照射到屏幕上时,机器的反应速度要明显高得多,屏幕的反应时间至少要缩短一半,几乎按键的同时,显示已经完成,丝毫没有迟滞现象!值得一提的是,由于温度过低死机的现象不仅发生在待机时候,即使是在“飞行模式”下,照“死”不误!

  

结论:不管你的手机多么的坚强,一定要给它点温度。当由于温度过低造成死机有一次,就一定会有第二次,而且一次比一次死机的温度高,最后死机的温度的高的可能会让你无法忍受。尤其北方的朋友在冬季更要注意,最好把手机放在贴身内衣外面,不要象个农民似的把手机挂在腰间。

  

待机时无端死机

  

现在轮到待机时候无端死机的问题了。待机时死机,大部分是由于windowsmobile2003操作系统的软件运行方式造成的。我们知道,我们的手机通常是用来打电话的,这也是windowsmobile2003操作系统的软件设计师们优先考虑的事情,所以,在手机待机时,绝大部分手机资源优先分配给待机信号部分,而另外一方面,windowsmobile2003操作系统还要兼顾我们自己DIY的软件,要每隔一段时间自动搜索我们安装的软件的信息,并且要通过缓存来做记录(注意是“缓存”,就是前面说过的“存储内存”,不是“手机存储”)。如果这个记录很长,而且比较复杂,在操作系统忙于和基站信号联系的同时,又要搜索机器信息,还要做记录,就有可能导致待机时死机。这就是为什么会出现象OxiosHibernat这样的释放内存(缓存)的软件了,的确,当机器每隔一段时间就自动重新装载搜索到的信息,而原来的信息又得不到释放,缓存(不是指手机存储)空间越来越小,死机概率增加!这个现象在少数手机上比较严重,而由于采用的是2003SE,加上缓存增加,这种现象有所减少。

  

那么如何解决这个问题呢,其实大家都会,只是要注意先后顺序:首先,硬启,恢复出厂设置。然后在不安装任何软件、不插存储卡、温度起码高于15度以上的环境下安全运行7天(所谓安全运行,是指中间不允许出现一次死机现象,这样就要求在关机的情况下环境温度也不允许低于15度,尤其是在早晨开机时,一定要保证机器的体温高于15度。如果中间出现一次死机,就要重新硬启,重新计算天数),这样做的目的是windowsmobile2003操作系统在搜索自身自带的软件(在系统中)时,发现没有“入侵者”,也就是没有用户自己后安装的软件(在手机存储和内存卡存储中)而做一个标记。这个标记做好后,当过了安全期,用户自己安装软件时,机器再搜索,就从这个标记下面开始搜索,即只搜索手机存储和内存卡存储,而越过了对自带软件的搜索。否则,我们一旦硬启后马上就安装新软件,那么每次机器开机时都认为是新安装了大量的软件,每次开机时都会告诉自己有大量的入侵者,从而愚蠢的无限次每隔一段时间自动重新搜索所有空间的新软件的信息,增加了机器搜索的负担,其结果往往是,刚开始的时候还不出现什么问题,随着时间的推移,对我们对自己安装的软件的使用,新的信息)包括每次使用的各种信息,而这种信息往往成为手机中的垃圾,大多数用户经常发现手机内存变小了,就是这种信息造成的。不断被写进原程序的记录,系统在每隔一段时间自动搜索时,负担逐渐增加,最坏的结果是待机时莫名其妙地死机。

  

在安全期期间,用户要注意“考机”,所谓“考机”,就是你在这7天内要频繁地使用机器,凡是机器自带的功能,比如“游戏”,什么“快捷方式”,各种设置,都用一用,增加系统对软件的熟知度。

  

当安全期过后,才可以插上存储卡,才可以向存储卡和手机里安装软件。从这以后,机器每次搜索时,实际上只是在搜索存储卡和手机里的软件信息,而会忽略对手机自身的搜索。(在这里我再强调一点:有些没有安装存储卡的手机也死机,很大原因就是操作系统对软件的熟知度不够。要注意在安全期期间考机,另外一定要在安全期过后,才可以向手机存储里安装软件)。当我们按照上述方法做了,再插上存储卡时,从文件管理器里可以看到多了一个“storagecard”这个storagecard,从今往后机器是不会主动去搜索它的,所以所有安装在卡里的软件的图标,在开机后都会显示成同一个样子未经识别的标签样式。只有当我们给机器以刺激,命令它去搜索卡里的信息,它才会去搜索。

  

我们可以做个实验:机器先关机,再开机,按左软键“开始”/“其他”/“其他”,你会发现,所有安装在卡里的软件图标都是未经识别的标签样式。然后按“首页”返回,再“开始”/“其他”/“其他”,同样,卡里的软件怎么还是未经识别的标签标!这就对了,机器没有主动搜索卡里的软件信息,缓存里的软件信息量减少了,这样的机器通常是不容易死机的,这就是我们的目的所在。那么怎样刺激机器让它搜索呢?我们可以按“其他”按到最后一页,进入“游戏”,打开“凌云壮志”玩玩,然后关掉游戏,返回首页,这回再看看安装在卡里的软件图标,怎么样,图标全变成本来的面目了吧。为什么玩“游戏”就能刺激机器机器重新搜索程序信息呢?首先,这是个大型游戏;其次,这个游戏是机器自带的。当我们运行这个游戏时,就要占用很多资源,就是通常我们说的空间,这个“空间”当然就包括“缓存”,所以当大量的数据涌过来,机器就不得不把原来搜索到的程序信息清空掉,倒出空间全力以赴保证游戏的运行。当游戏结束后,空间恢复了,机器不得不重新搜索已经安装的软件信息了。这一搜索,安装在卡里的信息就被读进缓存了,图标的样子也就恢复了。

  

软件问题

  

主要是因为手机的软件设计上存在致命的BUG从而导致的死机.例如,当手机运行一个程序的时候,如果在子程序和主程序之间存在一个逻辑上的错误的话,每当手机在运行到该程序的时候就会发生指令错误,有点象电脑中的非法操作,这时就有可能出现死机.由于软件的BUG导致的死机,一般都具有这样的特征:每当运行到某一命令时,即每次进行同样的操作的时候就出现死机.如果手机老是这样死机的话,就可以初步断定是由于软件的问题死机.解决这样的死机一般进行软件升级就可以解决,不过,象这样的升级只能对软件版本进行升级,升完级以后手机的功能不会有变化,但是在升级中解决了一些软件的BUG,降低了死机的几率.升级中对软件不熟这样就给手机造成了不稳定因素,如果做升级的话请事先做好备份,以免手机升级失败后软件不能恢复.