版本说明(2026-10-13 核查):本文写于 2019 年,机型评价、“90 Hz 是当时较好选择”和购机展望保留为历史看法,不是当前购买建议。下文修正刷新率、帧率和输入处理的解释,补充 Android 11/API 30 与 Android 15 QPR1 等版本的变化。原 Trace 裁图没有完整采集条件,不作为新设备实测。
PC 上高刷新率屏幕很早就出来了,但是 Android 上高刷新率屏幕出现在 Android 手机上还只是这两年的事情,尽管雷蛇在 2017 年就推出了 120Hz 屏幕的手机,但是反响平平;而个人认为今年努比亚的红魔 3 和 OnePlus 的 7 Pro 推出的 90Hz 的屏幕才是 Android 手机目前这个阶段最好的选择,也是目前能显著提升用户体验的一个点。对高刷新率屏幕没啥概念的,可以去苹果体验店体验一下 120Hz 刷新率的 iPad Pro。
硬件时间点可以对照厂商资料:初代 Razer Phone 于 2017 年发布 120 Hz 屏幕,2018 年的 Razer Phone 2也支持 120 Hz。OnePlus 7 Pro和红魔 3则是本文讨论的 2019 年 90 Hz 机型。iPad Pro 的 ProMotion 在 2017 年已支持最高 120 Hz。这些规格不能替代具体场景的帧率测量。
技术术语解释
什么是屏幕刷新率 ?
屏幕刷新率描述显示更新的频率,单位是 Hz。固定在 60 Hz 模式时,每秒有约 60 次刷新机会;固定 90 Hz 时约为 90 次。没有新内容时,同一画面可以被重复显示,所以“屏幕刷新了”不等于“应用产生了一个新画面”。
它受显示硬件能力限制,也受系统选择的显示模式和策略影响。手机标称最高 120 Hz,不代表所有时候都以 120 Hz 工作;动态刷新率也不能用一个永久固定的周期描述。
什么是 FPS ?
FPS 是 Frames Per Second,即每秒帧数。使用这个指标时要说明统计的是应用生成、提交,还是最终呈现的帧;不同位置测出的值可以不同。帧率取决于软硬件、内容负载和调度,不宜简单称为只由软件决定。
平均 90 FPS 也不能证明每帧都均匀,相邻帧的间隔和输入到显示的延迟同样影响体验。静止页面没有持续生成新帧,通常是正常的节能行为。
什么是 Vsync ?
Vsync 是 Vertical Synchronization(垂直同步)的简称。在 Android 显示流程中,它用于协调应用渲染、SurfaceFlinger 合成和显示更新的节奏;它不会自动把应用 FPS 变成屏幕刷新率。
固定刷新模式下,周期可以用 1000 / 刷新率 算出:
| 刷新率 | 刷新间隔 |
|---|---|
| 60 Hz | 约 16.67 ms |
| 90 Hz | 约 11.11 ms |
| 120 Hz | 约 8.33 ms |
这些是刷新间隔,不是“任意一段绘制代码低于这个数就一定不掉帧”的保证。应用、GPU、合成和显示可以流水执行,阶段起点、相位、队列和完成截止时间都要一起看。AOSP 的 Vsync 说明描述了应用与 SurfaceFlinger 信号相对硬件 Vsync 的相位关系。
什么是 Input 扫描周期 ?
触摸扫描是触控硬件采样,事件读取、分发和应用消费则是后续步骤。扫描率随设备、模式和负载变化,原文“约 8 ms”不能代表所有手机;8 ms 对应约 125 Hz,也不是 120 Hz 的精确周期。
即使假设严格每 8 ms 采一次,按相位划分的 16.67 ms 窗口也可能包含 2 或 3 个采样,11.11 ms 窗口可能包含 1 或 2 个。这个数量差异本身不证明画面一定不均匀,还要看样本时间戳、合并、重采样和消费方式。
例如,Android 9 的 InputTransport包含批处理和触摸重采样;Android 16 的 BatchedInputEventReceiver既有安排到 CALLBACK_INPUT 的批量消费,也有关闭 batching 后直接消费的路径。不能概括为“所有输入只有 Vsync 到来才处理”。
90Hz 用户体验
对滑动和动画来说,90 Hz 屏幕持续呈现节奏均匀的 90 FPS 内容,通常比同条件的 60 FPS 更新更细密。不过,刷新率与内容帧率不必始终相等:30 FPS 内容在 60 Hz 上每帧显示两个刷新周期,也可以有稳定节奏。
如果屏幕固定 90 Hz、内容固定 60 FPS,两者不是整数倍关系,帧的显示时长可能交替变化,带来 judder(节奏不均)。屏幕若能切到 60 Hz 或合适的整数倍模式,可以改善这种匹配。反过来,60 Hz 屏幕无法完整呈现每秒 90 个独立更新;多生产的帧可能被替换、丢弃或让队列阻塞,具体取决于缓冲和呈现策略,不能只用“必然丢帧”概括。
原文“Android 架构和硬件不足以支持 120 Hz + 120 FPS”的判断过于绝对。2017 年已存在 120 Hz Android 设备;是否能在具体场景稳定输出 120 FPS,要看应用负载和整机实现,不能由平台名或芯片型号直接判断。对 2020 年的预测现在已是历史展望,不能继续当作未来购机建议。
原文的 OnePlus 90 Hz 与 60 Hz 对比视频作为当年的演示入口保留。拍摄、编码、播放帧率以及观看屏幕都会影响观感,宣传视频不能代替受控的帧时间和延迟测试。
从系统角度来看 90fps 的工作原理
以使用硬件加速 View/HWUI 的界面为例,主要流程是:
- 输入、动画或其他状态变化产生更新需求,不限于用户点击。
- 输入事件分发到应用,应用处理业务或更新列表状态。
- Choreographer 安排相应回调;只有需要时才进行遍历,内容变化也不一定每次都触发完整 measure、layout、draw。
- 主线程记录/更新绘制状态,RenderThread 执行相关渲染工作并提交缓冲;CPU 方法结束不等于 GPU 已完成,缓冲是否可用还受同步机制约束。
- SurfaceFlinger 接收图层缓冲并协调合成,可能使用 GPU 客户端合成或 HWC 设备合成,再由显示硬件呈现。不是所有图层都由 SurfaceFlinger 的 CPU 主线程逐像素画完。
见 SurfaceFlinger 与 WindowManager。90 FPS 与 60 FPS 的主要流程相似,但游戏、自有 Surface 和不同系统版本会有不同渲染路径,不能把所有应用都套进同一张 HWUI 图。
90fps 下 App 的渲染流程

