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来查看函数的执行时间

@Override
public 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
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-12-26.png

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

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

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

Screenshot from 2015-12-09 23-29-16.png
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 表示单次执行的时间

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容