# TraceReader
**Repository Path**: android_ios_test/TraceReader
## Basic Information
- **Project Name**: TraceReader
- **Description**: ddms method profiling trace
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-12-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TraceReader
## 1.简述
Android 调试工具ddms的devices栏目存在一个功能叫做start method profiling,此按钮顾名思义是启动method profiling的,而Android的Method Profiling功能,是可以在一段时间内记录所有运行过的函数,最后生成一个xxx.trace文件。xxx.trace文件比较有趣,如果分析andorid源码可以知道,xxx.trace文件按线程和时间记录了method的enter和exit事件。也就是说,如果我们能够读取xxx.trace文件,那么我们就能够获取到某段时间,某个app运行过的java函数。
## 2.功能
于是乎,便有个这个工具,起名是个大难题,暂时起名叫TraceReader v1.0,目前实现了功能如下:
1.以线程的形式展示每个线程运行的方法数量。
2.树形结构展示方法调用
3.展示所有方法列表和调用者
4.支持搜索,过滤等等。。。
## 3.用法
解析trace文件,用法如下:
```Java
File fl=new File(path);
byte[] bytes=BytesHelper.toByteArray(fl.getPath());
Trace trace=new Trace(bytes);
traceThreads=new Threads(trace);
```