本方法自己发现,大家都知道G13的rom小,最后整得可用空间只有150MB。使用了link2SD,可以安装大的软件了,可是最后还是发现内存急剧减少,没办法就又删除system/app中的程序,起码节省了系统程序会在data目录下创建的文件。
内存仍会减少,然后学着把一些自己认为必备的程序移到system/app下面,后面移得多了发现可用空间还是经常不足。
最后是自己发现的方法了。把移到了system/app下面的APK里面的class.dex和lib删掉,减小体积。之所以这么做是因为我们往往在移到system/app时都把lib释放到lib文件夹里面了,而安装时生成在data/dalvik-cache目录中的dex也改名odex移到了system/app中了,这些文件在系统恢复时也不会被删掉,那APK中的文件便不再有用了。试着删除之后果然体积减少很多,非常有效。推荐一下。然后精简了etc下WPDB.zip的文件删除了非中文,英文的地名,因为中文系统当然不可能用到了,就又减了3M多。
用G13就是得省的,现在我手机里可用空间保持在七八十MB了,基本大多数软件不会出现内存不足了
发现了一种新方法省内存
首先是安装了link2SD和RE,针对link2SD做了内存卡分区,然后再RE中就多了一个分区可用啦,好了,把 /data/data目录中的任意一个占内存的文件夹移动到第二分区中,然后在移过去的文件夹上长按,选择【链接到此文件夹】,把链接创建回/data /data,好了,这个文件夹所占的内存释放了。不过还是建议只把非常用常开程序移动了。
需要注意的是,对于有lib文件夹且lib文件夹中有so文件的程序不能把整个程序数据文件夹使用上面方法移动,这种lib文件夹必须存在才能保证link2SD的正常工作.因而只能把程序数据文件夹内的各个子文件夹分别链接到sdext2里面啦.
写了个脚本来移动数据文件的,可以节省很多内存,可以看看
#!/system/xbin/sh
# folder not followed by /
dataappfolder=/data/app
datadatafolder=/data/data
sdext2datafolder=/data/sdext2/data2
dataapps=`ls $dataappfolder`
isdataapp(){
local key=$1
if [ $key == "" ]
then
return 0
fi
local dataapp
for dataapp in $dataapps
do
if [ -d $dataappfolder"/"$dataapp ]
then
continue
fi
if [ ! -L $dataappfolder"/"$dataapp ]
then
continue
fi
#if [[ $dataapp == *$key*apk ]] not support,only support the following check method
if [ ${dataapp/$key/} != $dataapp ]
then
return 1
fi
done
return 0
}
getfullpath(){
local currentpath=`pwd`
cd "$1"
local fullpath=`pwd`
cd $currentpath
return 0
}
ergodic(){
local folder=$1
local file
for file in ` ls $folder `
do
if [ -d $folder"/"$file ] && [ ! -L $folder"/"$file ]
then
ergodic $folder"/"$file
else
if [ -L $folder"/"$file ]
then
echo $folder"/"$file
fi
fi
done
}
#ergodic .
rmfileorfolder(){
local path=$1
if [ -d $path ]
then
echo "rm -r $path <rmfileorfolder>"
rm -r $path
else
echo "rm $path <rmfileorfolder>"
rm $path
fi
}
setprop(){
local topath=$1
local frompath=$1
chmod -rwxXst topath
}
moveandlink(){
local frompath=$1
if [ ! -e $frompath ] || [ -L $frompath ]
then
echo "from file do not exist or is link. $frompath <moveandlink>"
return
fi
local fromname=`basename $frompath`
local fromdir=`dirname $frompath`
local todir=$2
if [ ! -d $todir ]
then
echo "to dir do not exist. $todir <moveandlink>"
return
fi
if [ -e $todir"/"$fromname ] && [ -L $todir"/"$fromname ]
then
echo "dest file has exist, delete it. $todir"/"$fromname <moveandlink>"
rm $todir"/"$fromname
fi
mv $frompath $todir
ln -s $todir"/"$fromname $frompath
}
moveandlinkchildwithoutlib(){
local fromdir=$1
if [ ! -d $fromdir ]
then
echo "from dir do not exist. $fromdir <moveandlinkchildwithoutlib>"
return
fi
local todir=$2
if [ ! -d $todir ]
then
echo "to dir do not exist. $todir <moveandlinkchildwithoutlib>"
return
fi
local fromdirname=`basename $fromdir`
local finaltodir=$todir"/"$fromdirname
if [ ! -e $finaltodir ]
then
mkdir $finaltodir
fi
local file
for file in ` ls $fromdir `
do
if [ $file == "lib" ]
then
continue
fi
if [ -L $fromdir"/"$file ]
then
continue
fi
moveandlink $fromdir"/"$file $finaltodir
done
}
#moveandlink /home/dongzhiquan/a /home/dongzhiquan/b
haslibinfolder(){
local folder="$1"
local file
for file in ` ls $folder `
do
if [ "$file" != "lib" ]
then
continue
fi
if [ ! -d $folder"/"$file ]
then
continue
fi
if [ "`ls $folder/$file`" = "" ]
then
continue
fi
return 1
done
return 0
}
link(){
local basefolder=$1
local destfolder=$2
for file in ` ls $basefolder `
do
local childfile=$basefolder"/"$file
if [ ! -d $childfile ]
then
echo "not folder. $childfile <link>"
continue
fi
if [ -L $childfile ]
then
echo "been linked. $childfile <link>"
continue
fi
isdataapp $file
local ret=$?
if [ $ret -eq 0 ]
then
echo "not data app. $childfile <link>"
continue
fi
haslibinfolder $childfile
ret=$?
if [ $ret -eq 0 ]
then
moveandlink $childfile $destfolder
echo "linked. $childfile <link>"
else
moveandlinkchildwithoutlib $childfile $destfolder
echo "child linked. $childfile <link>"
fi
done
}
link $datadatafolder $sdext2datafolder
换MT887后的自动mount脚本
moveandmount(){
local frompath=$1
if [ ! -d $frompath ]
then
echo "from file do not exist or is link. $frompath <moveandmount>"
return
fi
umount $frompath
local fromname=`basename $frompath`
local todir=/home2/dongzhiquan/b
if [ ! -d $todir ]
then
echo "to dir do not exist. $todir <moveandmount>"
return
fi
if [ ! -e $todir"/"$fromname ]
then
echo "dest file not exist, make it. $todir"/"$fromname <moveandmount>"
mkdir $todir"/"$fromname
if [ $? -ne 0 ]
then
echo "mkdir failed. $todir"/"$fromname <moveandmount>"
return
fi
fi
mv -f $frompath/* $todir"/"$fromname/
if [ $(ls -A $frompath/ | wc -w) -ne 0 ]
then
echo "move failed. $frompath/* $todir"/"$fromname/ <moveandmount>"
return
fi
mount -o bind $todir"/"$fromname $frompath
if [ $? -ne 0 ]
then
echo "mount failed. <moveandmount>"
return
fi
}
moveandmount /home2/dongzhiquan/a