android 性能测试 简介,android性能测试工具traceview简介[转载]
一、
TraceView工具简述
Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形界面的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。
二、
TraceView工具使用方法
TraceView有三种启动方式,下面逐一介绍:
1、 代码中启动
可以在代码中添加
Debug.startMethodTracing(“Tracelog”);
Debug.stopMethodTracing();
使用这种方式需要确保应用的AndroidMainfest.xml中的SD卡的读写权限是打开的,即
应用运行完后,会在SD卡下生成一个Tracelog文件,使用adb
pull把这个文件拷贝至XP系统上,再在android sdk的tools目录下执行traceview
Tracelog,则会弹出一个图形界面,通过这个图形界面就可以分析出应用的性能瓶颈;
2、 Eclipse中启动
Eclipse启动traceview及其简单,在DDMS中对需要分析的应用进程点击如下按钮
在需要停止traceview的地方点击相同的按钮,则Eclipse会自动弹出类似1中的一个图形界面;
3、 adb 命令行启动
adb shell am
profile start
adb shell am
profile stop
PROCESS_ID为应用的进程号,可以用ps命令获取,TRACE_FILE为需要存储的Trcaelog文件。
执行上面的命令后,会生成对应的TRACE_FILE,使用adb
pull把这个文件拷贝至XP系统上,再在android sdk的tools目录下执行traceview
Tracelog,则会弹出一个图形界面,通过这个图形界面就可以分析出应用的性能瓶颈;
三、
TraceView界面说明
上述步骤生成的图形界面如下所示:
1、时间轴面板:
每个线程的执行都显示在随着时间渐增右移的各自行上。不同的方法用不同的颜色来表示。下面的细线显示选中方法的调用时长(由进入到退出)。
2、Profile面板:
该表给出了the inclusive and exclusive
times及他们所占有的百分比。
Exclusive time是该函数本身基本操作(不包括子函数调用)的时间。
Inclusive time是该函数调用所用的时间(包括子函数调用)的时间。
列1:”Name”表示函数名。
双击函数名,可以看到在上半界面是时间轴面图(Timeline
Panel)看他的所消耗的时间段。(用粗的线段标注)。
双击函数名左边的”+”展开后可以看到,该函数的”parents”和”children”
列2:”incl%”表示函数的Inclusive
time在整个MethodTracing时间里占的百分比。
列3:”Inclusive”表示Inclusive time。
列4:”Excl%”表示函数的Exclusive
time在整个MethodTracing时间里占的百分
比。
列5:”Exclusive”表示Exclusive time。
列6:”Calls+RecurCalls/Total”表示对函数的调用次数(包括递归调用)。
列7: 新的版本(比如2.2)还有”time/calls”表示平均的调用时间(即Inclusive
time/
total calls)。
注:如果函数A调用函数B那么函数A称为函数B的”parents”,函数B称为函数A的”children.”
四、
TraceView工具实例使用说明
本例以安居客选择一个城市中的一套房源进行收藏的过程为例,详细讲述如何使用TraceView工具。
操作步骤如下:
1、 启动Eclipse,并连接上模拟器;
2、 在模拟器上启动安居客应用,并打开DDMS,选中安居客进程;
3、 点击Start profile method按钮;
4、 在安居客中打开一套房源,等待房源成功打开后查看大图并进行收藏;
5、 点击DDMS中的stop profile method按钮,将会在 Eclipse中自动弹出一个图形界面。
按照平均调用时间(time/calls)从大到小来进行排序,见下图:
从上图可知,DetailActivityForPicture.onCreat()函数的平均调用时间为4.034秒,共调用了1次,调用时间相对较久,再看它调用的子函数。其中,子函数DetailActivityForPicture.initInfo()的调用时间为0.9s。相对时间较长,若需要优化性能,需要对initInfo()执行时间进行优化。
下面再来看DetailActivityForPicture.initInfo()函数的子函数的情况,如图:
进一步可分析出来initFavoriteButton()调用时间最长为0.4s。依次查询下去,见下图:
DialogBoxUtil.getFavoriteWindow()和FavoritePropertyModel.函数可以进行优化。如上性能分析结果,可供开发人员参考,并有针对地进行性能优化。
android 性能测试 简介,android性能测试工具traceview简介[转载]相关推荐
- android核心技术之性能分析工具TraceView
前面的话 有一次,被一个高大上的公司面试问到TraceView是做什么的,不知道,于是被人鄙视了.当时觉得别人好高大上啊,这么牛的东西都知道,而我只是听过这个名字,完全不清楚是个什么东东,果然是好公司 ...
- Android技巧分享——Android开发超好用工具吐血推荐 转载
内容中包含 base64string 图片造成字符过多,拒绝显示 转载于:https://www.cnblogs.com/ydkf85/p/6562373.html
- AutoSAR系列讲解(入门篇)6.1-Vector的工具链简介
AutoSAR系列讲解(入门篇)6.1-Vector的工具链简介 Vector的工具链简介 一.PREEvision 二.vVIRTUALtarget 三.DaVinci 四.CANoe 五.CANa ...
- Android自动化测试工具—Monkey简介及入门
下面介绍下monkey的原理 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用 ...
- 正确使用 Android 性能分析工具——TraceView
前面唠叨 最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方.因为之前不会正确使用TraceView这个工具,主要是看不懂T ...
- 正确使用Android性能分析工具——TraceView
原址 前面唠叨 最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方.因为之前不会正确使用TraceView这个工具,主要是看 ...
- android下的app性能测试应主要针对那些方面,如何开展?
如何开展安卓手机下的App性能测试,对于优秀的测试人员而言,除了要懂得性能测试的步骤流程外,还应该懂的性能测试的一些其他知识,比如性能测试指标.各指标的意义,常用的性能测试工具.如何查看结果分析等等知 ...
- Android精通教程-Android入门简介
前言 大家好,我是 Vic,今天给大家带来Android精通教程-Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease ...
- android 性能测试sdk,Android SDK 自动化性能测试方案: SDK + Appium + Emmagee + Python
一.前情概要 但凡接触过性能测试的都对以下情景深有体会: 1.测试前置工作量大繁琐,手工操作费时费力: 2.测试结果有出入,自己想再确认一下,测试过程再来一遍吧:好不容易整出了一份报告,RD一看对结果 ...
- 【Android应用开发】Android Studio 简介 (Android Studio Overview)
一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...
最新文章
- 汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏
- 关于外挂新手最常见的30个问题
- java sql 返回 json_java访问oracle 返回json 实践(一)
- 1.5 成员方法的声明和调用,形参,实参
- openstack-5:安装rabbitmq
- Vue项目开发1-项目的创建
- CVPR2005【行人检测】HOG+SVM用于人体检测的梯度方向直方图
- WCF 进阶: 对称加密传输
- 开玩笑呢?学习KMP算法能改变自我认知? | 原力计划
- c语言switch做一个计算器,超级新手,用switch写了个计算器程序,求指导
- 2022年考研计算机-数据库原理8-11章
- 基于Java人机对弈系统_基于JAVA的中国象棋对弈系统(附答辩记录)
- 面试算法:利用堆栈计算逆向波兰表达式
- 2021-5-17:Spring Boot整合Redis
- Excel绘制排名变化曲线图(折线图),附源文件
- 修改select2未搜索到数据时的提示语
- Python3记录--个人常用函数及资源(持续更新)
- 简单理解float和double、单精度和双精度
- MegaCli安装及使用
- 神仙爱情!年轻富翁捐5亿科研经费,让女友不用申请项目,专心搞科研!
热门文章
- 网件刷breed_斐讯K2刷不死breed加padavan华硕固件教程
- 关于尚硅谷视频p135配置完yarn-site.xml的硬件资源配置后
- my eclipse2014破解步骤(转载)
- python对电影进行预测评分_TMDb电影数据分析 电影评分预测
- ar面部识别_人脸识别、AR
- dm连接mysql_DM数据库JDBC连接
- 程序员应该阅读的非编程类书籍有哪些?
- LCD12864(ST7565P)字符汉字显示(STM32F103)
- c语言实现61850协议,IEC61850开发库 libIEC61850提供了用C语言编写的IEC 61850 / MMS - 下载 - 搜珍网...
- 淘宝客系统教学系列_2.应用登录接口对接