一、

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简介[转载]相关推荐

  1. android核心技术之性能分析工具TraceView

    前面的话 有一次,被一个高大上的公司面试问到TraceView是做什么的,不知道,于是被人鄙视了.当时觉得别人好高大上啊,这么牛的东西都知道,而我只是听过这个名字,完全不清楚是个什么东东,果然是好公司 ...

  2. Android技巧分享——Android开发超好用工具吐血推荐 转载

    内容中包含 base64string 图片造成字符过多,拒绝显示 转载于:https://www.cnblogs.com/ydkf85/p/6562373.html

  3. AutoSAR系列讲解(入门篇)6.1-Vector的工具链简介

    AutoSAR系列讲解(入门篇)6.1-Vector的工具链简介 Vector的工具链简介 一.PREEvision 二.vVIRTUALtarget 三.DaVinci 四.CANoe 五.CANa ...

  4. Android自动化测试工具—Monkey简介及入门

    下面介绍下monkey的原理 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用 ...

  5. 正确使用 Android 性能分析工具——TraceView

    前面唠叨 最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方.因为之前不会正确使用TraceView这个工具,主要是看不懂T ...

  6. 正确使用Android性能分析工具——TraceView

    原址 前面唠叨 最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方.因为之前不会正确使用TraceView这个工具,主要是看 ...

  7. android下的app性能测试应主要针对那些方面,如何开展?

    如何开展安卓手机下的App性能测试,对于优秀的测试人员而言,除了要懂得性能测试的步骤流程外,还应该懂的性能测试的一些其他知识,比如性能测试指标.各指标的意义,常用的性能测试工具.如何查看结果分析等等知 ...

  8. Android精通教程-Android入门简介

    前言 大家好,我是 Vic,今天给大家带来Android精通教程-Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease ...

  9. android 性能测试sdk,Android SDK 自动化性能测试方案: SDK + Appium + Emmagee + Python

    一.前情概要 但凡接触过性能测试的都对以下情景深有体会: 1.测试前置工作量大繁琐,手工操作费时费力: 2.测试结果有出入,自己想再确认一下,测试过程再来一遍吧:好不容易整出了一份报告,RD一看对结果 ...

  10. 【Android应用开发】Android Studio 简介 (Android Studio Overview)

    一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...

最新文章

  1. 汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏
  2. 关于外挂新手最常见的30个问题
  3. java sql 返回 json_java访问oracle 返回json 实践(一)
  4. 1.5 成员方法的声明和调用,形参,实参
  5. openstack-5:安装rabbitmq
  6. Vue项目开发1-项目的创建
  7. CVPR2005【行人检测】HOG+SVM用于人体检测的梯度方向直方图
  8. WCF 进阶: 对称加密传输
  9. 开玩笑呢?学习KMP算法能改变自我认知? | 原力计划
  10. c语言switch做一个计算器,超级新手,用switch写了个计算器程序,求指导
  11. 2022年考研计算机-数据库原理8-11章
  12. 基于Java人机对弈系统_基于JAVA的中国象棋对弈系统(附答辩记录)
  13. 面试算法:利用堆栈计算逆向波兰表达式
  14. 2021-5-17:Spring Boot整合Redis
  15. Excel绘制排名变化曲线图(折线图),附源文件
  16. 修改select2未搜索到数据时的提示语
  17. Python3记录--个人常用函数及资源(持续更新)
  18. 简单理解float和double、单精度和双精度
  19. MegaCli安装及使用
  20. 神仙爱情!年轻富翁捐5亿科研经费,让女友不用申请项目,专心搞科研!

热门文章

  1. 网件刷breed_斐讯K2刷不死breed加padavan华硕固件教程
  2. 关于尚硅谷视频p135配置完yarn-site.xml的硬件资源配置后
  3. my eclipse2014破解步骤(转载)
  4. python对电影进行预测评分_TMDb电影数据分析 电影评分预测
  5. ar面部识别_人脸识别、AR
  6. dm连接mysql_DM数据库JDBC连接
  7. 程序员应该阅读的非编程类书籍有哪些?
  8. LCD12864(ST7565P)字符汉字显示(STM32F103)
  9. c语言实现61850协议,IEC61850开发库 libIEC61850提供了用C语言编写的IEC 61850 / MMS - 下载 - 搜珍网...
  10. 淘宝客系统教学系列_2.应用登录接口对接