Android性能检测

traceview的使用方法

1. 把android-sdk-windows\tools路径加到Path当中

2. 编写测试代码:

  1. package com.wwj.traceview;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.os.Debug;
  7. import android.view.View;
  8. import android.widget.Toast;
  9. public class MainActivity extends Activity {
  10. private List<Integer> list1 = new ArrayList<Integer>();
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_main);
  15. }
  16. //第一个测试方法
  17. public void test1() {
  18. //向List1对象添加10000个数
  19. for(int i = 0; i < 10000; i++) {
  20. list1.add(i);
  21. }
  22. }
  23. //第二个测试方法
  24. public void test2() {
  25. //依次获得List对象中的元素
  26. for(int i = 0; i < 10000; i++) {
  27. list1.get(i);
  28. }
  29. }
  30. public void onClick_Test(View view) {
  31. try {
  32. /*//获取执行test1方法前的时间点(单位:毫秒)
  33. long start1 = System.currentTimeMillis();
  34. test1();
  35. long end1 = System.currentTimeMillis();
  36. //获取执行test2方法前的时间点(单位:毫秒)
  37. long start2 = System.currentTimeMillis();
  38. test2();
  39. long end2 = System.currentTimeMillis();
  40. //显示测试结果
  41. Toast.makeText(this, "test1方法的执行时间:" + (end1 - start1) + "毫秒\ntest2方法的执行时间: "
  42. + (end2 - start2) + "毫秒", Toast.LENGTH_LONG).show();*/
  43. //获取调用test1方法之前的内存
  44. /*long start1 = Memory.used();
  45. test1();
  46. //获取调用test1方法之后的内存
  47. long end1 = Memory.used();
  48. //获取调用test1方法之前的内存
  49. long start2 = Memory.used();
  50. test2();
  51. //获取调用test1方法之后的内存
  52. long end2 = Memory.used();
  53. Toast.makeText(this, "test1方法占用的内存:" + (end1 - start1) + "字节\ntest2方法占用的内存: "
  54. + (end2 - start2) + "字节", Toast.LENGTH_LONG).show();
  55. */
  56. //开始监视方法
  57. Debug.startMethodTracing("wwj_trace");
  58. test1();
  59. test2();
  60. Debug.stopMethodTracing();
  61. } catch (Exception e) {
  62. e.printStackTrace();
  63. }
  64. }
  65. }

3. 记得要设置权限:

  1. <span style="font-size:24px;">    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/></span>

点击按钮后会在SD卡根目录产生一个后缀为trace的文件

4. 将这个文件导出到你想要放的位置比如:c:\wwj_trace.trace

5. 运行traceview c:\wwj_trace.trace指令后出现traceview视图

接触过Android有一段时间的童鞋一定会了解到traceview这个工具,本人也是近期需要进行性能检测,所以才去学习这个工具的使用,很简单,下面主要是介绍这个工具一些重要参数的意思,是根据自己的理解来写的,也不知道对不对。

各个参数的意思:

Inl Cpu Time%:方法在运行期间被调用的时间占总时间的百分比。

Incl Cpu Time:方法执行的总时间(包括调用子函数所消耗的时间):调用该方法每次所需要消耗的时间*执行次数。

Excl Cpu Time%:方法自身所消耗的时间(不包括调用其他方法所消耗的时间)占总时间的百分比。

Excl Cpu Time:方法自身所消耗的时间。

Incl Real Time%:方法真正执行的时间占总时间的百分比。

Incl Real Time:方法真正被执行的时间。

Excl Real Time%:方法真正被执行的时间占总时间的百分比

Excl Real Time:方法真正被执行的所消耗的时间

Calls+RecurCalls/Total:方法被调用的次数+重复调用的次数

Cpu Time/Call:方法每次被执行的时间

Real Time/Call:方法真实被执行的时间

关于traceview工具的学习记录就到这里,如果有童鞋发现错误的地方,麻烦帮忙纠正一下。

