Android流畅度之帧率

背景:app改版,人为感受卡顿,需要客观数据支撑观点。故,搜索各种性能指标,并理解之。(这是一篇摘要文......)

首先,明确人为感受的性能不好属于下面哪种:

1. 响应时间,界面跳转后响应时间;

2. 流畅度,界面操作时或动画展示的效果;

而流畅度的衡量指标又有几种:

1. 帧率fps(Frames Per Second,每秒钟填充图像的帧率)

2. 丢帧SF(Skipped frame)

3. 流畅度SM(SMoothness)(腾讯分享

其中得到最广泛使用的还是帧率。以下详细说明之

回顾本源:Android如何绘制UI?

参考:显示性能指标性能评测调优

帧率值在什么范围可认定为流畅?

理想状态每秒展示60帧时人眼感受不到卡顿,1000ms/60帧,即每帧绘制时间不应超过16.67ms。

帧率如何计算?

 二者的区别是什么?

参考:FPS计算方法比较

实测补充说明:

  • 前提需要打开设置中的GPU绘制选项
  • 只记录执行adb命令最近的128帧信息
  • 记录过程冷启动(杀进程),则之前的数据丢失
时间: 2024-12-19 02:27:40

Android流畅度之帧率的相关文章

Android流畅度测试

Android流畅度测试 测试方法一:系统自带-开发者模式 测试方法二:FPS Meter测试安卓帧数 H5页面加载速度:window.performance.timing 测试方法一:系统自带-开发者模式 实际上,为了方便开发者测试,安卓本身就内置了流畅度检测的功能.不过,这需要我们开启隐藏的开发者选项.如果你在用原生系统,那么开启开发者选项的方法很简单,进入到设置菜单“关于手机”页面,点击数次“版本号”,即可开启开发者选项.如果用的是其他ROM,方法也许有所不同,比如说魅族的Flyme开启开

安卓 App 性能专项测试之流畅度深度解析-上篇

指标背景 流畅度,顾名思义是用户感知使用App页面时的流畅情况,"App卡不卡",这是用户最直接的感受. 但是要用量化之后的数据衡量流畅度,在Android平台这边并没有直接有效的方式/手段去监控. 帧率&刷新频率 首先需要了解到两个概念: 刷新频率(Refresh Rate) 代表屏幕在一秒内刷新操作的次数,这取决于硬件的固定参数,例如60HZ. 帧率(Frame Rate) 代表GPU在一秒内绘制操作的帧数,例如常见的24fps,60fps,单位是fps(每秒帧数),很多游

【MIG专项测试组】如何准确评测Android应用的流畅度?

转自 腾讯Bugly 叶方正,2008年加入腾讯,就职于无线研发部[专项测试组].曾经负责多个产品的性能优化工作,积累大量的移动终端平台优化以及评测经验. 怎样获取SM值? 前文我们分析了通过测量应用的帧率FPS并不能准确评价App的流畅度(如何量化Android应用的“卡”?流畅度原理&定义篇),FPS较低并不能代表当前App在UI上界面不流畅,而1s内VSync这个Loop运行了多少次更加能说明当前App的流畅程度. 那么我们可以直接在App代码中通过Choreographer的回调Fram

android之app流畅度分析

大多数人感觉卡顿等性能问题的最主要根源都是因为渲染性能.从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验.但是Android系统很有可能无法及时完成那些复杂的界面渲染操作.Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成.时间超出16ms越多,丢的帧就越多(可以大概估计5秒没响应抛出anr异常期间丢了多少帧,

<转>Android App性能评测分析-流畅度篇

1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字等操作,安卓的流畅度都表现比较糟糕,但是,对于App使用过程是否流畅,一直没有一个可靠的指标将用户的客观感受和数据一一对应.虽然之前有FPS(每秒帧数)作为游戏或视频类App的性能指标,但对于那些界面更新不多的App来说,仍不是一个合适的衡量数据.以下会根据实际app性能测试案例,展开进行app性能

提高Android应用手写流畅度(基础篇)

在使用android类的手写应用时,整体上都有这样一个印象:android的手写不流畅.不自然,和苹果应用比起来相差太远.本文结合作者亲身经历,介绍一下有效提高手写流畅度的几种方法: 1.未做任何处理的手写效果: 这是一个自定义的view,通过在onTouchEvent时间中捕获系统回调的触摸点信息,然后再onDraw方法里面刷新,可以明显地感觉到线条很生硬,并且在手写的过程中跟随感很差,反应迟钝,具体代码如下: package com.mingy.paint.view; import andr

Android 滚动RecyclerView加载图片时的流畅度优化

实现:使用onScrollStateChanged回调检测滚动状态,并在RecyclerViewAdapter内部设置类似isScrolling的状态值来控制网络图片的加载. 下面是代码举例: // BaseAdapter中添加如下代码 public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> { …… protected boolea

当我们讨论流畅度的时候,我们究竟在说什么?

前言:那些年我们用过的显示性能指标 相对其他 Android 性能指标(如内存.CPU.功耗等)而言,显示性能(包括但不仅限于我们常说的"流畅度")的概念本来就相对复杂.让我们更蛋疼的是,业界对显示测试评估方式也是丰富多样,这无疑更加重了我们对其理解的复杂程度. 笔者简单搜集了一些业界中提及的显示性能指标,大家可以来品评一下: 指标名称:FPS 相关资料:Android性能测试之fps获取 指标名称:Aggregate frame stats(N 多个指标) 相关资料:?Testing

app流畅度测试--使用SM

通过测量应用的帧率FPS并不能准确评价App的流畅度,FPS较低并不能代表当前App在UI上界面不流畅,而1s内VSync这个Loop运行了多少次更加能说明当前App的流畅程度. 那么我们可以直接在App代码中通过Choreographer的回调FrameCallback来计算Loop被运行了几次,从而知道应用的流畅度.但在实际情况下我们不一定能修改代码(实际发布的版本不允许加入测试代码)或者根本拿不到代码(譬如和竞品进行对比). 介绍一种更简单直观测量Android应用流畅度的方法,就是通过开