概述

TraceView是Android平台配备一个很好的性能分析工具,它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到方法。

如何使用

  • 通过Android studio自带的traceview查看(Android profiler)。
  • 通过Android SDK自带的Debug。
  • 通过DDMS中的traceview查看。

通过Android studio自带的traceview查看

通过Android studio 打开Android profiler 点击其中的CPU就会有以下的界面。

如上图所示,CPU Profiler的视图包括以下内容:
①App timeline:显示CPU在执行过程中的时间轴。
②线程 timeline:显示线程列表以及每个线程在某个时间段占用的CPU的资源情况。
③CPU timeline:列出CPU在App运行过程中CPU使用情况。
④Method Trace:在指定线程中,执行的方法栈,横行表示执行的时间轴,纵向表示方法执行的调用轴。

使用步骤
  • 打开CPU Profiler界面
  • 点击下方的红色圆点,开始记录(Record)堆栈(此时按钮变灰色),记录一段时间段后,再点击下停止记录(此时按钮变红色)
  • 在②区域选择你用分析的线程
  • 在③区域中选择要分析的CPU片段(只能有记录的CPU片段)
  • 查看④区域,就会有一系列的执行方法队列显示出来,通过横向查看可以看出某个方法的执行时间(横向时间越长,执行的时间越长),通过纵向表示方法的调用关系。
技术说明

②区域中,线程占用CPU资源,会有不同颜色标记:

  • 绿色: 线程处于活动状态或准备好使用CPU。也就是说,它处于”运行”或”可运行”状态。
  • 黄色: 线程处于活动状态,但是在完成其工作之前,它正在等待I / O操作(如文件或网络I / O)。
  • 灰色: 线程正在睡眠,不会消耗任何CPU时间,当线程需要访问尚未可用的资源时,有时会发生这种情况。要么线程进入自愿性睡眠,要么内核使线程休眠,直到所需的资源可用。

④区域中,不同的方法也会颜色也有所不同:

  • 橙色:系统方法
  • 蓝色:第三方API(包括java语言的api)
  • 绿色:App自身方法

通过Android SDK自带的Debug

  • 在开始记录的点写上代码Debug.startMethodTracing(“tracePath”);

  • 在终止记录的点写上代码Debug.stopMethodTracing();

  • 通过adb pull /mnt/sdcard/tracePath.trace .将trace导出指定的文件夹中

  • 通过Android studio打开trace文件,界面同CPU Profiler差不多。

优点

能清晰分析指定业务、功能块的方法执行情况(代码控制)。

通过DDMS中的traceview查看

前期准备工作(以windows系统为基准)

1、 下载Android SDK,下载地址就各显神通了。
2、 解压或者安装Android SDK。
3、 解压后的目录下的{sdk.dir}\tools配置到Path环境中。

使用说明
  • 打开window命令指示符,即cmd命令

  • 在命令行中输入monitor或者ddms(区分版本),打开界面

  • 如图点击红色圈圈按钮开始记录,再次点击后终止记录且弹出以下界面

    • ①线程timeLine:线程在执行过程消耗CPU/时间
    • ②执行TimeLine: 时间轴
    • ③方法详细信息轴:方法以及其调用方法的执行/消耗CPU时间
  • 查看main线程,查看执行时间长的时间段(②区域中同一个颜色起止时间)并点击他,在③区域中会弹出对应的方法栈信息,你就会发现有个Thread.sleep方法阻塞的main线程。

技术说明
  • Incl Cpu Time:方法在CPU中执行所有时间(包含其调用的方法所消耗的时间)
  • Excl Cpu Time: 方法在CPU中执行的时间(不包含其调用的方法所消耗的时间)
  • Incl Real Time:方法运行消耗的所有时间(包含子方法)
  • Excl Real Time:方法运行消耗的时间(不包含子方法)
  • Calls + Recur Calls/Total :方法调用、递归次数(重要指标,防止死循环)
  • Cpu Time/Call :该方法平均占用 CPU 的时间(重要指标,可以看出单个方法占用CPU的平均时间,但是要防止在个别调用处出现长时间占用,然后被平均了)
  • Real Time/Call :平均执行时间,包括切换、阻塞的时间(重要指标,可以看出单个方法执行的平均时间值,但是要防止在个别调用处出现长时间调用,然后被平均了)

