· 我們先澄清一個(gè)概念,我們通常所說(shuō)的內存,是指系統的緩存,也就是用顯示電量軟件看到的內存,這個(gè)緩存通常比較小,不到1兆,它是手機儲存、內存卡存儲和機器自身系統中程序運行時(shí)即將用到的數據的緩存區,當手機存儲、內存卡存儲、機器自身系統和機器cpu之間的數據交換的時(shí)候扮演橋梁的角色。這個(gè)橋梁,卻成往往為機器死機的罪魁禍首,通常的機器死機或多或少都與它有關(guān)。以后我們提到的內存,就是這個(gè)內存而不是什么手機存儲大家要注意!手機存儲相當于我們的電腦硬盤(pán),在手機中和內存卡存儲一樣,只是存儲設備,并不是什么內存(在手機中有一個(gè)有趣的現象,就是我們把機器自帶的存儲部分就叫內存,這的確誤導了很多人)。好了,內存到底是什么我們明白了,接下來(lái)我們就說(shuō)說(shuō)手機存儲空間不足為什么會(huì )導致死機。
· 先舉個(gè)例子吧:還記得早些年的老電腦嗎!它們通常硬盤(pán)都不會(huì )很大,當我們瘋狂向里面存儲東西,即將把硬盤(pán)塞滿(mǎn)但還未滿(mǎn)時(shí)(比如還剩100多兆空間),電腦經(jīng)常出現的情況嗎?對了!那就是藍屏。為什么藍屏呢?不是還有100兆可以用的嗎?這就要從電腦的存儲數據的原理入手:電腦無(wú)論在運行什么程序的時(shí)候,都要把這個(gè)程序要用到的相關(guān)數據從硬盤(pán)讀出來(lái),存到內存中,然后cpu再把它進(jìn)行計算時(shí)用的數據從內存取出來(lái)(這里面還要經(jīng)過(guò)cpu自帶的一級二級緩存這個(gè)橋梁,一級、二級緩存在內存條和cpu之間所扮演的角色就相當于內存條在硬盤(pán)和cpu之間所扮演的角色一樣,起到加快數據交換的作用),讀到cpu中進(jìn)行計算,要知道cpu從內存條中讀數據要比從硬盤(pán)直接讀數據快的多,這樣就大大提高了程序執行的速度。計算完畢后,cpu就執行計算的結果,比如計算結果是執行一條指令:打開(kāi)文件夾,那么電腦就會(huì )把文件夾里的內容顯示出來(lái)。再比如我們正在輸入一篇文檔,電腦的cpu通過(guò)我們敲擊鍵盤(pán)計算出我們輸入的是什么文字,那么它把我們輸入的文字放在那里了呢,就是放在內存中,直到我們給它一個(gè)命令,讓它把我們輸入的文字存盤(pán),它才會(huì )把我們輸入的內容從內存條中轉儲到硬盤(pán)上。然而事實(shí)是,電腦之所以能運行,都是由于有cpu的計算,我們一切的動(dòng)作,甚至包括顯示器顯示,包括我們移動(dòng)一下鼠標,都要經(jīng)過(guò)cpu的計算和指揮,而這些計算和指揮的復雜龐大的中間結果,往往都要暫時(shí)存儲在內存條中,只有cpu認為內存已經(jīng)裝不下了,或是我們給了電腦一個(gè)命令,命令它存盤(pán),才會(huì )轉存在硬盤(pán)上,這個(gè)過(guò)程中硬盤(pán)一直在告訴旋轉,隨時(shí)準備接受從內存轉儲過(guò)來(lái)的數據。而cpu這時(shí)還要抽出精力來(lái)時(shí)時(shí)檢測存儲在硬盤(pán)上的位置,以便下次再存儲時(shí)從這個(gè)位置接上。而我們的硬盤(pán)在裝的差不多快滿(mǎn)時(shí),往往那點(diǎn)剩余空間都以碎片形式存在,更增加了cpu時(shí)時(shí)檢測存儲在硬盤(pán)位置上的難度,加上以前的cpu運行速度不是很快,內存條又不是很大,這種轉儲就要經(jīng)常進(jìn)行,這種大量的數據交換造成了cpu瘋狂的運算,弄不好就造成死機。這就是為什么電腦剩余空間不多時(shí)經(jīng)常藍屏或死機的原因。
· 好了,說(shuō)了這么多電腦,無(wú)非就是要拋磚引玉,把話(huà)題引到我們的手機上,前面說(shuō)過(guò)手機里的存儲和內存卡存儲都是手機里的存儲設備,不是真正的內存,只是相當于電腦里的硬盤(pán),而真正的內存是不到1兆空間的內存(這個(gè)我們通過(guò)軟件顯示電量可以看到的,或者是文件管理器里的系統信息都可以看到)這個(gè)內存才是真正相當于電腦里的內存條。話(huà)說(shuō)到這里已經(jīng)很明白了,為什么手機存儲空間不足時(shí)比較容易死機,smartphone系統和電腦windows系統的相通之處,對照上面的電腦藍屏,不用再多說(shuō)了吧。
· 大家都用OxiosHibernat這個(gè)釋放內存的軟件吧,有沒(méi)有注意到一個(gè)很有趣的現象?那就是無(wú)論你在什么情況下,無(wú)論你的系統有多么慢,無(wú)論你在釋放內存之前用了什么程序,只要你點(diǎn)擊了OxiosHibernat來(lái)釋放內存,被釋放的內存從來(lái)都沒(méi)有超過(guò)888k,這就對了,因為存儲內存本身才888k,你釋放的怎么可能超過(guò)它呢。我們這個(gè)大名頂頂的釋放內存軟件,釋放的就是相當于電腦里內存條和手機里的內存,而不是什么手機存儲和內存卡存儲。
·
· 關(guān)于操作不當導致死機的情況是可以避免的,除非你沒(méi)有任何使用電腦的經(jīng)驗。雖然是智能手機,但是無(wú)論是操作系統還是cpu,都無(wú)法與電腦的相比,所以建議機友最好要單線(xiàn)程使用,既最好在程序正在執行的時(shí)候(出現忙符號時(shí))不要去干其他的事情,比如你的手機正在搜索你卡里的圖片,這個(gè)時(shí)候你按了其他的按鍵,也許你是想退出搜索,但執著(zhù)的手機非要搜索到底不可,雙方僵持的結果常常是死機。
· 環(huán)境溫度過(guò)低導致死機
· 長(cháng)期以來(lái)關(guān)于環(huán)境溫度是否能導致死機,廣大機友一直爭論不休,答案是肯定的,過(guò)低的溫度的確能導致死機!但是,這不是手機的缺陷,事實(shí)恰恰相反,這是一個(gè)并不高明的自我保護功能。windowsmobile2003操作系統具有檢測環(huán)境溫度的功能。我們用的溫度計軟件就是依賴(lài)于windowsmobile2003操作系統而檢測溫度的,實(shí)際上它是把操作系統自身檢測到的溫度讀出來(lái)而已,并不是溫度計這個(gè)軟件自己能檢測硬件溫度。有人說(shuō),溫度計檢測的是電池的溫度,這是片面的,它實(shí)際上是在windowsmobile2003操作系統里找到可以判斷某部分硬件電流電壓的那段代碼,通過(guò)換算來(lái)測量溫度的。而這段代碼是受硬件控制的,也就是說(shuō)這個(gè)硬件的電壓對溫度反應相當敏感,這個(gè)硬件通常是cpu或者是緩存(不是內存,即不是通常所說(shuō)的手機存儲)當然有時(shí)也是電池。這就是為什么溫度計在有些手機上的windowsmobile2003上可以用,但在某些機友的windowsmobile2003SE上就用不了,原因是2003和2003SE在代碼段上有很大區別,溫度計還在原來(lái)的位置找那段代碼,當然會(huì )找不到。即使是同一個(gè)機器,如果換了一塊其他牌子的電池,有時(shí)候也會(huì )因為代碼段的變化而讀不出溫度來(lái)。正是這種溫度的變化引起機子內部的硬件電流或電壓變化,電流或電壓的變化又引起系統監測部分的反應,但是由于軟件設計的不周全,也許是設計上的批漏,也許是設計師們根本沒(méi)有考慮,讓操作系統自生自滅,甚至以死機來(lái)達到對溫度的對抗和阻止機器繼續運行,的確是系統設計者應該解決的大問(wèn)題!那么為什么非要讓windowsmobile2003操作系統對低溫有反應呢?過(guò)多的解釋我不想多談,這涉及到液晶的工作原理等等,為了使手機的液晶屏正常顯示就必須保證手機在一定溫度范圍內運行,所以操作系統必須要對溫度起到監測作用。廣大機友可以親自做個(gè)實(shí)驗,在比較低的溫度下(例如低于5度)啟動(dòng)機器,在機器裝載系統的畫(huà)面出現以后,系統檢測到溫度過(guò)低,會(huì )自動(dòng)關(guān)機,拒絕啟動(dòng),實(shí)現自我保護。
· 相反,在溫度比較高的情況下,比如高于24度,或者是有陽(yáng)光直接照射到屏幕上時(shí),機器的反應速度要明顯高得多,屏幕的反應時(shí)間至少要縮短一半,幾乎按鍵的同時(shí),顯示已經(jīng)完成,絲毫沒(méi)有遲滯現象!值得一提的是,由于溫度過(guò)低死機的現象不僅發(fā)生在待機時(shí)候,即使是在飛行模式下,照死不誤!
· 結論:不管你的手機多么的堅強,一定要給它點(diǎn)溫度。當由于溫度過(guò)低造成死機有一次,就一定會(huì )有第二次,而且一次比一次死機的溫度高,最后死機的溫度的高的可能會(huì )讓你無(wú)法忍受。尤其北方的朋友在冬季更要注意,最好把手機放在貼身內衣外面,不要象個(gè)農民似的把手機掛在腰間。
· 待機時(shí)無(wú)端死機
· 現在輪到待機時(shí)候無(wú)端死機的問(wèn)題了。待機時(shí)死機,大部分是由于windowsmobile2003操作系統的軟件運行方式造成的。我們知道,我們的手機通常是用來(lái)打電話(huà)的,這也是windowsmobile2003操作系統的軟件設計師們優(yōu)先考慮的事情,所以,在手機待機時(shí),絕大部分手機資源優(yōu)先分配給待機信號部分,而另外一方面,windowsmobile2003操作系統還要兼顧我們自己DIY的軟件,要每隔一段時(shí)間自動(dòng)搜索我們安裝的軟件的信息,并且要通過(guò)緩存來(lái)做記錄(注意是緩存,就是前面說(shuō)過(guò)的存儲內存,不是手機存儲)。如果這個(gè)記錄很長(cháng),而且比較復雜,在操作系統忙于和基站信號聯(lián)系的同時(shí),又要搜索機器信息,還要做記錄,就有可能導致待機時(shí)死機。這就是為什么會(huì )出現象OxiosHibernat這樣的釋放內存(緩存)的軟件了,的確,當機器每隔一段時(shí)間就自動(dòng)重新裝載搜索到的信息,而原來(lái)的信息又得不到釋放,緩存(不是指手機存儲)空間越來(lái)越小,死機概率增加!這個(gè)現象在少數手機上比較嚴重,而由于采用的是2003SE,加上緩存增加,這種現象有所減少。
· 那么如何解決這個(gè)問(wèn)題呢,其實(shí)大家都會(huì ),只是要注意先后順序:首先,硬啟,恢復出廠(chǎng)設置。然后在不安裝任何軟件、不插存儲卡、溫度起碼高于15度以上的環(huán)境下安全運行7天(所謂安全運行,是指中間不允許出現一次死機現象,這樣就要求在關(guān)機的情況下環(huán)境溫度也不允許低于15度,尤其是在早晨開(kāi)機時(shí),一定要保證機器的體溫高于15度。如果中間出現一次死機,就要重新硬啟,重新計算天數),這樣做的目的是windowsmobile2003操作系統在搜索自身自帶的軟件(在系統中)時(shí),發(fā)現沒(méi)有入侵者,也就是沒(méi)有用戶(hù)自己后安裝的軟件(在手機存儲和內存卡存儲中)而做一個(gè)標記。這個(gè)標記做好后,當過(guò)了安全期,用戶(hù)自己安裝軟件時(shí),機器再搜索,就從這個(gè)標記下面開(kāi)始搜索,即只搜索手機存儲和內存卡存儲,而越過(guò)了對自帶軟件的搜索。否則,我們一旦硬啟后馬上就安裝新軟件,那么每次機器開(kāi)機時(shí)都認為是新安裝了大量的軟件,每次開(kāi)機時(shí)都會(huì )告訴自己有大量的入侵者,從而愚蠢的無(wú)限次每隔一段時(shí)間自動(dòng)重新搜索所有空間的新軟件的信息,增加了機器搜索的負擔,其結果往往是,剛開(kāi)始的時(shí)候還不出現什么問(wèn)題,隨著(zhù)時(shí)間的推移,對我們對自己安裝的軟件的使用,新的信息)包括每次使用的各種信息,而這種信息往往成為手機中的垃圾,大多數用戶(hù)經(jīng)常發(fā)現手機內存變小了,就是這種信息造成的。不斷被寫(xiě)進(jìn)原程序的記錄,系統在每隔一段時(shí)間自動(dòng)搜索時(shí),負擔逐漸增加,最壞的結果是待機時(shí)莫名其妙地死機。
· 在安全期期間,用戶(hù)要注意考機,所謂考機,就是你在這7天內要頻繁地使用機器,凡是機器自帶的功能,比如游戲,什么快捷方式,各種設置,都用一用,增加系統對軟件的熟知度。
· 當安全期過(guò)后,才可以插上存儲卡,才可以向存儲卡和手機里安裝軟件。從這以后,機器每次搜索時(shí),實(shí)際上只是在搜索存儲卡和手機里的軟件信息,而會(huì )忽略對手機自身的搜索。(在這里我再強調一點(diǎn):有些沒(méi)有安裝存儲卡的手機也死機,很大原因就是操作系統對軟件的熟知度不夠。要注意在安全期期間考機,另外一定要在安全期過(guò)后,才可以向手機存儲里安裝軟件)。當我們按照上述方法做了,再插上存儲卡時(shí),從文件管理器里可以看到多了一個(gè)storagecard這個(gè)storagecard,從今往后機器是不會(huì )主動(dòng)去搜索它的,所以所有安裝在卡里的軟件的圖標,在開(kāi)機后都會(huì )顯示成同一個(gè)樣子未經(jīng)識別的標簽樣式。只有當我們給機器以刺激,命令它去搜索卡里的信息,它才會(huì )去搜索。
· 我們可以做個(gè)實(shí)驗:機器先關(guān)機,再開(kāi)機,按左軟鍵開(kāi)始/其他/其他,你會(huì )發(fā)現,所有安裝在卡里的軟件圖標都是未經(jīng)識別的標簽樣式。然后按首頁(yè)返回,再開(kāi)始/其他/其他,同樣,卡里的軟件怎么還是未經(jīng)識別的標簽標!這就對了,機器沒(méi)有主動(dòng)搜索卡里的軟件信息,緩存里的軟件信息量減少了,這樣的機器通常是不容易死機的,這就是我們的目的所在。那么怎樣刺激機器讓它搜索呢?我們可以按其他按到最后一頁(yè),進(jìn)入游戲,打開(kāi)凌云壯志玩玩,然后關(guān)掉游戲,返回首頁(yè),這回再看看安裝在卡里的軟件圖標,怎么樣,圖標全變成本來(lái)的面目了吧。為什么玩游戲就能刺激機器機器重新搜索程序信息呢?首先,這是個(gè)大型游戲;其次,這個(gè)游戲是機器自帶的。當我們運行這個(gè)游戲時(shí),就要占用很多資源,就是通常我們說(shuō)的空間,這個(gè)空間當然就包括緩存,所以當大量的數據涌過(guò)來(lái),機器就不得不把原來(lái)搜索到的程序信息清空掉,倒出空間全力以赴保證游戲的運行。當游戲結束后,空間恢復了,機器不得不重新搜索已經(jīng)安裝的軟件信息了。這一搜索,安裝在卡里的信息就被讀進(jìn)緩存了,圖標的樣子也就恢復了。
5
· 軟件問(wèn)題
· 主要是因為手機的軟件設計上存在致命的BUG從而導致的死機.例如,當手機運行一個(gè)程序的時(shí)候,如果在子程序和主程序之間存在一個(gè)邏輯上的錯誤的話(huà),每當手機在運行到該程序的時(shí)候就會(huì )發(fā)生指令錯誤,有點(diǎn)象電腦中的非法操作,這時(shí)就有可能出現死機.由于軟件的BUG導致的死機,一般都具有這樣的特征:每當運行到某一命令時(shí),即每次進(jìn)行同樣的操作的時(shí)候就出現死機.如果手機老是這樣死機的話(huà),就可以初步斷定是由于軟件的問(wèn)題死機.解決這樣的死機一般進(jìn)行軟件升級就可以解決,不過(guò),象這樣的升級只能對軟件版本進(jìn)行升級,升完級以后手機的功能不會(huì )有變化,但是在升級中解決了一些軟件的BUG,降低了死機的幾率.升級中對軟件不熟這樣就給手機造成了不穩定因素,如果做升級的話(huà)請事先做好備份,以免手機升級失敗后軟件不能恢復.