TraceView 使用详解 android eclipse
先看命令
(配置好环境变量的情况下,直接traceview+空格+ trace文件路径即可):

TraceView是什么
Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。
Traceview的作用
1. 查看跟踪代码的执行时间,分析哪些是耗时操作
2. 可以用于跟踪方法的调用,尤其是Android Framework层的方法调用关系
Traceview的使用步骤
分为以下三步:
1. 选择追踪范围加入记录代码
2.利用tools下的工具trace view打开.trace文件
3.分析trace文件
1. 选择追踪范围加入记录代码
首先,必须在程序当中加入代码,以便生成trace文件,有了这个trace文件才可以将其转化为图形。
要添加的代码如下:
1 |
Debug.startMethodTracing(“wirelessqa”); //开始 |
2 |
Debug.stopMethodTracing(); //结束 |
其中参数wirelessqa是要创建的trace文件的名称,wirelessqa.trace。默认路径是/sdcard/wirelessqa.trace,也可以自己制定/data/log/wirelessqa,表示文件在/data/log/wirelessqa.trace。
实例代码参考:
01 |
publicclass MainActivity extends Activity { |
02 |
03 |
@Override |
04 |
protectedvoid onCreate(Bundle savedInstanceState) { |
05 |
super.onCreate(savedInstanceState); |
06 |
setContentView(R.layout.activity_main); |
07 |
setTitle(this.getClass().getName()); |
08 |
View toLoginView = findViewById(R.id.to_login); |
09 |
// 开始记录 sdcard/wirelessqa.trace文件 |
10 |
Debug.startMethodTracing("wirelessqa"); |
11 |
toLoginView.setOnClickListener(new View.OnClickListener() { |
12 |
13 |
publicvoid onClick(View view) { |
14 |
Intent intent = new Intent(getApplicationContext(), LoginActivity.class); |
15 |
startActivity(intent); |
16 |
} |
17 |
}); |
18 |
} |
19 |
|
20 |
@Override |
21 |
protectedvoid onStop() { |
22 |
super.onStop(); |
23 |
Debug.stopMethodTracing();// 结束记录wirelessqa.trace |
24 |
} |
25 |
} |
说明:
开发文档中说可以在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),但是在实际的测试时发现这种方式其实并不好用,因为通常情况下我们的activity的onDestroy()是由系统决定何时调用的,因此可能等了很长时间都不会得到这个trace文件。
因此决定在onStop()中来调用Debug.stopMethodTracing()。这样当我们切换到其它activity或者点击home键的时候onStop()就会被调用,我们也就可以得到完整的trace file。
别忘了加入访问SD卡的权限
1 |
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> |
2 |
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> |
2.利用tools下的工具trace view打开.trace文件
3. 分析trace文件
TraceView 使用详解 android eclipse的更多相关文章
- 详解Android首选项框架ListPreference
详解Android首选项框架ListPreference 原文地址 探索首选项框架 在深入探讨Android的首选项框架之前,首先构想一个需要使用首选项的场景,然后分析如何实现这一场景.假设你正在编写 ...
- 详解android:scaleType属性
详解android:scaleType属性 转自:http://blog.csdn.net/encienqi/article/details/7913262 http://juliaailse. ...
- adb shell 命令详解,android
http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...
- 详解Android Activity---启动模式
相关的基本概念: 1.任务栈(Task) 若干个Activity的集合的栈表示一个Task. 栈不仅仅只包含自身程序的Activity,它也可以跨应用包含其他应用的Activity,这样有利于 ...
- Android Binder IPC详解-Android学习之旅(96)
linux内存空间与BInder Driver Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是 ...
- 详解Android中的四大组件之一:Activity详解
activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...
- adb shell 命令详解,android, adb logcat
http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...
- 图文详解 Android Binder跨进程通信机制 原理
图文详解 Android Binder跨进程通信机制 原理 目录 目录 1. Binder到底是什么? 中文即 粘合剂,意思为粘合了两个不同的进程 网上有很多对Binder的定义,但都说不清楚:Bin ...
- 详解 Android 通信
详解 Android 通信 :http://www.androidchina.net/5028.html
随机推荐
- React教程-初入
学习了React很久,一直没有机会总结下,最近打算写一个简单的React,希望让初学者一看就懂,不走弯路,我尽量写的简明点好了开始吧!首页我们要利用npm安装 react(当然你也可以用引用方式)跟着 ...
- (C#基础)Linq学习理解
一遍学习基础,一遍练习打字,很多乐趣. 代码 using System; using System.Collections.Generic; using System.Linq; using Syst ...
- Unity 3D连接MySQl数据库
对数据库各种操作已经熟练,但是一遇到数据库问题还是头大,最近使用unity3d开发一款小型网络社区,遇到了各种问题分享一下以供大家参考: 以前使用的是SQL,第一次用MySQL,在网上随便下了一个,安 ...
- mysql server查询客户端连接数
SELECT substring_index(HOST, ) AS host_name, state, count(*) FROM information_schema. PROCESSLIST GR ...
- 清除 eclipse svn 账号密码
进入目录 C:\Documents and Settings\administrator\Application Data\Subversion\auth 删除目录下所有文件,然后重新刷新svn地址就 ...
- <youcengcibianli>
#include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK ...
- js push ,pop ,concat ,join方法
push 方法 将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1 [item2[. . . [itemN ]]]]) 说明 push 方法将以新元素出现的顺序 ...
- 将PS/2接口鼠标改造成USB接口鼠标
改造接线图 不是所有PS/2鼠标都可以改为USB鼠标的,可以改的PS/2鼠标的特征: A.早期PS/2鼠标电路板一般带有两块集成电路,(一块光电感应,一块按键或USB协议转换,和一只24M的晶体振荡器 ...
- VC++实现解析快捷方式
VC++实现解析快捷方式: http://blog.csdn.net/mydreamremindme/article/details/9826745
- 关于CGI和FastCGI的理解
在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM.FastCGI和CGI 这几个概念.如果对它们一知半解,很难搭建出高性能的服务器. 0.CGI的引入 在网站的整体架构中,Web Se ...