Systrace 时间线从左到右。原图标的是 android.contacts(PID 9952),选区显示 10.891 ms;它是鼠标所选区间,不能据此证明某帧从输入到显示只花了这个时间,也不应替代名义 90 Hz 周期 11.11 ms。
图中文字需要补充两点:Input、Animation、Traversal 是 Choreographer 的不同阶段,performTraversals() 不是它们的共同容器;图中的 DisplayPlayList 应为 DisplayList,主线程记录绘制信息与 RenderThread/GPU 执行也不是同一件事。
90fps 下 SurfaceFlinger 的渲染流程

这张图的选区约 11 ms,可见图层标签 com.oppo.market/...,并不是上一张联系人应用的同一条连续调用链。StatusBar#0 是图层名称,不是 SystemUI 进程行;VSYNC-app 与 VSYNC-sf 展示不同阶段的节奏,可能存在相位差。
合成提交也不等于屏幕已经完成呈现。两张图保留为当年的流程示意;没有完整 Trace 和设备条件,不能从它们计算端到端延迟或整机掉帧率。
90fps 的优势和挑战
优势
下面保留的是 2019 年的个人体验和选购看法。前两条的“不可逆”是主观感叹,不能当成已验证的生理规律;第三条的当年购机建议已过期。感受因人和场景而异,标称刷新率也不保证输入延迟和帧节奏都更好。
- 90fps 会带来更加顺滑的用户体验, 60fps 的时候, 1s 才更新 60 张图,这 60 张图在 1s 内顺序播放从而让人的视觉认为是连续的画面在播放, 但是人眼会比较挑剔, 所以当看多了 90 fps 的画面, 即每秒播放 90 张画面的时候, 再回去看 60 fps 就会觉得卡顿, 不连贯.
- 高刷新率屏幕使用习惯了,会没法适应低刷新率的屏幕,这是一个不可逆的过程,在挑选手机的时候需要注意这一点。
- 另外随着用户更换手机的频率变低,买一台一步到位的手机还是比较重要的,顶级屏幕 + 大电池 + 顶级 SOC + UFS + 大内存。今年下半年会有不少这样的机器出现,目前还在观望的同志可以再等等。
挑战
性能。 从 60 Hz 提高到 90 Hz,目标更新间隔缩短了,但实际瓶颈可能在主线程、RenderThread、GPU、内存带宽、合成或资源等待,不能固定排成“CPU 第一、I/O 第二、GPU 第三”。Snapdragon 855、UFS 3.0 是 OnePlus 7 Pro 的配置,不是实现 90 FPS 的普遍必要条件;存储在资源加载时可能影响表现,却不是每帧必经的计算门槛。也不能在没有对应测试的情况下,把 Razer Phone 的体验全部归因为芯片不够快。
三缓冲能够改善流水线利用率,也可能增加排队延迟,不能保证偶尔超过帧截止时间仍然无卡顿。排查时应结合实际帧时序与呈现;Android 12(API 31)起可参考 Perfetto FrameTimeline,而不是只比较一根 CPU 柱子是否低于 11.11 ms。
功耗。 在其他条件接近时,更频繁的渲染与显示更新通常增加功耗,但幅度取决于面板、内容、亮度、渲染负载和热状态。减少渲染分辨率可能减轻部分 GPU/带宽负担,却不等于改变了物理屏幕,也不保证固定比例省电。静止界面或低帧率内容可以降低更新频率,没必要始终让全系统跑满 90 FPS。
App 适配。 常规框架动画通常跟随系统安排的帧回调,但固定写死 16 ms 的逻辑、自有渲染循环和重负载仍需调整。游戏应按目标帧率安排生产和提交节奏;WebView、SurfaceView 只是承载方式,最终还要看其内容与渲染器,不能笼统说它们支持或不支持 90 FPS。
现代 Android 的适配入口
- Android 11 / API 30:
Surface.setFrameRate()用于表达内容的目标帧率,系统结合显示能力、其他图层和电源策略决定实际模式。它不强制成功,也不会自动把应用渲染循环提速或限速。固定帧率视频可使用FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,普通游戏等内容使用DEFAULT;不要每帧反复设置。 - 游戏帧节奏: Android Frame Pacing(Swappy)帮助协调 OpenGL/Vulkan 帧的提交与显示节奏。请求高刷新率、按时产出帧和持续保持性能是不同任务,都要测量。
- Android 15 QPR1 及以上: 自适应刷新率 ARR还要求设备实现相应 HAL 支持,不是升级系统后所有面板自动获得同样能力。显示刷新率可以随内容变化,普通应用也不必把静止画面持续重绘成 90/120 FPS。
开发者选项的“显示刷新率”展示显示模式信息,不等于当前应用的真实产帧率。对比高刷体验时,至少同时记录实际显示模式、应用帧间隔、输入延迟、功耗/热状态和测试场景。
本文知乎地址
由于博客留言交流不方便,点赞或者交流,可以移步本文的知乎界面
知乎 - 新的流畅体验,90Hz 漫谈
关于我 && 博客
下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!
- 博主个人介绍 :里面有个人的微信和微信群链接。
- 本博客内容导航 :个人博客内容的一个导航。
- 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
- Android性能优化知识星球:付费社群已于 2026 年停止运营,不再招收新成员;此处保留历史介绍。
一个人可以走的更快 , 一群人可以走的更远