Android性能检测--traceview工具各个参数的意思的更多相关文章

  1. 推荐AndroidGodEye Android性能检测工具

    推荐AndroidGodEye Android性能检测工具 1 介绍 AndroidGodEye是一个可以在PC浏览器中实时监控Android性能数据指标的工具,你可以通过wifi/usb连接手机和p ...

  2. 【Java/Android性能优3】Android性能调优工具TraceView使用介绍

    本文转自:http://blog.csdn.net/innost/article/details/9008691 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是 ...

  3. 【Java/Android性能优2】Android性能调优工具TraceView介绍

    本文参考:http://www.trinea.cn/android/android-traceview/ Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以 ...

  4. Android 性能优化之工具和优化点总结

    Android性能优化学习 最近公司主抓性能优化工作,借此春风也学习到了许多Android性能优化方面的知识.由于组内队友的给力,优化的成果也是比较喜人.同时也学习和实践了不少知识,特此记录. 1.性 ...

  5. Android 性能测试之TraceView的使用

    Traceview是android平台配备一个很好的性能分析的工具.它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method. 在SDK路径\tools目录下. 1.在开始使用 ...

  6. Android性能检测工具——traceview

    之前的几篇文章中介绍了android中常用的一些工具,今天介绍的工具也是比较实用和方便的,它可以用量化的指标告诉我们哪个方法执行的时间最长,被调用的次数最多,有没有重复调用.下面我们就来看看它是怎么为 ...

  7. Android性能分析Systrace工具

    一.概述 保证系统流畅度,也就是保证系统能连续不间断地提供每秒60帧的运行状态.当出现掉帧时(也可称为Jank),需要知道当前整个系统所处的状态,systrace便是最佳的选择,它能手机检测Andro ...

  8. linux服务器性能检测工具nmon使用

    今天介绍一款linux系统服务器性能检测的工具-nmon及nmon_analyser (生成性能报告的免费工具),亲测可用. 一.介绍 nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并 ...

  9. Android性能測试 一些适用于Android Studio的代码审查和性能測试工具

    导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,因为QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...

随机推荐

  1. 关于DLL搜索路径顺序的一个问题

    DLL的动态链接有两种方法.一种是加载时动态链接(Load_time dynamic linking).Windows搜索要装入的DLL时,按以下顺序:应用程序所在目录→当前目录→Windows SY ...

  2. VS2010/MFC说明

    此栏目大多数内容转自鸡啄米http://www.jizhuomi.com/ 方便使用对其内容做了少量修改,仅是个人收藏使用,不做其它用途.

  3. Spring MVC遭遇checkbox的问题解决方式

    Spring MVC遭遇checkbox的问题是:当checkbox全不选时候,则该checkbox域的变量为null,不能动态绑定到spring的controller方法的入參上,并抛出异常. 解决 ...

  4. Cocos2d_x的特点及环境配置

    Cocos2d_x的特点: 什么是"x"?Cocos2d_x方式:有时候我们写的cpp文件扩展,CXX."X"标致着该项目是由c++,并提供c++中的API编写 ...

  5. 设计模式的C++实现 2.工厂模式

    工厂模式,实例化对象,用工厂方法取代new操作. 工厂模式基本与简单工厂模式差点儿相同,简单工厂中每次加入一个子类必须在工厂类中加入一个推断分支,这违背了开闭原则.而工厂模式的解决方法是将简单工厂中的 ...

  6. JS浏览器类型推断方法

    在网站的前端开发,浏览器兼容性问题这已经让我们抢,Chrome但也生出不知道多少麻烦,我们增加. 浏览器兼容性将由前端开发框架解决的第一个问题.要解决的兼容性问题必须首先准确推断浏览器的类型和它的版本 ...

  7. [055] SSL 3.0曝出Poodle漏洞的解决方式-----开发人员篇

    SSL 3.0曝出高危漏洞 2014年10月15日,Google研究人员发布SSL 3.0协议存在一个非常严重的漏洞,该漏洞可被黑客用于截取浏览器与server之间进行传输的加密数据,如网银账号.邮箱 ...

  8. 阵列中条带(stripe)、stripe unit

    摘抄:http://blog.sina.com.cn/s/blog_4a362d610100aed2.html 在磁盘阵列中,数据是以条带(stripe)的方式贯穿在磁盘阵列所有硬盘中的.这种数据的分 ...

  9. SSL证书与Https应用部署小结

    为了提高网站的安全性,一般会在比较敏感的部分页面采用https传输,比如注册.登录.控制台等.像Gmail.网银等全部采用https传输. https/ssl 主要起到两个作用:网站认证.内容加密传输 ...

  10. Socket 基础解析使用ServerSocket建立聊天服务器

    很简单的教程哦! 1.socket 简介 Socket 又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求.ServerSocket 用于 ...