Android 性能测试
来源:互联网 发布:数据库系统发展历史 编辑:程序博客网 时间:2024/05/22 15:50
一、UI性能问题
方法1:肉眼观察
1、进入设置——开发者选项,打开“Profile GPU rendering” ,选择“On screen as bars”
反复操作要评估的页面,观察柱状图,如果高度在“绿色的横线(代表每一帧的绘制时间是16ms)”上下波动,说明UI流畅。如果高于绿线很多,说明有卡顿
方法2:使用脚本
1、进入设置——开发者选项,打开“Profile GPU rendering” ,选择“In adb shell dumpsys gfxinfo”
反复操作要评估的页面,使用脚本抓取每一帧绘制的时间,计算平均绘制时间,如果在16ms附件,说明UI流畅。如果大于16ms很多,说明有卡顿
二、代码逻辑问题&内存泄漏
如果肉眼感觉页面不流畅,或者通过脚本计算出,1s内绘制的帧数比60小很多。但是每一帧平均绘制时间在16ms左右(UI绘制流畅),说明,可能存在代码逻辑问题,或者内存泄漏。
代码逻辑QA是发小不了的,但是可以尝试发现是否有内存泄:
1、多次进入被怀疑内存泄漏的页面,最后退出该页面,使用Android Studio 抓取java 堆栈信息,获取 xxx.hprof 文件,该文件保存在项目目录的captures文件夹下。使用以下命令转成标准的.hprof 文件,或者在Android studio的captures视图直接导出。
hprof-conv dump.hprof converted-dump.hprof
2、使用Memory Analyzer工具分析
打开导出的标准hprof文件后,查看Histogram,搜索被怀疑内存泄漏的页面Activity的名称,查看该页面Activity的对象有几个,就存在内存泄漏,因为该页面退出了,对应的Activity对象就销毁了,个数应该是0。
右击泄漏的Activity,选择Merge Shortest Paths to GC Roots——with All references,可以进一步找到持有该Activity的对象,也就是这个对象没有销毁,导致Activity没有销毁,出现了内存泄漏
三、性能学习资料:
youtube上搜索“android performance patterns”,第一个视频
腾讯出的一本书《
》- Android 性能测试工具
- Android的性能测试
- Android应用性能测试
- android性能测试
- Android应用性能测试
- Android 终端性能测试
- Android应用性能测试
- Android 性能测试
- Android 性能测试初探
- android 性能测试
- android性能测试systrace
- apt测试android性能
- android性能测试工具
- Android 性能测试
- Android App性能测试
- Android性能测试
- android性能测试工具
- android测试性能工具
- 庐山会议
- 自旋锁与互斥锁的对比、手工实现自旋锁
- Eclipse For ESP8266(在windows x86环境下建立Esp8266编译环境)
- Handler的工作原理
- 互联网金融入门篇(一) 借方和贷方
- Android 性能测试
- 第16周 oj Problem C: 结构体--学生信息排序
- 83. Remove Duplicates from Sorted List
- JSP系统开发学习之三用户登录系统改进MVC模式开发
- 2017节假日、休息日
- 三、程序猿遇上精神运动发育迟缓儿子(大概20131201--20131230)
- 常用的shell内置变量
- RERAN:安卓系统的定时和点击的录制和回放——(1)
- 正则表达式技巧