刷完Android2.2後,手機內(nèi)存不夠用,以致於無法安裝軟件,甚至提示短信無空間接收。即使將自己安裝的軟件全放SD卡後,仍然無法解決此問題。
按網(wǎng)上有些說法,將/system/app目錄下系統(tǒng)自帶的一些軟件刪除後,同樣無明顯效果。
研究後,發(fā)現(xiàn)Android將內(nèi)存卡分成了幾個區(qū),安裝程序,系統(tǒng)數(shù)據(jù)都會放在/data分區(qū)。此分區(qū)不夠用的話,將嚴重影響軟件安裝和使用。用超級終端df看了一下,發(fā)現(xiàn)其它分區(qū)空閒內(nèi)存比較多,尤其是/cache分區(qū)。本想重新分區(qū)並安裝的,但工程浩大,對ARM分區(qū)和引導(dǎo)還不夠了解的情況下,還是有點困難的。
在網(wǎng)上搜索了一些相關(guān)知識,測試發(fā)現(xiàn)以下兩個方法很有效:a. 將/data/app移到/system/app; b.將/data/delvik-cache移到/cache目錄.
1、移動apk包到system/app
條件: 已經(jīng)獲取root權(quán)限,安裝有re管理器
方法: 刪除系統(tǒng)預(yù)裝的軟件其實並不能騰出應(yīng)用空間,因為系統(tǒng)預(yù)裝軟件在system/app下,而應(yīng)用空間在data/app下,
這兩個目錄屬於android系統(tǒng)兩個不同的分區(qū),就像windows C盤 D盤一樣,C盤刪除了垃圾,並不能使D盤空間加大。
精簡預(yù)裝軟件以後,我的system空間還有60m,用re管理器把data/app下的一些經(jīng)常用到的不會卸載的軟件的apk文件
挪到system/app下以後, 我的data空間達到了70m。
注意:re操作要小心。挪過去以後,桌面上的圖標會消失,重啟以後再重新添加即可。還有就是system空間最好剩10m左右,防止出問題。
要是想卸載挪到system/app下的軟件,最好是挪回data/app下再卸載。
ps:如果re管理器移動apk文件不行,試試用複製文件,複製成功回data/app目錄看看,如果還有就刪掉
2、移動/data/dalvik-cache目錄到/cache
/data/dalvik-cache目錄下存放著android的程序運行優(yōu)化文件,我的大概有35m左右,
放在data下占地方,而/cache下有60多m空間卻空著.
實現(xiàn)方法稍有點複雜:
1、已經(jīng)獲取root權(quán)限,安裝有re管理器
2、已安裝busybox,沒有的話在android市場裡搜索安裝
3、國外已經(jīng)有高手,寫了一個dalvik-cache.zip的升級包,主要內(nèi)容就是一個腳本,在系統(tǒng)每次啟動時,調(diào)用busybox在/cache下創(chuàng)建delvik-cache的功能??梢灾苯佑每ㄋ⑺⒌较到y(tǒng)中。(有root權(quán)限,手動複製到系統(tǒng)中也行)
4、上面的dalvik-cache.zip是將腳本放在/system/sd/userinit.sh當(dāng)中,但並不是所有android發(fā)行版都有調(diào)用這個腳本。查了一下根目錄下的init.rc,發(fā)現(xiàn)會調(diào)用/system/etc/install-recovery.sh,將上面安裝的userinit.sh移動到此,重啟即可。
當(dāng)然,還有一個常用的方法是將應(yīng)用程序安裝在sd卡中,這個在2.2已默認支持此功能。之前版本需要手工改造。