前言
最近折騰android系統(tǒng)比較多基跑,也有了些心的闷沥,故有了這篇文章。 android的swap分區(qū)與linux相同晌涕,都是用于數(shù)據(jù)交換的滋捶,類似于windows上的虛擬內(nèi)存。合理設(shè)置swap能提升系統(tǒng)的速度余黎,降低系統(tǒng)因內(nèi)存不足而關(guān)閉后臺程序的頻率重窟。但如果設(shè)置不當(dāng),反而會拖慢系統(tǒng)速度惧财,影響使用體驗巡扇。
本文就從android內(nèi)存管理機制出發(fā),介紹合理設(shè)置swap的方法垮衷。由于本人并不是開發(fā)者厅翔,對android的內(nèi)存管理機制的理解可能有偏差的地方,歡迎指證搀突,廢話不多刀闷,lets go。
一仰迁、android的內(nèi)存管理機制
我們知道android的程序都是沒有關(guān)閉鍵的甸昏,所有大部分程序推出后還是有一部分?jǐn)?shù)據(jù)駐留在內(nèi)存里。但內(nèi)存不可能無限大徐许,打開程序一多施蜜,又都不完全退出,時間一長雌隅,再大的內(nèi)存也是不夠用的翻默,更何況hero的可用內(nèi)存僅192mb(總內(nèi)存288mb,96mb被radio占用恰起,另外的192mb系統(tǒng)可用)修械,去掉os占掉的部分,真正可獲得的內(nèi)存不到140mb村缸,隨便用用祠肥,內(nèi)存就耗完了。
當(dāng)系統(tǒng)內(nèi)存不足時內(nèi)存管理機制就開始起作用了梯皿,會在程序列表里選擇長時間空閑的程序予以關(guān)閉,以保證系統(tǒng)的運行速度县恕。這種機制在大部分時間里都運行得不錯东羹。但有些比較讓人惱火的地方在于,并不是所有的程序被關(guān)閉時都保存現(xiàn)場的忠烛,比如瀏覽器属提。
在最壞的情況里,你正在瀏覽器里更新你的博客,這時突然來了個電話冤议,打完電話后你發(fā)現(xiàn)瀏覽器因為內(nèi)存不足而被強制關(guān)閉了斟薇,當(dāng)你再打開瀏覽器時,赫然出現(xiàn)的是瀏覽器主頁的時候恕酸,那真是叫天天不應(yīng)堪滨,叫地地不靈了。當(dāng)然這種情況不會經(jīng)常發(fā)生蕊温,即便發(fā)生了有時你的損失也僅僅是那些打開的標(biāo)簽頁袱箱,但這種問題是切實存在的。
二义矛、什么是swap?swap有什么用?
前文說道发笔,swap分區(qū)類似于windows的虛擬內(nèi)存,是將sd卡上的空間作為系統(tǒng)內(nèi)存的補充凉翻。它的優(yōu)缺點也跟虛擬內(nèi)存類似了讨,可以讓系統(tǒng)同時運行很多的程序或者對內(nèi)存需求更大的程序,但讀寫的速度大大低于物理內(nèi)存制轰。
由于sd卡的速度較慢量蕊,在卡內(nèi)的swap主要作用是建立一個交換空間,當(dāng)有較大內(nèi)存需求的軟件(如電話艇挨、相機等)突然運行時残炮,可以將后臺程序先暫存在swap分區(qū)里,待該軟件使用完畢缩滨,內(nèi)存又有空余的時候势就,再將swap內(nèi)的程序數(shù)據(jù)轉(zhuǎn)到內(nèi)存里,以降低程序被關(guān)閉的可能脉漏。
有一點需要注意的是苞冯,開啟swap后,并不是說程序不會被關(guān)閉了侧巨,而是說被關(guān)閉的幾率變小了舅锄。
三、給sd卡分區(qū)
使用swap的花需要給sd卡分區(qū)司忱,1.5.2的RA Recovery就自帶給sd卡分區(qū)的功能皇忿,直接選擇Partition sdcard,并一路按home即可坦仍。
recovery主界面鳍烁,選擇Partition sdcard即可對sd卡進(jìn)行分區(qū)
在子菜單里,選擇Partiton SD即開始對SD卡分區(qū)操作
第一個32mb是設(shè)置swap分區(qū)大小繁扎,第二個512mb是設(shè)置ext分區(qū)的大小幔荒,用作app2sd糊闽。
第一個Swap-size的大小即Swap分區(qū)的大小。使用軌跡球上下滾動即可調(diào)節(jié)分區(qū)大小爹梁。設(shè)置為0即不分此分區(qū)右犹。一般使用默認(rèn)即可。
第二個Ext2-size即ext分區(qū)的大小姚垃,用來將程序裝在卡上念链,也可以用軌跡球上下滾動調(diào)節(jié)大小,一般也是默認(rèn)即可莉炉。
分區(qū)完成后钓账,選擇ext2 to ext3升級拉的文件系統(tǒng),以加快卡的讀取速度絮宁。
注意不要升級到ext4分區(qū)梆暮,1.5.2的recovery對ext4的支持不好,會導(dǎo)致手機無法通過nand備份和恢復(fù)系統(tǒng)绍昂,所以只要升級到ext3即可
升級結(jié)束后啦粹,選擇reboot system now重啟系統(tǒng)即可。
四窘游、swapper軟件的使用
要開始使用swap分區(qū)的話唠椭,需要先下載swapper軟件,在電子市場里直接有下載忍饰,免費的贪嫂,直接搜索即可力崇。
Swapper軟件圖標(biāo)
swapper軟件除了可以開啟使用swap分區(qū)外于置,還能在卡上建立swap文件,方便sd卡沒分區(qū)的用戶使用。但由于在卡內(nèi)使用swap時,每次連接電腦加載sd卡后雏婶,再次取消加載就會顯示sd卡損壞,必須重啟才能恢復(fù)错维,較為麻煩仰楚,所以還是建議使用swap分區(qū)僧界。
swapper默認(rèn)使用卡內(nèi)swap需要在設(shè)置咬腕,高級設(shè)置里勾選使用swap分區(qū)。選中后返回swap的主界面,選擇打開swap即可。至此,你已經(jīng)成功建立并開始了swap。
swapper軟件的主界面,由于默認(rèn)不是使用swap分區(qū),故點擊設(shè)置進(jìn)行更改
點擊設(shè)置后會出現(xiàn)Swapper的首選項界面世吨,點擊高級選項
在高級設(shè)置里边篮,勾選“使用SWAP”分區(qū),即可開啟SD卡里的SWAP分區(qū)的使用
回到主界面奏甫,點擊Swap ON戈轿,出現(xiàn)All done后,即可開啟swap分區(qū)
點擊獲取信息阵子,即出現(xiàn)了Swap分區(qū)和內(nèi)存使用情況的信息思杯,這里看到swap分區(qū)總大小32MB
后記
swap分區(qū)不宜過大,因為sd卡的讀取速度實在太慢挠进,設(shè)置太大的話色乾,會有太多數(shù)據(jù)滯留在卡內(nèi),拖慢慢系統(tǒng)速度领突。筆者曾經(jīng)就設(shè)置過288mb的swap暖璧,應(yīng)用程序是很少關(guān)閉了,但使用時間一長君旦,會導(dǎo)致機器卡到完全無法操作澎办,因為太多數(shù)據(jù)滯留在SD卡里,SD卡的讀卡速度是系統(tǒng)的最大瓶頸金砍,這時必須手動關(guān)閉程序釋放內(nèi)存才能正常使用局蚀,這樣就得不償失了,所以大家還是要按照自己的使用需求恕稠,合理設(shè)置swap大小和swappness的數(shù)值琅绅。