我的小米2sc買了一年半了,從官網買的,一直沒出過事,還是開發版。前天自己突然間黑屏而且出現很多黑 匿名使用者 1級 2015-08-12 回答

系統記憶體不足導致宕機

· 我們先澄清一個概念,我們通常所說的記憶體,是指系統的快取,也就是用“顯示電量”軟體看到的“記憶體”,這個快取通常比較小,不到1兆,它是手機儲存、記憶體卡儲存和機器自身系統中程式執行時即將用到的資料的快取區,當手機儲存、記憶體卡儲存、機器自身系統和機器cpu之間的資料交換的時候扮演橋樑的角色。這個橋樑,卻成往往為機器宕機的罪魁禍首,通常的機器宕機或多或少都與它有關。以後我們提到的記憶體,就是這個“記憶體”而不是什麼“手機儲存”大家要注意!手機儲存相當於我們的電腦硬碟,在手機中和記憶體卡儲存一樣,只是儲存裝置,並不是什麼記憶體(在手機中有一個有趣的現象,就是我們把機器自帶的儲存部分就叫記憶體,這的確誤導了很多人)。好了,記憶體到底是什麼我們明白了,接下來我們就說說手機儲存空間不足為什麼會導致宕機。

· 先舉個例子吧:還記得早些年的老電腦嗎!它們通常硬碟都不會很大,當我們瘋狂向裡面儲存東西,即將把硬碟塞滿但還未滿時(比如還剩100多兆空間),電腦經常出現的情況嗎?對了!那就是藍色畫面。為什麼藍色畫面呢?不是還有100兆可以用的嗎?這就要從電腦的儲存資料的原理入手:電腦無論在執行什麼程式的時候,都要把這個程式要用到的相關資料從硬碟讀出來,存到記憶體中,然後cpu再把它進行計算時用的資料從記憶體取出來(這裡面還要經過cpu自帶的一級二級快取這個“橋樑”,一級、二級快取在記憶體條和cpu之間所扮演的角色就相當於記憶體條在硬碟和cpu之間所扮演的角色一樣,起到加快資料交換的作用),讀到cpu中進行計算,要知道cpu從記憶體條中讀資料要比從硬碟直接讀資料快的多,這樣就大大提高了程式執行的速度。計算完畢後,cpu就執行計算的結果,比如計算結果是執行一條指令:開啟資料夾,那麼電腦就會把資料夾裡的內容顯示出來。再比如我們正在輸入一篇文件,電腦的cpu透過我們敲擊鍵盤計算出我們輸入的是什麼文字,那麼它把我們輸入的文字放在那裡了呢,就是放在記憶體中,直到我們給它一個命令,讓它把我們輸入的文字“存檔”,它才會把我們輸入的內容從記憶體條中轉儲到硬碟上。然而事實是,電腦之所以能執行,都是由於有cpu的計算,我們一切的動作,甚至包括顯示器顯示,包括我們移動一下滑鼠,都要經過cpu的計算和指揮,而這些計算和指揮的複雜龐大的中間結果,往往都要暫時儲存在記憶體條中,只有cpu認為記憶體已經裝不下了,或是我們給了電腦一個命令,命令它存檔,才會轉存在硬碟上,這個過程中硬碟一直在告訴旋轉,隨時準備接受從記憶體轉儲過來的資料。而cpu這時還要抽出精力來時時檢測儲存在硬碟上的位置,以便下次再儲存時從這個位置接上。而我們的硬碟在裝的差不多快滿時,往往那點剩餘空間都以碎片形式存在,更增加了cpu時時檢測儲存在硬碟位置上的難度,加上以前的cpu執行速度不是很快,記憶體條又不是很大,這種轉儲就要經常進行,這種大量的資料交換造成了cpu瘋狂的運算,弄不好就造成宕機。這就是為什麼電腦剩餘空間不多時經常藍色畫面或宕機的原因。

· 好了,說了這麼多電腦,無非就是要拋磚引玉,把話題引到我們的手機上,前面說過手機裡的儲存和記憶體卡儲存都是手機裡的儲存裝置,不是真正的“記憶體”,只是相當於電腦裡的硬碟,而真正的記憶體是不到1兆空間的“記憶體”(這個我們透過軟體“顯示電量”可以看到的,或者是檔案管理器裡的“系統資訊”都可以看到)這個“記憶體”才是真正相當於電腦裡的“記憶體條”。話說到這裡已經很明白了,為什麼手機儲存空間不足時比較容易宕機,smartphone系統和電腦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,從今往後機器是不會主動去搜索它的,所以所有安裝在卡里的軟體的圖示,在開機後都會顯示成同一個樣子未經識別的標籤樣式。只有當我們給機器以刺激,命令它去搜索卡里的資訊,它才會去搜索。

· 我們可以做個實驗:機器先關機,再開機,按左軟鍵“開始”/“其他”/“其他”,你會發現,所有安裝在卡里的軟體圖示都是未經識別的標籤樣式。然後按“首頁”返回,再“開始”/“其他”/“其他”,同樣,卡里的軟體怎麼還是未經識別的標籤標!這就對了,機器沒有主動搜尋卡里的軟體資訊,快取裡的軟體資訊量減少了,這樣的機器通常是不容易宕機的,這就是我們的目的所在。那麼怎樣刺激機器讓它搜尋呢?我們可以按“其他”按到最後一頁,進入“遊戲”,開啟“凌雲壯志”玩玩,然後關掉遊戲,返回首頁,這回再看看安裝在卡里的軟體圖示,怎麼樣,圖示全變成本來的面目了吧。為什麼玩“遊戲”就能刺激機器機器重新搜尋程式資訊呢?首先,這是個大型遊戲;其次,這個遊戲是機器自帶的。當我們執行這個遊戲時,就要佔用很多資源,就是通常我們說的空間,這個“空間”當然就包括“快取”,所以當大量的資料湧過來,機器就不得不把原來搜尋到的程式資訊清空掉,倒出空間全力以赴保證遊戲的執行。當遊戲結束後,空間恢復了,機器不得不重新搜尋已經安裝的軟體資訊了。這一搜索,安裝在卡里的資訊就被讀進快取了,圖示的樣子也就恢復了。

5

· 軟體問題

· 主要是因為手機的軟體設計上存在致命的BUG從而導致的宕機。例如,當手機執行一個程式的時候,如果在子程式和主程式之間存在一個邏輯上的錯誤的話,每當手機在執行到該程式的時候就會發生指令錯誤,有點象電腦中的非法操作,這時就有可能出現宕機。由於軟體的BUG導致的宕機,一般都具有這樣的特徵:每當執行到某一命令時,即每次進行同樣的操作的時候就出現宕機。如果手機老是這樣宕機的話,就可以初步斷定是由於軟體的問題宕機。解決這樣的宕機一般進行軟體升級就可以解決,不過,象這樣的升級只能對軟體版本進行升級,升完級以後手機的功能不會有變化,但是在升級中解決了一些軟體的BUG,降低了宕機的機率。升級中對軟體不熟這樣就給手機造成了不穩定因素,如果做升級的話請事先做好備份,以免手機升級失敗後軟體不能恢復。

我的小米2sc買了一年半了,從官網買的,一直沒出過事,還是開發版。前天自己突然間黑屏而且出現很多黑 匿名使用者 1級 2015-08-12 回答

這你的去小米專賣店打聽