Android性能优化—TraceView的使用相关推荐

  1. Android 性能优化工具 TraceView 简单使用

    背景 最近产品以及测试大佬反应快搜桌面进入搜索页面跳转较为缓慢,影响体验,为了优化这个问题,特地学习Android 性能优化工具 TraceView的 简单使用,这才有了本文. 正文 如下图打开and ...

  2. Android 性能优化

    为什么80%的码农都做不了架构师?>>>    原文作者:鸿洋 原文地址:点我跳转原文 一般情况下,我们谈性能优化基本上会从以下几个方面: App启动速度优化 UI流畅度优化 内存优 ...

  3. Android性能优化典范笔记(1)-GPU绘制性能优化

    Android性能优化典范笔记(1)-GPU绘制性能优化 你还可以再Github上找到我的这篇文章:https://github.com/onlynight/ReadmeDemo/tree/maste ...

  4. Android性能优化 - 消除卡顿

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - TraceView Android性能分析工具 消除卡顿 什么是卡顿及卡顿的衡量标准 产生卡 ...

  5. Android性能优化 - 内存优化

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - TraceView Android性能分析工具 为什么内存优化? 在一个商业项目中,很有可能因 ...

  6. Android性能优化典范(转)

    本文转自:http://hukai.me/android-performance-patterns/ 2015新年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3 ...

  7. Android 性能优化工具

    Android 性能优化工具 这段时间总结了一些常用的性能优化工具,当然这些并没有包含全部的工具,下面稍微对这些工具做个简单的总结: 1.应用codeReview工具 StrictMode 检测应用主 ...

  8. Android性能优化典范第一季

    2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关 ...

  9. Android性能优化 笔记

    说明 这篇文章是将很久以来看过的文章,包括自己写的一些测试代码的总结.属于笔记的性质,没有面面俱到,一些自己相对熟悉的点可能会略过. 最开始看到的性能优化的文章,就是胡凯的优化典范系列,后来又陆续看过 ...

  10. Android 性能优化案例

    2019独角兽企业重金招聘Python工程师标准>>>         之前看到一篇关于优化Android性能的文章,写的很不错.但由于一直没有使用过,最近恰好优化Performan ...

最新文章

  1. 汇编和python-python语言属于汇编语言吗?_后端开发
  2. 百万级微信服务号如何做活动运营和用户运营?
  3. SAP HANA数据库里对中文字符串排序的实现
  4. linux的进程pcd,LINUX下查看点云图————point cloud(.ply .vtk .pcd)
  5. 登录界面拦截java_java拦截通过url访问页面,必须通过登录页面访问目标页面
  6. 补码(为什么按位取反再加一):告诉你一个其实很简单的问题(转自醍醐灌顶)...
  7. java如何编写年月_如何从Java中的日历对象构建天,月,年的列表?
  8. 算法中的算子是什么意思,图像处理一样理解
  9. Java查看字节码工具
  10. PHP Linux安装
  11. 修ecshop品牌筛选以LOGO图片形式显示
  12. 解决easy ui 1.4datebox控件不能清空的问题
  13. Java 读写txt文件
  14. 「第六篇」0day漏洞
  15. 详解Linux 和 GNU 系统的关系
  16. 红米5plus开发者选项怎么打开?
  17. 〖2011.08.19〗秋无痕常用软件全功能装机光盘2011年八月版(支持64位WIN7)
  18. Harmony鸿蒙开发 四、Ability的生命周期
  19. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)
  20. office2016的word打开程序之后显示需要修复问题解决解决

热门文章

  1. [挖坟] 突破WINISO未注册时100M限制
  2. matlab小波工具箱讲解,Matlab中的小波分析工具箱详解.ppt
  3. eclipse各版本对应JDK版本要求
  4. js使用xlsx读取excel文件
  5. JEECG框架创建项目使用步骤
  6. Ubuntu下F2FS文件系统的安装与挂载
  7. 四阶龙格库塔法(Runge-Kutta)求解常微分方程的 Matlab程序及案例
  8. Raspberry Pi车牌识别系统
  9. yyuc php,php版微信公众平台实现预约提交后发送email的方法
  10. 计算机音乐谱魔法城堡,《魔法城堡》简谱 TFBOYS 乐谱 - 新芭网