Android内存管理计划的优化
发布时间:2021-11-25 17:41:48 所属栏目:教程 来源:互联网
导读:一、Android内存管理策略 1.Backing Swap (优先执行Compcache,不能满足要求时再启用SWAP) 2.Compcache (压缩缓存,消耗CPU性能,比较费电) 3.Swap (传统LINUX的SWAP,加速SWAP所在介质的损耗) 4.lowmemorykiller (低内存杀手) 如启用Backing Swap策
一、Android内存管理策略 1.Backing Swap (优先执行Compcache,不能满足要求时再启用SWAP) 2.Compcache (压缩缓存,消耗CPU性能,比较费电) 3.Swap (传统LINUX的SWAP,加速SWAP所在介质的损耗) 4.lowmemorykiller (低内存杀手) 如启用Backing Swap策略,则同时启用Compcache和SWAP,并优先使用Compcache后再用SWAP,最后再执行owmemorykiller策略。 如不开启Backing Swap策略,Compcache策略和SWAP策略只能二选一,最后再执行lowmemorykiller策略。 即使不启用前三种管理策略,lowmemorykiller策略作为android系统默认的内存管理策略,也始终是开启的。 二,关于Compcache Compcache是指对内存进行压缩,可以在“设置”-“CM设置”-“性能”-“使用压缩缓存”中设置。如果开启SWAP,这个值是“禁用”,没启用SWAP或Backing Swap,则默认18%,启用的话可以省出一些可用内存,但压缩解压过程会加大CPU的工作量,如果CPU性能不够强,反而会影响系统的流畅性,同时增加电量的消耗,所以,Compcache也要按实际需要设置,辩证对待。如果内存足够大,不推荐开启,CPU性能不够强,也不推荐开启。 三、关于SWAP SWAP是一种LINUX下的基于内存分页的交换分区,类似虚拟内存技术,作为物理内存不足时的扩展补充,但并不等于是物理内存的直接增量。 使用条件: 1.支持SWAP的内核 2.含有busybox 推荐使用CM的Android的原版和衍生版。 为了方便使用,可根据下面代码说明,制作CreatIMG.sh和90userinit这两个脚本文件,这两个文件都是标准的文本格式内容,可参照下面代码用文本编辑器录入编辑。 1.CreatIMG.sh文件是用来在指定位置上生成指定大小的IMG镜像。 mount -o remount,rw /system; //加载system分区 swapoff /dev/block/loop7; dd if=/dev/zero of=/system/swap.img bs=1024 count=65536; //创建swap.img 文件,文件大小为count=65536,即64M 2.90userinit文件是让开机就自动运行挂载SWAP.IMG镜像并启用SWAP脚本。 mount -o remount,rw /system; //加载system分区 losetup /dev/block/loop7 /system/swap.img ; //将swapfile文件虚拟成设备分区loop7. mkswap /dev/block/loop7; //将设备分区loop7创建为交换区 swapon /dev/block/loop7; //启用交换分区 上面代码中/system目录和swap.img文件名是可以自定义的,支持手机内置闪存任意位置,也支持外置闪存SD、TF卡任意位置,甚至是TF卡里的EXT分区。例如手机内置闪存的/data目录下(这也就是用户软件安装的目录),或是手机内置闪存/system目录(也就是系统目录)。 使用方法: 1.把CreatIMG.sh文件复制到手机里(/system或/data都可以,但不能是/sdcard)。 2.点击CreatIMG.sh文件,选择“执行”。 目的:在system目录下生成IMG文件。 注意:RE浏览器要重新打开system目录,才能看到是否已生成IMG文件。如果生成成功,可删除CreatIMG.sh。 4.把90userinit文件复制到/system/etc/init.d/目录下,更改权限为可执行rwxr-x---。 目的:开机自动挂载IMG文件用于SWAP。 5.重启,再打开超级终端输入 free 命令查看是否SWAP已加载成功,如果看swap那一行不全是0,且是你指定的容量(数字是以KB为单位),则说明正确启用SWAP。 ![]() (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |