Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


从我的个人使用感受来说,MIUI 12 对于 60Hz 的常规刷新率优化实在是太差劲了。几乎所有的高刷机型在开启 60Hz 刷新率后都会出现明显的划动掉帧。另一方面,就算开启高刷,屏幕的刷新率也不会固定在 120Hz,而是根据使用场景的不同(静态图像、视频、黑名单应用等)切换 30Hz、50Hz、60Hz、90Hz、120Hz 刷新率,且有明显的卡顿。

Pixel 系列会在开发者选项中给出一个「强制 90Hz 的刷新率」选项,但 MIUI 12 仅多一「功耗检测」工具来开启悬浮窗查看当前屏幕的刷新率。以这个为参考依据,我迫切需要一个方法来强制我的红米 K30 5G 开启全局 120Hz 刷新率,不要任何出于功耗考量的「智能」切换。

刚好在 XDA 论坛里已经有 玩家发现 稳定强开全局高刷的办法,借助 Magisk 模块我们可以轻松达成这一目标,文末也会给出一种不需要 Magisk 的取巧办法。

准备

  • 解锁 Bootloader 并刷入 Magisk;
  • Magisk 模块:Busybox fot Android NDK;
  • Magisk 模块:MagiskHide Props Config;
  • 命令行工具,可在手机上安装或连接电脑使用 adb shell。

步骤

从 Magisk 官方仓库安装这两个模块重启生效后,打开命令行工具,初次使用可能需要在 Magisk Manager 中授予 Root 权限,在电脑上使用 adb shell 同样需要。接下来我以 macOS 的终端与红米 K30 5G 为例。

adb shell #手机本地使用命令行模拟工具则无需此步骤
su #获取 root 权限
props #开始使用 MagiskHide Props Config 功能

之后命令行工具中会出现如下提示:

我们的目的是使用这个模块修改或新增手机 Build.prop (可以理解为类似 Windows 系统中注册表系统的存在)中的一些值,因此选择 5 。并在下一步中输入 n 来新增自定义的 prop 值(也就是选择 New custom prop)。

我们一共需要输入两个值,一个一个来。输入第一个值:ro.vendor.dfps.enable

会弹出提示询问你想要这个值默认是 true 还是 false,这里我们选择 false

很轻松对不对?但接下来还有一个选项需要选择。我们的系统启动有许多阶段,模块会询问你想在哪个阶段添加这个 prop 值,在这里我们输入 2 选择第二个选项,也就是 post-fs-data 。

输入后它会开始写入,但在开始写入前还是会问一遍你要不要继续下去,当然选择 y 继续,模块就会开始工作。执行结束后会提示你改动生效需要重启,然后问你要不要重启。但我们还有另一个值需要写入,在这里选择 n 不重启。

又回到了最初的起点,我们在这里依旧输入 n 来新建一个 prop。

依葫芦画瓢,这一次我们输入的值是 ro.vendor.smart_dfps.enable ,依旧默认 false,依旧默认在 post-fs-date 阶段启动。第二次做的时候是不是已经觉得自己很熟练了?

在最后一步,可以放心选择 y 来重启(reboot):

检验

重启后先去开发者选项——功耗检测中打开 Frame Rate Monitor Tools 来查看当前的屏幕物理刷新率,注意这里会同时有两个单位,一个是 fps,指的是当前屏幕的渲染帧率,我们平时说的「掉帧」卡顿指的就是这个数字出现了过大变化的顿挫;另一个是 Hz,指的是屏幕的刷新率,是渲染帧率所能达到的上限,是一个固定的属性值。

开始正常使用手机,帧率可能达不到 120fps,但是屏幕刷新率会固定在 120Hz,哪怕是打开黑名单应用(比如 YouTube)亦如此。

接下来就好好感受怎么重启都不会失效的真正的顺滑吧!

非 root 的取巧方法

非 root 的方法其实特别简单,总共就三步:

  1. 系统设置中切换屏幕刷新率到 60Hz;
  2. 设置中查找一个叫做「电量和性能」的应用,清除它的所有数据;
  3. 切换屏幕刷新率到高刷 120Hz 等;

这种方法可能比较容易失效,大家也可以自行测试看看。

拓展阅读

> 下载少数派客户端 、关注少数派公众号 ,了解更多 Android 实用技巧 🤖️

> 想申请成为少数派作者?冲!