Android性能专项测试之GPU Profile

Testing Display Performance

Speed up your app

GPU Monitor能做什么?

分析GPU的性能,实时查看绘制每一帧所花费的时间

GPU Monitor使用准备

  • root 手机
  • 开发者选项中的Gpu profile开关打开
  • Android Studio 1.4+

GPU Monitor启动

在Android Monitor中点击GPU,就已经打开了该工具,这个时候你在所选App界面中操作的话,面板中就会实时显示绘制数据:

GPU Monitor的4类数据

5.1之前的数据只有蓝,红,黄三种颜色,5.1加入了紫色数据

Draw(蓝)

表示View.onDraw()方法的耗时,这部分主要是建立DisplayList对象用的,这些对象将会被转化成OpenGL命令,GPU只能读懂OpenGL命令。

如果这个地方耗时比较大,说明视图比较复杂。

蓝色区域代表的时间,是创建DisplayList对象的时间。

Prepare(紫色)

5.1以后将UI Thread线程所做的事分成了2个线程来做:UI Thread和Render Thread。新加的Render Thread线程会将Draw过程生成的DisplayList对象转化成为OpenGL的命令,然后发送给GPU,这个时候UI Thread可以空闲下来处理下一个frame的数据。如果传送的资源过多的话这个地方耗时就比较大。

紫色区域代表的时间就是UI Thread传送数据给Render Thread所用的时间。

Process(红)

红色区域代表创建OpenGL命令的时间

Execute(黄)

黄色区域代表发送OpenGL命令给GPU所用的时间

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-27 13:34:43

Android性能专项测试之GPU Profile的相关文章

Android性能专项测试之Batterystats

Batterystats & Battery Historian Walkthrough Battery Historian Charts Android应用的耗电量统计 SupplicantState Viewing Battery Use Data batterystats使用条件 5.0以上系统 battery-historian脚本 batterystats的启动 启动统计Battery数据的话,首先要初始化batterystats数据 adb kill-server > adb d

Android性能专项测试之耗电量统计API

参考文章:Android应用的耗电量统计 深入浅出Android App耗电量统计 Battery stats - CPU total vs CPU foreground 深入浅出 Android App 耗电量统计 浅析Wakelock机制与Android电源管理 耗电量API Android系统中很早就有耗电量的API,只不过一直都是隐藏的,Android系统的设置-电池功能就是调用的这个API,该API的核心部分是调用了com.android.internal.os.BatteryStat

Android性能专项测试之battery-historian

数据准备 battery-historian工具需要使用bugreport中的Battery History 数据,我们在开始的时候需要通过以下命令来打开电池数据的获取以及重置: <code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source C

Android性能专项测试之Heap Snapshot工具

Speed up your app Heap Snapshot能做什么? 获取Java堆内存详细信息,可以分析出内存泄漏的问题 Heap Dump启动 在内存面包中,点击图中红色标注的按钮,就会显示我们的Heap Snapshot面包 Heap Snapshot面板 Heap Snapshot详细信息面板 该面板里的信息可以有三种类型:app heap/image heap/zygote heap. 分别代表app 堆内存信息,图片堆内存信息,zygote进程的堆内存信息. A区域 列举了堆内存

Android性能专项测试测试点指导(二)

Android性能专项测试测试点指导(一) 上一篇文章通过导图的方式介绍了性能专项的几个测试点,那么今天将会详细阐述下. 内存: 内存泄漏: 老生常谈的最多就是这货,这家伙的测试方法其实是最简单也是最难的,为什么简单,因为你要定位到路径,只需要重复操作即可,比如你怀疑播放器泄漏了,重复进入退出N次,那么就可以确定是播放器出问题了,可以提单了:说难,你需要进一步分析到底是哪里泄漏了,通过MAT工具去对比,去分析定位到类,那就需要精力和时间了,通常还吃力不讨好-最近,出现了这样一个工具LeakCan

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

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

Android安全专项测试之Dex2jar

dex2jar 辅助工具 JD-GUI dex2jar包 下载完dex2jar包后,解压缩后得到下面的目录: 反编译 讲APK包后缀名改为.zip文件,然后解压缩,解压缩后得到的文件目录如下: 这个里面和apktool工具反编译的文件是有区别的,比如AndroidManifest.xml文件没有之前那么清晰,看不到原来数据: 当然这个地方我们不关心这个,我们主要看classes.dex文件,把这个文件copy到dex2jar目录下. 给d2j_invoke.sh添加执行权限,后执行如下命令: c

Android安全专项-Apk加固

参考文章 Android APK加壳技术方案[1] Android APK加壳技术方案[2] Android中的Apk的加固(加壳)原理解析和实现 0x00 原理部分我不献丑了,上面3篇文章说的很清楚,我直接实战,讲述从0开始如何最终实现加固的整个过程,踩了不少坑. 0x01 第一步创建被加固Apk,就是你的源码Apk.你做的工作就是防止这个Apk被破解.这个APK要注意以下几点: 记住你的主Actvitiy名和其他Activity名 从途中可知我们的主Activity为doctorq.com.

Google 发布 Android 性能优化典范

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