Android性能优化—TraceView的使用
概述
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的使用相关推荐
- Android 性能优化工具 TraceView 简单使用
背景 最近产品以及测试大佬反应快搜桌面进入搜索页面跳转较为缓慢,影响体验,为了优化这个问题,特地学习Android 性能优化工具 TraceView的 简单使用,这才有了本文. 正文 如下图打开and ...
- Android 性能优化
为什么80%的码农都做不了架构师?>>> 原文作者:鸿洋 原文地址:点我跳转原文 一般情况下,我们谈性能优化基本上会从以下几个方面: App启动速度优化 UI流畅度优化 内存优 ...
- Android性能优化典范笔记(1)-GPU绘制性能优化
Android性能优化典范笔记(1)-GPU绘制性能优化 你还可以再Github上找到我的这篇文章:https://github.com/onlynight/ReadmeDemo/tree/maste ...
- Android性能优化 - 消除卡顿
性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - TraceView Android性能分析工具 消除卡顿 什么是卡顿及卡顿的衡量标准 产生卡 ...
- Android性能优化 - 内存优化
性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - TraceView Android性能分析工具 为什么内存优化? 在一个商业项目中,很有可能因 ...
- Android性能优化典范(转)
本文转自:http://hukai.me/android-performance-patterns/ 2015新年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3 ...
- Android 性能优化工具
Android 性能优化工具 这段时间总结了一些常用的性能优化工具,当然这些并没有包含全部的工具,下面稍微对这些工具做个简单的总结: 1.应用codeReview工具 StrictMode 检测应用主 ...
- Android性能优化典范第一季
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关 ...
- Android性能优化 笔记
说明 这篇文章是将很久以来看过的文章,包括自己写的一些测试代码的总结.属于笔记的性质,没有面面俱到,一些自己相对熟悉的点可能会略过. 最开始看到的性能优化的文章,就是胡凯的优化典范系列,后来又陆续看过 ...
- Android 性能优化案例
2019独角兽企业重金招聘Python工程师标准>>> 之前看到一篇关于优化Android性能的文章,写的很不错.但由于一直没有使用过,最近恰好优化Performan ...
最新文章
- 汇编和python-python语言属于汇编语言吗?_后端开发
- 百万级微信服务号如何做活动运营和用户运营?
- SAP HANA数据库里对中文字符串排序的实现
- linux的进程pcd,LINUX下查看点云图————point cloud(.ply .vtk .pcd)
- 登录界面拦截java_java拦截通过url访问页面,必须通过登录页面访问目标页面
- 补码(为什么按位取反再加一):告诉你一个其实很简单的问题(转自醍醐灌顶)...
- java如何编写年月_如何从Java中的日历对象构建天,月,年的列表?
- 算法中的算子是什么意思,图像处理一样理解
- Java查看字节码工具
- PHP Linux安装
- 修ecshop品牌筛选以LOGO图片形式显示
- 解决easy ui 1.4datebox控件不能清空的问题
- Java 读写txt文件
- 「第六篇」0day漏洞
- 详解Linux 和 GNU 系统的关系
- 红米5plus开发者选项怎么打开?
- 〖2011.08.19〗秋无痕常用软件全功能装机光盘2011年八月版(支持64位WIN7)
- Harmony鸿蒙开发 四、Ability的生命周期
- springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)
- office2016的word打开程序之后显示需要修复问题解决解决
热门文章
- [挖坟] 突破WINISO未注册时100M限制
- matlab小波工具箱讲解,Matlab中的小波分析工具箱详解.ppt
- eclipse各版本对应JDK版本要求
- js使用xlsx读取excel文件
- JEECG框架创建项目使用步骤
- Ubuntu下F2FS文件系统的安装与挂载
- 四阶龙格库塔法(Runge-Kutta)求解常微分方程的 Matlab程序及案例
- Raspberry Pi车牌识别系统
- yyuc php,php版微信公众平台实现预约提交后发送email的方法
- 计算机音乐谱魔法城堡,《魔法城堡》简谱 TFBOYS 乐谱 - 新芭网