【资源集合帖】Android 性能测试-FPS

测试背景: 

APP 在测试机运行一段时间后出现手机发烫、卡顿、高 CPU 占有率的现象。将应用切入后台进行 CPU 数据的监测,结果显示,即使应用不进行任何操作,应用的 CPU 占有率都会持续的增长
卡顿的原因大致有:布局性能不好,内存垃圾回收机制(GC)--内存抖动(大量的内存在短期内占用和释放),CPU占用过高,硬件加速,过度绘制
参考网址:
 
工具使用次序:
首先使用GPU profile或使用adb shell dumpsys gfxinfo得到的速度,如果界面卡顿这些值应该大于16.67ms,这时候就需要使用traceview或systrace抓到详细的信息给开发提供。

应用profile trace 

步骤:
如果出现<60FPS的情况,用docs/tools/debugging/debugging-tracing.html
adb shell am profile start <package> /data/local/tmp/xxx.trace     #在测试之前启用
测试。。。。
adb shell am profile stop <package>测试之后立即执行,尽量让start 和stop短,因为越长越难分析。
adb pull /data/local/tmp/xxx.trace . #导出trace后用traceview查看。

使用systrace进行 

Tracing on Android 4.3 and higher

The general syntax for running Systrace from the command line is as follows.

$ python systrace.py [options] [category1] [category2] ... [categoryN]

Here is an example execution run that sets trace tags and generates a trace from a connected device.

$ cd ''android-sdk''/platform-tools/systrace
$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
To set trace tags for Systrace using the device user interface:
    On the device connected for tracing, navigate to: Settings > Developer options > Monitoring > Enable traces.
    Select the categories of processes to be traced and click OK.
options:
      gfx - Graphics
       input - Input
        view - View System
     webview - WebView
          wm - Window Manager
          am - Activity Manager
          sm - Sync Manager
       audio - Audio
       video - Video
      camera - Camera
         hal - Hardware Modules
         app - Application
         res - Resource Loading
      dalvik - Dalvik VM
          rs - RenderScript
      bionic - Bionic C Library
       power - Power Management
       sched - CPU Scheduling
        freq - CPU Frequency
        idle - CPU Idle
        load - CPU Load

reference:

应用帧率FPS测量 

Android应用帧率FPS是衡量应用流畅度的一个非常重要的指标,可以根据FPS对应用做一些优化,那么在开发过程中如何来测试我们的应用的FPS呢?
准备工具:Eclipse + Android测试终端
 
测试步骤:
1、在设置里打开GPU呈现模式分析。点击Android设备的“设置”->"开发者选项",然后勾选“GPU呈现模式分析”(各终端可能不一样,重点是就算adb shell dumpsys gfxinfo)。
2、重启我们的应用。启动应用以后,在应用的页面上做滑动。
3、打开命令行,在命令行输入:adb shell dumpsys gfxinfo "你自己的应用名字" > f:\fps.txt
 
结果分析:
1、打开生成的fps.txt,找到Profile data in ms这部分数据。 
2、为了看得更直接,我们可以把数据放到Excel中,然后以图表的形式进行查看。
3、从图中可以看出来,我这个应用的流畅度是很低的,正常情况下帧率应该在16ms左右,如果1秒60帧的话,而且Execute时间太长!所以是需要进行优化的

测试背景: 

APP 在测试机运行一段时间后出现手机发烫、卡顿、高 CPU 占有率的现象。将应用切入后台进行 CPU 数据的监测,结果显示,即使应用不进行任何操作,应用的 CPU 占有率都会持续的增长
参考网址:
 

应用profile trace 

步骤:
如果出现<60FPS的情况,用docs/tools/debugging/debugging-tracing.html
adb shell am profile start <package> /data/local/tmp/xxx.trace     #在测试之前启用
测试。。。。
adb shell am profile stop <package>测试之后立即执行,尽量让start 和stop短,因为越长越难分析。
adb pull /data/local/tmp/xxx.trace . #导出trace后用traceview查看。

使用systrace进行 

file:///home/alex/Android/Sdk/docs/tools/debugging/systrace.html
Tracing on Android 4.3 and higher

The general syntax for running Systrace from the command line is as follows.

$ python systrace.py [options] [category1] [category2] ... [categoryN]

Here is an example execution run that sets trace tags and generates a trace from a connected device.

$ cd ''android-sdk''/platform-tools/systrace
$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
To set trace tags for Systrace using the device user interface:
    On the device connected for tracing, navigate to: Settings > Developer options > Monitoring > Enable traces.
    Select the categories of processes to be traced and click OK.
options:
      gfx - Graphics
       input - Input
        view - View System
     webview - WebView
          wm - Window Manager
          am - Activity Manager
          sm - Sync Manager
       audio - Audio
       video - Video
      camera - Camera
         hal - Hardware Modules
         app - Application
         res - Resource Loading
      dalvik - Dalvik VM
          rs - RenderScript
      bionic - Bionic C Library
       power - Power Management
       sched - CPU Scheduling
        freq - CPU Frequency
        idle - CPU Idle
        load - CPU Load

reference:

应用帧率FPS测量 

Android应用帧率FPS是衡量应用流畅度的一个非常重要的指标,可以根据FPS对应用做一些优化,那么在开发过程中如何来测试我们的应用的FPS呢?
准备工具:Eclipse + Android测试终端
 
测试步骤:
1、在设置里打开GPU呈现模式分析。点击Android设备的“设置”->"开发者选项",然后勾选“GPU呈现模式分析”(各终端可能不一样,重点是就算adb shell dumpsys gfxinfo)。
2、重启我们的应用。启动应用以后,在应用的页面上做滑动。
3、打开命令行,在命令行输入:adb shell dumpsys gfxinfo "你自己的应用名字" > f:\fps.txt
 解析:
adb shell dumpsys gfxinfo packageName | awk '/Execute/,/hierarchy/{if(i>1)print x;x=$0;i++}' | sed /^[[:space:]]*$/d|awk '{if(length($0)==16print $1,$2,$3}'
结果分析:
1、打开生成的fps.txt,找到Profile data in ms这部分数据。
 
2、为了看得更直接,我们可以把数据放到Excel中,然后以图表的形式进行查看。
3、从图中可以看出来,我这个应用的流畅度是很低的,正常情况下帧率应该 在16ms左右,如果1秒60帧的话,而且Execute时间太长!所以是需要进行优化的
60fps<==>per frame 《16ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值