Android 60FPS的理解

Android为什么卡顿系统原理分析 2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。 **大多数用户 阅读详情

我们先来理一下基本的概念:

  1. 60 fps 的意思是说,画面每秒更新60次
  2. 这60次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅
  3. 每秒60次,也就是 1/60 ~= 16.67 ms 要更新一次

在理解了上面的基本概念之后,我们再回到 Android 这边,为何 Android 现在的渲染机制,是使用 60 fps 作为标准呢?这主要和屏幕的刷新率有关。

基本概念

  1. 我们前面说的 60 fps,是针对软件的
  2. 这里说的屏幕的刷新率,是针对硬件的,现在大部分手机屏幕的刷新率,都维持在60 HZ,移动设备上一般使用60HZ,是因为移动设备对于功耗的要求更高,提高手机屏幕的刷新率,对于手机来说,逻辑功耗会随着频率的增加而线性增大,同时更高的刷新率,意味着更短的TFT数据写入时间,对屏幕设计来说难度更大。
  3. 屏幕刷新率 60 HZ 只能说够用,在目前的情况下是最优解,但是未来肯定是高刷新率屏幕的天下,个人觉得主要依赖下面几点的突破:
    1. 电池技术
    2. 软件技术
    3. 硬件能力

综上,目前的情况下, Android 的渲染机制是 16.67 ms 绘制一次, 60hz 的屏幕也是 16.67 ms 刷新一次,所以大家见到的 Android 手机,基本都是这个配置,目前阶段下的最优解。

效果提升

如果要提升,那么软件和硬件需要一起提升,光提升其中一个,是基本没有效果的,比如你屏幕刷新率是 75 hz,软件是 60 fps,每秒软件渲染60次,你刷新 75 次,是没有啥效果的,除了重复帧率费电;同样,如果你屏幕刷新率是 30 hz,软件是 60 fps,那么软件每秒绘制的60次有一半是没有显示就被抛弃了的。

如果你想体验120hz 刷新率的屏幕,建议你试试 ipad pro ,用过之后你会觉得,60 hz 的屏幕确实有改善的空间。

站在Google角度看渲染机制,从Android渲染体系设计到Flutter渲染体系设计_android渲染引擎 google在设计考量中去中和这两个硬件的性能速度,采取的是将两者的绘制速度与频率控制在一定的范围内,也就是我们常提到的60FPS这个阈值上,所以他需要对于屏幕的刷新评率与当前的APP制图速度进行控制,所以他设计了surfaceflinger对于刷新率进行控制,在APP的绘制流程中采用了Choreographer对于制图速度进行控制。屏幕是一组硬件,这个组件需要展示的数据实际上是一组图形数据,也就是屏幕的数据诉求其实是一组bitmap数据。一直都是绕不开的话题,不管是工作中、还是面试中。 阅读详情

相关推荐

UnityProfiler中的渲染性能分析_2024-07-22_23-54-31.Tex

在Unity中,渲染管线(Rendering Pipeline)是游戏引擎处理场景并将其绘制到屏幕上的过程。这个过程包括多个阶段,从场景的构建、光照计算、着色器执行到最终的像素输出。理解渲染管线对于优化游戏性能至关重要,因为它直接影响到游戏的视觉效果和运行效率。

924

关于渲染帧率(FPS)的问题

先列举几个关于渲染帧率的文章: 1. http://ruinerlee.blog.163.com/blog/static/215611167201292990203/ 2. http://blog.codingnow.com/2008/04/fps.html 3. http://blog.youkuaiyun.com/strongcoding/article/details/6252313#include

KingW 1万+

Systrace系列3 —— Why 60 fps ?

本文解释一下为何大家总是强调 60 fps。为何我们讲到流畅度,要首先说 60 帧。在理解了上面的基本概念之后,我们再回到 Android 这边,为何 Android 现在的渲染机制,是使用 60 fps 作为标准呢?这主要和屏幕的刷新率有关。

tectrol的专栏 740

DrawCall

