Android(安卓)Device Monitor工具的使用
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.pngApp启动后,在点击触发之前,在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 表示单次执行的时间
更多相关文章
- 箭头函数的基础使用
- Python技巧匿名函数、回调函数和高阶函数
- Android7 增加双以太网eth1的支持
- android 上下文菜单详解
- Android和H5混合开发(一)
- Android调用系统分享
- android - uri
- Android硬件服务访问流程
- Android(安卓)ArrayAdapter的使用