给MIUI开发一个刷新率开关 | 您所在的位置:网站首页 › oppofindx2pro可以调90hz吗 › 给MIUI开发一个刷新率开关 |
背景 我们很容易发现,现在小米等厂商支持高刷新率120Hz的手机,在系统设置中都隐藏了90Hz这个档位,只有60和120两种选项。对很多人来说,60虽然省电但是太不流畅,影响体验,120虽然流畅但太耗电,出门会有电量焦虑,折中的90其实才是最合适的选择(至少在心理上)。 ![]() 我一直试图搞清楚为什么厂商不愿意开放90Hz这个选项,对系统来说,刷新率无非就是一个可以修改的数值。是什么原因不让用户多一个选择呢? 调查经过一些简单的查询,我发现网络上的解释一般都是硬件本身不支持,芯片功能较弱,不足以驱动多种刷新率,强制修改为90Hz长时间可能造成屏幕损坏等。 当然,我也不忘去问一问无所不知的ChatGPT,他还是一如既往地说了一些车轱辘话。他这个“技术退步”论倒是有点意思。 ![]() 其实“硬件不支持”这个说法我并不是很赞同。如果你在Android系统的开发者选项中打开“显示屏幕刷新率”的开关,就会发现在不同的使用场景下,不只有60Hz和120Hz两种刷新率,比如息屏AOD为了降低功耗,就只有30Hz;很多手游最高也只支持90Hz,即便开启120Hz也没用。因此,要是说强制修改为其他隐藏刷新率会导致屏幕损坏,我觉得是不太可能的,对那种本身就支持LTPO的设备就更不可能了。 此外,Android系统也给开发者提供了查询所支持刷新率的接口,通过接口返回的Mode数组得知具体的刷新率参数: getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay.supportedModes.map { it.refreshRate.toInt() }在我的小米13上,通过上述接口获取到的刷新率为[60, 90, 120],说明在系统看来是支持90Hz的。 开发于是乎,我想开发一个小工具,既可以解锁90Hz刷新率,也可以在通知中心快捷地切换高低刷新率,免去每次都要去系统设置操作老半天的烦恼。 经过一番搜索,我发现在MIUI当中,要修改刷新率其实就是一行ADB命令的事情: adb shell settings put secure miui_refresh_rate 90此命令会修改系统Secure设置数据库,对非系统应用的开发者来说,通过官方SDK是没有办法直接修改的。但是,自从Android引入了无线ADB调试的功能之后,我们就可以配合Shizuku在应用内部执行adb shell命令了,相当于进行了免ROOT越权。 最终小工具的形态也很简单,一个快捷开关,一个简单的配置页面: ![]() ![]() 当然,我不会忘了开源:FpsSwitcher,你也可以在酷安下载到成品:MIUI 帧率开关
|
CopyRight 2018-2019 实验室设备网 版权所有 |