1、定义:每次引擎准备数据并通知GPU的过程称为一次Draw Call,我们关心每帧的DrawCall次数 2、Unity生成一帧画面的处理过程:       首先,经过简单的可见性测试,确定摄像机可以看到的物体       然后,把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放、以及摄像机位置等),相关光源,纹理,渲染方式(由材质

加油小亮的博客 1068

模拟IC设计实战:折叠式共源共栅放大器的参数优化与噪声抑制

本文深入探讨了折叠式共源共栅放大器的核心设计要点。针对低电压下增益与输出摆幅的矛盾,文章详细阐述了从套筒式结构转向折叠式结构的必要性,并重点分析了其参数优化与噪声抑制的实战方法。通过手把手的参数计算流程,指导如何平衡增益、带宽、摆幅与功耗。同时,深入剖析了噪声来源,强调了采用PMOS输入对管以抑制1/f噪声,并提供了针对共栅管及电流镜的噪声优化策略,是模拟IC设计中高性能放大器设计的实用指南。

vv45678的博客 978

克里金插值(Kriging)在MATLAB中的实现(克里金工具箱)

一,直接献上克里金插值MATLAB工具箱 链接:https://pan.baidu.com/s/1p0lt2G8KQ-els7Dyw5jPFg 提取码:wcss 下载后将该程序添加到MATLAB安装文件夹中的/toolbox下,然后在设置路径中添加该程序文件为默认路径即可调用程序。 资源中内附程序使用说明PDF。 二、本人实际操作代码如下所示,标注如下 load data1 %载入数据 %模型参...

qq_40937675的博客 6万+

解析浏览器渲染的“一帧”——事件循环、帧动画、空闲回调

目录概述eventLoop一帧可能执行多个taskrequestAnimationFramerequestIdleCallback掉帧与时间切片参考资料 概述 一般浏览器的刷新率为60HZ,即1秒钟刷新60次。1000ms / 60hz = 16.6 ,大概每过16.6ms浏览器会渲染一帧画面。 在这段时间内,浏览器大体会做两件事:task与render。 task被称为宏任务,包括 setTimeout,setInterval,setImmediate,postMessage,requestAnimati

cicistream 4717

自抗扰控制(ADRC)原理与MATLAB实现详解

自抗扰控制(ADRC)是一种先进的鲁棒控制策略,其核心在于通过扩张状态观测器(ESO)实时估计并补偿系统总扰动。相比传统PID控制,ADRC不依赖精确数学模型,特别适合处理非线性、时变系统。从控制原理看,ADRC将系统内部动态和外部扰动统一建模,通过带宽参数化方法实现快速响应与强抗扰能力。在工程实践中,ADRC已成功应用于无人机飞控、伺服系统等场景,MATLAB仿真显示其上升时间可比PID提升46%,抗扰动恢复时间缩短60%。典型实现包含ESO设计、扰动补偿和PD控制三部分,参数整定遵循ω₀=3~5倍系统带

weixin_33585822的博客 95

浅谈Android的屏幕刷新

我们做安卓的都基本听说过16.6ms的手机刷新机制,那么这个16.6ms是怎么来的呢?其实是因为当时安卓主流手机的屏幕刷新屏幕是60HZ,60Hz代表1s中,手机的屏幕会刷新60次,平均每一次刷新时间是 1s/60 = 16.66ms,但是到2020年,市场上出现了90HZ和120HZ的手机了,所以说16.6ms只是大部分手机的一帧的刷新时间。 ...

xueyoubangbang的博客 1114

论文学习| PoseDiffusion: 通过扩散辅助的束调整解决姿态估计问题

解决的问题:相机姿态估计,这是计算机视觉中的一个经典问题。提出的方法:一种新的方法,PoseDiffusion,它将Structure from Motion(SfM,从运动中构建结构)问题整合到概率扩散框架中。优势模拟捆绑调整的迭代过程。整合来自极线几何的几何约束。在具有挑战性的场景中(如视角稀疏、基线宽的情况)表现良好。能够为多张图片预测内外参。结果:在现实世界数据集上,PoseDiffusion超越了经典的SfM管道和学习型方法,在不同数据集上具有跨数据集的泛化能力,无需进一步训练。

麻辣小香郭的博客 1990

S32K144 ADC硬件触发实战:PDB与TRGMUX配置避坑指南

本文深入解析了S32K144微控制器中ADC硬件触发的两种核心方案:PDB与TRGMUX。通过对比其架构差异、详细配置流程及常见问题排查,提供了从寄存器操作到DMA联动的完整优化指南,旨在帮助开发者解决多通道采样时序不稳、CPU负载过高等实际难题,实现高效稳定的数据采集。

weixin_29168153的博客 443

Ticker性能优化秘籍:如何在100+动画中保持60FPS

Ticker是一款Android文本视图控件,通过滚动文本变化动画为应用带来生动的视觉体验。对于开发者而言,在实现流畅动画效果的同时保持60FPS的稳定帧率是一项挑战。本文将分享Ticker控件的核心性能优化策略,帮助开发者在处理大量动画时依然保持界面流畅。 ## 1. 理解Android渲染机制与60FPS目标 Android系统的屏幕刷新率通常为60Hz,这意味着应用需要在每16ms内完成

gitblog_01199的博客 938

[GXYCTF2019]BabyUpload1 -- .htaccess文件解析与蚁剑实战指南

本文深入解析了[GXYCTF2019]BabyUpload1文件上传漏洞的实战利用。通过绕过后缀名与内容检测,上传包含PHP代码的.jpg文件,并利用.htaccess文件强制服务器将其解析为PHP脚本。文章详细介绍了.htaccess的原理、构造方法、Content-Type绕过技巧,并演示了如何使用中国蚁剑连接Webshell获取Flag,为Web安全学习提供了完整实战指南。

weixin_29016315的博客 510

Android性能优化典范(一)

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人。

2401_85493350的博客 1142

天地图下载带审图号(审图号: GS(2024)0650号)的 “行政区划” 数据(含shp文件下载地址)

在科研投稿论文过程中,多数期刊杂志要求我们制作涉及国界的图件,必须使用自然资源部地图技术审查中心发布的标准地图底图。如地理学报、地理科学等期刊的投稿指南中写到:非标准底图本刊不予发表!(如图1.1所示)如果一定要用,凡涉国界图件(国内部分地区、全国、世界部分地区、全球)必须使用自然资源部标准地图服务系统标准地图底图(http://bzdt.ch.mnr.gov.cn/)(如图1.1所示)或国家测绘局地理信息局标准地图底图(如图1.2所示),所用底图边界要完全无修改(包括南海诸岛位置)。

JData_Engineer的博客 2304

AgentScope Java 2.0 项目实战:从零构建企业级自主Coding Agent

本文基于 AgentScope Java 框架,完整拆解两个生产级 AI Agent 项目的从零开发全过程。其一是企业级自主编码机器人(agentscope-codingagent),支持 Issue→PR 自动实现、PR Code Review、Docker 沙箱隔离执行与多通道接入;其二是个人 AI 助手管理平台(agentscope-paw),采用 Spring Boot + React 全栈架构,支持多 Agent、技能市场与多 IM 通道。

program哲学 839

Android 性能优化

1.Android渲染知识 ①绘制原理 Android系统要求每一帧都要在16ms内绘制完成,平滑的完成一帧意味着任何特殊的帧需要执行所有的渲染代码(包括framework发送给GPU和CPU绘制到缓冲区的命令)都要在16ms内完成,保持流畅的体验。这个速度允许系统在动画和输入事件的过程中以约 60 帧每秒( 1秒 / 0.016帧每秒 = 62.5帧/秒 )的平滑帧率来渲染。 如果应用没有在16ms内完成这一帧的绘制,假设花了24ms来绘制这一帧,那么就会出现掉帧的情况。 系统准备将新的一

zenmela2011的专栏 943

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android测试工具之systrace

测试准备 Systrace工具特别适合用来分析UI的性能。 理论基础:在开发应用时,通常使用60fps的帧率来检测交互是否流畅,及16.66ms/帧 首先确认一点,android studio集成了所有Android SDK下的工具。涉及android SDK的工具可以直接在android studio中安装使用。Android SDK 另外新的版本android studio取消了sys...

louniuous的博客 869

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android app优化之导致app 卡顿慢的直接原因

总结一下,这里是介绍了导致我们app卡顿慢的直接原因,也是底层原因,至于别的原因例如内存泄漏,耗时任务在主线程这些问题都是先影响了Android渲染机制。然后才会出现卡顿慢现象的,准确说是影响到渲染机制cup相关部分导致延后运行。知道了这个原因后,优化的具体措施就有了。

Android 小生的博客 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android动画帧率_Android流畅度之帧率

背景:app改版,人为感受卡顿,需要客观数据支撑观点。故,搜索各种性能指标,并理解之。(这是一篇摘要文......)首先,明确人为感受的性能不好属于下面哪种:1. 响应时间,界面跳转后响应时间;2. 流畅度,界面操作时或动画展示的效果;而流畅度的衡量指标又有几种:1. 帧率fps(Frames Per Second,每秒钟填充图像的帧率)2. 丢帧SF(Skipped frame)3. 流畅度SM...

weixin_39931146的博客 526

学习:Android性能优化典范

android性能优化 创建更快更优秀的android应用 渲染机制、内存与GC、电量优化 0)render performance 大多数用户所感知的卡顿问题最重要的根源都是因为渲染性能 Android系统无法及时完成复杂界面渲染操作 Android系统每隔16ms发出VSYNC信号,触发UI渲染 只有每次渲染成功,才能够达到流畅画面所需要的60fps的帧率,这也就意味着程序的大多数操作都必须在...

ZPCrobot的博客 427

Android性能优化典范

[转载]Android性能优化典范 JAN 17TH, 2015|COMMENTS 2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方...

aion123123的博客 105

Systrace 学习笔记

和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、Systrace 简介二、Systrace 预备知识三、Why 60 fps四、System...

程序员Android 1686
上一篇: Android APP 卡顿问题分析及解决方案
下一篇: adb shell dumpsys gfxinfo 包名 数据分析
网络卷毛
博客等级 码龄14年 13粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值