前言
使用了Lineage OS一段时间了,偶然发现系统默认没有挂载Zram,没有虚拟交换分区。这容易导致内存达到阈值然后开始杀后台,部分应用也没有预备缓存,启动时重新加载。因此在网上找了相关教程来设置Zram。
注意:此教程仅在xiaomi 8-Lineage OS21-Android14上测试通过,其他机型自行测试,记得备份重要数据。本文只做学习教程,不具备专业性。准备工作
首先手机需要获取ROOT权限,以更改系统根文件。其次需要一个文件管理器,如RE管理器或者MT管理器。
找到文件
找到修改的文件,文件位于/vendor/etc/fstab.qcom,由于小米8是骁龙845处理器,因此后缀为.qcom。其他处理器自行确认。
fstab文件在Linux系统中是用来存放文件系统的静态信息的文件。文件位于/etc/目录下,可以用以下命令查看。
详情可参考:fatab文件详解。打开后可以看到许多系统启动时跟随挂载的分区。
挂载Zram
编辑fstab.qcom文件,最后一行添加以下内容。
文件结尾再空一行。1 | # /dev/block/zram0: 需要挂载的块 |
生效
修改完后保存文件,重启系统。不出意外的话进入系统就有Zram分区了。可通过Devcheck等软件查看。默认压缩算法为lzo,查看/sys/block/zram0/comp_algorithm文件,里面有系统支持的压缩算法。
修改压缩算法为lz4(请先确保系统支持)。
基准测试Benchmarks
Compressor | Ratio | Compression | Decompression |
---|---|---|---|
zstd 1.3.4 -1 | 2.877 | 470 MB/s | 1380 MB/s |
zlib 1.2.11 -1 | 2.743 | 110 MB/s | 400 MB/s |
brotli 1.0.2 -0 | 2.701 | 410 MB/s | 430 MB/s |
quicklz 1.5.0 -1 | 2.238 | 550 MB/s | 710 MB/s |
lzo1x 2.09 -1 | 2.108 | 650 MB/s | 830 MB/s |
lz4 1.8.1 | 2.101 | 750 MB/s | 3700 MB/s |
snappy 1.1.4 | 2.091 | 530 MB/s | 1800 MB/s |
lzf 3.6 -1 | 2.077 | 400 MB/s | 860 MB/s |
结尾
开启zram,确实可以多挂几个后台,并且保持运行。但如果长时间后台运行会受到电源策略限制。部分应用可以预缓存,加快启动速度。经常读取文件也会在预存Zram中,快速读取。