下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、對(duì)于“手機(jī)內(nèi)存用一段時(shí)間就變小,必須重啟才能恢復(fù)”迷茫的機(jī)油進(jìn)來(lái)看看吧 首先聲明 這是我轉(zhuǎn)載的 有很多機(jī)油都表示,自己的機(jī)子開(kāi)機(jī)內(nèi)存很大,用一會(huì)怎么就變小了,怎么有很多程序在后臺(tái)關(guān)都關(guān)不了啦。 接下來(lái)就講講安卓手機(jī)的一些事情。 首先大家要知道Android系統(tǒng)是基于Linux 2.6內(nèi)核開(kāi)發(fā)的開(kāi)源操作系統(tǒng)。linux系統(tǒng)的內(nèi)存管理有其獨(dú)特的動(dòng)態(tài)存儲(chǔ)管理機(jī)制。不過(guò)Android系統(tǒng)對(duì)Linux的內(nèi)存管理機(jī)制進(jìn)行了優(yōu)化,Linux系統(tǒng)會(huì)在進(jìn)程活動(dòng)停止后就結(jié)束該進(jìn)程,而Android把這些進(jìn)程都保留在內(nèi)存中,直到系統(tǒng)需要更多內(nèi)存為止。這些保留在內(nèi)存中的進(jìn)程通常情況下不會(huì)影響整體系統(tǒng)的運(yùn)行速度,并且當(dāng)
2、用戶再次激活這些進(jìn)程時(shí),提升了進(jìn)程的啟動(dòng)速度。 如果你懂java,就會(huì)更容易理解Android系統(tǒng)的內(nèi)存管理機(jī)制。與java的垃圾回收機(jī)制類似,系統(tǒng)有一個(gè)規(guī)則來(lái)回收內(nèi)存。進(jìn)行內(nèi)存調(diào)度有個(gè)閾值,只有低于這個(gè)值系統(tǒng)才會(huì)按一個(gè)列表來(lái)關(guān)閉用戶不需要的東西。Android系統(tǒng)有六類進(jìn)程:前臺(tái)進(jìn)程、可見(jiàn)進(jìn)程、次要服務(wù)、后臺(tái)進(jìn)程、內(nèi)容供應(yīng)節(jié)點(diǎn)、空進(jìn)程。對(duì)于高手而言可以用MinFreeManager之類的軟件進(jìn)行進(jìn)程管理,分別為六類進(jìn)程設(shè)定不同的閾值來(lái)操縱系統(tǒng)的內(nèi)存分配機(jī)制。不過(guò)對(duì)于一般用戶而言,Android系統(tǒng)默認(rèn)的分配機(jī)制已經(jīng)可以滿足使用需要,因此也不需要再去調(diào)整。 對(duì)于一些內(nèi)存很低的低端Android
3、機(jī)而言,系統(tǒng)默認(rèn)的內(nèi)存分配機(jī)制無(wú)法實(shí)現(xiàn)很完善的內(nèi)存調(diào)配。所以在運(yùn)行大型游戲時(shí)需要先清理一下內(nèi)存。就拿現(xiàn)在的街機(jī)摩托羅拉defy來(lái)講吧,512m的總內(nèi)存和幾十m的空余內(nèi)存已經(jīng)可以充分的滿足系統(tǒng)自動(dòng)調(diào)配的需要,因此完全沒(méi)有必要老去殺進(jìn)程、清內(nèi)存。 有些機(jī)油都反應(yīng)說(shuō)后臺(tái)掛著程序很費(fèi)電,事實(shí)上Android的應(yīng)用在被切換到后臺(tái)時(shí),它其實(shí)已經(jīng)被暫停了,并不會(huì)消耗cpu資源,只保留了運(yùn)行狀態(tài)。至于QQ、音樂(lè)播放之類的程序可以在后臺(tái)運(yùn)行,是因?yàn)檫@些程序在后臺(tái)開(kāi)啟了服務(wù),而服務(wù)可以后臺(tái)運(yùn)行,所以沒(méi)有帶服務(wù)的應(yīng)用在后臺(tái)是完全不耗電的,沒(méi)有必要關(guān)閉。這種設(shè)計(jì)本來(lái)就是一個(gè)非常好的設(shè)計(jì),下次啟動(dòng)程序時(shí),會(huì)更快,因?yàn)椴?/p>
4、需要讀取界面資源。 Android系統(tǒng)這樣的設(shè)計(jì)不僅非常適合移動(dòng)終端的需要,而且減少了系統(tǒng)崩潰的可能,確保了系統(tǒng)的穩(wěn)定性。老想著清理內(nèi)存的同學(xué)完全是因?yàn)楸蝗嗷蛘遅indows毒害太深,事實(shí)上,經(jīng)常用Taskiller之類的軟件關(guān)閉后臺(tái)所有進(jìn)程,很容易造成系統(tǒng)的不穩(wěn)定。很多時(shí)候出現(xiàn)問(wèn)題,只要重啟就能解決,其原因也在于此。 說(shuō)了這里,總結(jié)起來(lái)很簡(jiǎn)單,一些diy的編程高手,一般都會(huì)自己去 操縱系統(tǒng)內(nèi)存分配的閾值,而普通用戶則是想怎么用就怎么用,完全不用去鳥(niǎo)剩余內(nèi)存的問(wèn)題,那些內(nèi)存清理的程序完全可以扔到一邊了。 接來(lái)下再給大家講一些小技巧: 1.按home退出,程序保留狀態(tài)為后臺(tái)進(jìn)程;按返回鍵退出,
5、程序保留狀態(tài)為空進(jìn)程??者M(jìn)程的oom_adj評(píng)值高于后臺(tái)進(jìn)程,更容易被系統(tǒng)清理。所以推薦用返回鍵退出。 2.UC、憤怒小鳥(niǎo)、都市賽車(chē)之類程序本身提供關(guān)閉功能的,還是盡量主動(dòng)關(guān)閉。瀏覽器、電子市場(chǎng)、opera mini等不提供關(guān)閉功能的,直接返回鍵退出就行。 為什么我剛刷完rom,殺下進(jìn)程運(yùn)行內(nèi)存有65MB,以后就越來(lái)越少了呢? 為什么UC瀏覽器、QQ等程序掛到后臺(tái)運(yùn)行再重新回到前臺(tái)后就掉線呢? 為什么每次打開(kāi)進(jìn)程管理器,可用內(nèi)存總是在24MB左右呢? 先來(lái)看下android的內(nèi)存管理方式吧:(沒(méi)耐心的直接看紅字部分) Android采取了一種有別于Linux的進(jìn)程管理策略,有別于Linux的在
6、進(jìn)程活動(dòng)停止后就結(jié)束該進(jìn)程,Android把這些進(jìn)程都保留在內(nèi)存中,直到系統(tǒng)需要更多內(nèi)存為止。這些保留在內(nèi)存中的進(jìn)程通常情況下不會(huì)影響整體系統(tǒng)的運(yùn)行速度,并且當(dāng)用戶再次激活這些進(jìn)程時(shí),提升了進(jìn)程的啟動(dòng)速度。 那Android什么時(shí)候結(jié)束進(jìn)程?結(jié)束哪個(gè)進(jìn)程呢?之前普遍的認(rèn)識(shí)是Android是依據(jù)一個(gè)名為L(zhǎng)RU(last recently used 最近使用過(guò)的程序)列表,將程序進(jìn)行排序,并結(jié)束最早的進(jìn)程。其實(shí)安卓的內(nèi)存管理機(jī)制是這樣的,如下: 1.系統(tǒng)會(huì)對(duì)進(jìn)程的重要性進(jìn)行評(píng)估,并將重要性以“oom_adj”這個(gè)數(shù)值表示出來(lái),賦予各個(gè)進(jìn)程;(系統(tǒng)會(huì)根據(jù)“oom_adj”來(lái)判斷需要結(jié)束哪些進(jìn)程,一般
7、來(lái)說(shuō),“oom_adj”的值越大,該進(jìn)程被系統(tǒng)選中終止的可能就越高) 2.前臺(tái)程序的“oom_adj”值為0,這意味著它不會(huì)被系統(tǒng)終止,一旦它不可訪問(wèn)后,會(huì)獲得個(gè)更高的“oom_adj”,我們推測(cè)“oom_adj”的值是根據(jù)軟件在LRU列表中的位置所決定的; 3.Android不同于Linux,有一套自己獨(dú)特的進(jìn)程管理模塊,這個(gè)模塊有更強(qiáng)的可定制性,可根據(jù)“oom_adj”值的范圍來(lái)決定進(jìn)程管理策略,比如可以設(shè)定“當(dāng)內(nèi)存小于X時(shí),結(jié)束“oom_adj”大于Y的進(jìn)程”。這給了進(jìn)程管理腳本的編寫(xiě)以更多的選擇。 Android將進(jìn)程分為六大類: 1.前臺(tái)進(jìn)程(foreground):目前正在屏幕上顯
8、示的進(jìn)程和一些系統(tǒng)進(jìn)程。舉例來(lái)說(shuō),Dialer Storage,Google Search等系統(tǒng)進(jìn)程就是前臺(tái)進(jìn)程;再舉例來(lái)說(shuō),當(dāng)你運(yùn)行一個(gè)程序,如瀏覽器,當(dāng)瀏覽器界面在前臺(tái)顯示時(shí),瀏覽器屬于前臺(tái)進(jìn)程(foreground),但一旦你按home回到主界面,瀏覽器就變成了后臺(tái)程序(background)。我們最不希望終止的進(jìn)程就是 前臺(tái)進(jìn)程。 2.可見(jiàn)進(jìn)程(visible):可見(jiàn)進(jìn)程是一些不再前臺(tái),但用戶依然可見(jiàn)的進(jìn)程,舉個(gè)例來(lái)說(shuō):widget、輸入法等,都屬于visible。這部分進(jìn)程雖然不在前臺(tái),但與我們的使用也密切相關(guān),我們也不希望它們被終止(你肯定不希望時(shí)鐘、天氣,新聞等widget被終止
9、,那它們將無(wú)法同步,你也不希望輸入法被終止,否則你每次輸入時(shí)都需要重新啟動(dòng)輸入法) 3.次要服務(wù)(secondary server):目前正在運(yùn)行的一些服務(wù)(主要服務(wù),如撥號(hào)等,是不可能被進(jìn)程管理終止的,故這里只談次要服務(wù)),舉例來(lái)說(shuō):谷歌企業(yè)套件,Gmail內(nèi)部存儲(chǔ),聯(lián)系人內(nèi)部存儲(chǔ)等。這部分服務(wù)雖然屬于次要服務(wù),但很一些系統(tǒng)功能依然息息相關(guān),我們時(shí)常需要用到它們,所以也太希望他們被終止 4.后臺(tái)進(jìn)程(hidden):雖然作者用了hidden這個(gè)詞,但實(shí)際即是后臺(tái)進(jìn)程(background),就是我們通常意義上理解的啟動(dòng)后被切換到后臺(tái)的進(jìn)程,如瀏覽器,閱讀器等。當(dāng)程序顯示在屏幕上時(shí),他所運(yùn)行的
10、進(jìn)程即為前臺(tái)進(jìn)程(foreground),一旦我們按home返回主界面(注意是按home,不是按back),程序就駐留在后臺(tái),成為后臺(tái)進(jìn)程(background)。后臺(tái)進(jìn)程的管理策略有多種:有較為積極的方式,一旦程序到達(dá)后臺(tái)立即終止,這種方式會(huì)提高程序的運(yùn)行速度,但無(wú)法加速程序的再次啟動(dòng);也有較消極的方式,盡可能多的保留后臺(tái)程序,雖然可能會(huì)影響到單個(gè)程序的運(yùn)行速度,但在再次啟動(dòng)已啟動(dòng)的程序時(shí),速度會(huì)有所提升。這里就需要用戶根據(jù)自己的使用習(xí)慣找到一個(gè)平衡點(diǎn) 5.內(nèi)容供應(yīng)節(jié)點(diǎn)(content provider):沒(méi)有程序?qū)嶓w,進(jìn)提供內(nèi)容供別的程序去用的,比如日歷供應(yīng)節(jié)點(diǎn),郵件供應(yīng)節(jié)點(diǎn)等。在終止進(jìn)程時(shí),這類程序應(yīng)該有較高的優(yōu)先權(quán) 6.空進(jìn)程(empty):沒(méi)有任何東西在內(nèi)運(yùn)行的進(jìn)程,有些程序,比如BTE,在程序退出后,依然會(huì)在進(jìn)程中駐留一個(gè)空進(jìn)程,這個(gè)進(jìn)程里沒(méi)有任何數(shù)據(jù)在運(yùn)行,作用往往是提高該程序下次的啟動(dòng)速度或者記錄程序的一些歷史信息。這部分進(jìn)程無(wú)疑是應(yīng)該最先終止的。 簡(jiǎn)單來(lái)說(shuō),就是選擇退出程序時(shí),并不是完全退出程序,該程序仍然會(huì)在后臺(tái)駐留一個(gè)進(jìn)程,以便下次更快的打開(kāi)。那什么時(shí)候完全關(guān)閉該程序呢?這取決于該程序的類型(就是上面講的那幾個(gè)類型)。系統(tǒng)會(huì)給每個(gè)類型的程序一個(gè)內(nèi)存值閾(閥門(mén)),也就是說(shuō)當(dāng)運(yùn)行內(nèi)存低于某個(gè)值時(shí),系統(tǒng)會(huì)自動(dòng)按照打
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度出口企業(yè)出口貨物報(bào)關(guān)單據(jù)與憑證管理合同3篇
- 二零二五年餐飲項(xiàng)目合伙經(jīng)營(yíng)合同范本3篇
- 2025年度智能化工廠租賃合同涉及土地使用權(quán)及配套設(shè)施4篇
- 二零二四年臨時(shí)工勞動(dòng)保障與勞動(dòng)法實(shí)施合同3篇
- 專屬2024版企業(yè)人力外包協(xié)議樣本版B版
- 2024鋁合金門(mén)窗生產(chǎn)與安裝一體化工程合同3篇
- 2025年度企業(yè)級(jí)“師帶徒”人才孵化項(xiàng)目合同3篇
- 專業(yè)勞務(wù)派遣協(xié)議樣本2024版B版
- 街道黨工委知識(shí)培訓(xùn)課件
- 2025年度商務(wù)辦公空間租賃安全合同文本4篇
- 老年人視覺(jué)障礙護(hù)理
- 《腦梗塞的健康教育》課件
- 《請(qǐng)柬及邀請(qǐng)函》課件
- 中小銀行上云趨勢(shì)研究分析報(bào)告
- 遼寧省普通高中2024-2025學(xué)年高一上學(xué)期12月聯(lián)合考試語(yǔ)文試題(含答案)
- 青海原子城的課程設(shè)計(jì)
- 常州大學(xué)《新媒體文案創(chuàng)作與傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 麻醉蘇醒期躁動(dòng)患者護(hù)理
- 英語(yǔ)雅思8000詞匯表
- 小學(xué)好詞好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移動(dòng)支付技術(shù)規(guī)范第1部分:總則
評(píng)論
0/150
提交評(píng)論