先看命令
(配置好环境变量的情况下,直接traceview+空格+ trace文件路径即可):
![](/assets/blank.gif)
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 {
|
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() {
|
13
|
publicvoid onClick(View view) {
|
14
|
Intent intent = new Intent(getApplicationContext(), LoginActivity. class );
|
15
|
startActivity(intent);
|
21
|
protectedvoid onStop() {
|
23
|
Debug.stopMethodTracing(); // 结束记录wirelessqa.trace
|
说明:
开发文档中说可以在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文件
![](/assets/blank.gif)
3. 分析trace文件
![](/assets/blank.gif)
TraceView 使用详解 android eclipse相关推荐
- 视频教程-Android Studio 开发详解-Android
Android Studio 开发详解 1999年开始从事开发工作,具备十余年的开发.管理和培训经验. 在无线通信.Android.iOS.HTML5.游戏开发.JavaME.JavaEE.Linux ...
- adb shell 命令详解,android, adb logcat
http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...
- Java web 开发的概念、环境配置、创建项目过程详解(Eclipse)
Java Web 开发 Java Web 开发概念 搭建过程 详解 在eclipse创建Dynamic Web Project 创建时选择Tomcat的版本 创建项目成功 eclipse环境下如何配置 ...
- android 上下偏差怎么写_详解 Android 热更新升级如何突破底层结构差异?
知道了 native 替换方式兼容性问题的原因,我们是否有办法寻求一种新的方式,不依赖于 ROM 底层方法结构的实现而达到替换效果呢? 我们发现,这样 native 层面替换思路,其实就是替换 Art ...
- 详解 Android 的 Activity 组件
本文详细介绍了 Android 应用编程中 Activity 的生命周期.通信方式和 Intent Filter 等内容,并提供了一些日常开发中经常用到的关于 Activity 的技巧和方法.通过本文 ...
- android studio 导入包分不分动态静态,详解Android studio 动态fragment的用法
fragment的使用时Android的基础,它有两种用法,第一个就是静态的fragment.第二个则是动态的fragment. 静态fragment直接在layout创建你想要的fragment的X ...
- android 最新写法,详解Android 硬布局item的高级写法
本文主要介绍了Android 硬布局item的高级写法,分享给大家,具体如下: 效果: 这种布局应该是非常常见了,且写的比较多. 今天简单探讨一下效果图中上下两种布局的写法. 比较 上下效果一致 行数 ...
- android系统加载主题的流程,详解Android布局加载流程源码
一.首先看布局层次 看这么几张图 我们会发现DecorView里面包裹的内容可能会随着不同的情况而变化,但是在Decor之前的层次关系都是固定的.即Activity包裹PhoneWindow,Phon ...
- android 数据文件存储,实例详解Android文件存储数据方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...
最新文章
- ACR2010_MRI骶髂关节炎症与CTX-II变化以及TNF拮抗剂治疗过程中全身炎症改变相关...
- iOS布局-autoresizingMask
- 【转】请尊重测试:测试从业五年有感
- hadoop,hbase,hive安装全记录
- JavaScript设计模式 Item 3 --封装
- RHEL/CentOS 6.x 系统服务详解
- python闭包的应用场景_Python闭包函数定义与用法分析
- 【FIR.im赞助】jQuery编程挑战#012:生成菜单添加和删除动画效果
- 基于Vue的移动端h5页面的电子签名
- 多种参数的BCH、RS码和(2,1,6)卷积码编码的MATLAB仿真实现
- ubuntu14.04安装LSD_SLAM
- 计算机英语朗读音频,新课标小学英语阅读精选(MP3+中英字幕) 第72期:电脑
- PEST分析顺丰服务需求_快递行业宏观环境分析
- Meta公布四款VR原型机,提出“视觉图灵测试”概念
- 在 WPS Word中成功使用zetero
- python 爬虫软件第一个程序
- 高级程序设计语言的共性内容
- 基于粤嵌6818开发板上通过网络连接实现文件传输
- postgresql大版本升级
- linux 查看硬盘报错_linux中挂载硬盘报错(you must specify the filesystem type)
热门文章
- C++虚函数与纯虚函数用法与区别
- 二十、子程序设计(函数)
- 关于代码效率提升的方法心路历程(购物车)
- 什么是Docker??
- 【bzoj4007】[JLOI2015]战争调度 暴力+树形背包dp
- 20170513 Python练习册0011过滤敏感词
- 进阶篇:6)样机制作与验证
- MVC传递Model
- apache开源项目--Apache Commons Imaging
- Django最佳实践:项目布局