layout: post
title: Android Device Monitor工具的使用
date: 2015-12-01
categories: blog
tags: [Android,Android调试]
category: Android
description: 简单的Android程序调试,结合Device Monitor来说明使用过程


使用Device Monitor来查看函数的执行时间

@Overridepublic void onClick(View v) {    functionInvoke(1000);}private void functionInvoke(int time) {    for(int i=0;i<1000;i++);    if(time > 0){        functionInvoke(--time);    }}

实现以上的函数,我们知道,当值行点击的时候会递归调用 functionInvoke() 1000次,这需要一定的时间吧.

Screenshot from 2015-12-09 23-06-56.png

App启动后,在点击触发之前,在Monitor左面板选择APP的包名,点击Monitor左面板上方的start method profilling开始记录(按钮上标由红变黑),点击APP的触发控件,开始记录,估摸着执行完毕后在点击Monitor上刚才点点按钮.得到一个trace文件,并会自动在中间面板打开.

现在分析该内容关于使用方法和参数含义参见博客

Screenshot from 2015-12-09 23-12-26.png

现在得到这个界面,我们从中选择我自己的函数

Screenshot from 2015-12-09 23-20-32.png

在这里我们可以看见调用他的是onClick,她调用的有functionInvoke(),相比普通的调用,这里多了递归调用的parent和child,并且都为本身,这从函数的实现可以看出.

Screenshot from 2015-12-09 23-29-16.png

在这里需要分析的是上图,第一字段说明了9.2%的时间在执行该函数(不含内部调用的别的函数执行的时间,比如在functionInvoke()在调用Log.v(TAG,"msg")是不计算v(...)的执行时间的),这里的时间是总的,包括1000次递归的时间,第二字段把9.2%换成具体时间第三四字段就是包括了内部函数的执行时间,其含义同一二字段.Call+recurCalls/Tool表示递归执行的次数,
Real Time/Call 表示单次执行的时间

更多相关文章

  1. 箭头函数的基础使用
  2. Python技巧匿名函数、回调函数和高阶函数
  3. Android7 增加双以太网eth1的支持
  4. android 上下文菜单详解
  5. Android和H5混合开发(一)
  6. Android调用系统分享
  7. android - uri
  8. Android硬件服务访问流程
  9. Android(安卓)ArrayAdapter的使用

随机推荐

  1. 00015-相对布局位置属性
  2. android 图表开源插件
  3. android开发杂记(持续更新中)
  4. Android录音mp3格式
  5. Android 副屏开发
  6. 渐变色与圆角显示(填充,描边)
  7. 移动应用测试框架—Calabash Android 简
  8. android GPS 获取位置
  9. Android存储使用参考
  10. Android基本UI控件的介绍及使用