{"id":13814406,"url":"https://github.com/panhongwei/TraceReader","last_synced_at":"2025-05-15T03:34:12.151Z","repository":{"id":52752975,"uuid":"103090699","full_name":"panhongwei/TraceReader","owner":"panhongwei","description":"android小工具，通过读取trace文件，回溯整个整个程序执行调用树。","archived":false,"fork":false,"pushed_at":"2017-10-31T08:01:50.000Z","size":404,"stargazers_count":348,"open_issues_count":6,"forks_count":118,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-08-04T04:05:44.807Z","etag":null,"topics":["android","ddms","profiling","trace"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/panhongwei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-11T04:43:47.000Z","updated_at":"2024-08-04T04:05:44.808Z","dependencies_parsed_at":"2022-08-22T21:01:14.504Z","dependency_job_id":null,"html_url":"https://github.com/panhongwei/TraceReader","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panhongwei%2FTraceReader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panhongwei%2FTraceReader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panhongwei%2FTraceReader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panhongwei%2FTraceReader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/panhongwei","download_url":"https://codeload.github.com/panhongwei/TraceReader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225326472,"owners_count":17456948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ddms","profiling","trace"],"created_at":"2024-08-04T04:01:56.403Z","updated_at":"2024-11-19T09:30:44.299Z","avatar_url":"https://github.com/panhongwei.png","language":"Java","readme":"# TraceReader\n## 1.简述\n 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函数。\u003cbr\u003e\n## 2.功能\n  于是乎，便有个这个工具，目前更新到TraceReader v1.1，实现了如下功能：\u003cbr\u003e\n  1）支持拖拽解析xx.trace。\u003cbr\u003e\n ![image](http://123.207.98.15:8080/image/9.png)\u003cbr\u003e\n  2）支持显示线程。\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/10.png)\u003cbr\u003e\n  3）支持树形显示方法调用\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/13.png)\u003cbr\u003e\n  4）支持按列显示运行方法\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/22.png)\u003cbr\u003e\n  5）支持搜索\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/10.png)\u003cbr\u003e\n  6）支持复制、重命名\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/16.png)\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/17.png)\u003cbr\u003e\n  7）支持显示调用时间\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/18.png)\u003cbr\u003e\n![image](http://123.207.98.15:8080/image/19.png)\u003cbr\u003e\n## 3.用法\n  解析trace文件，用法如下：\n```Java\n  byte[] bytes=BytesHelper.toByteArray(fl.getPath());\n  Trace trace=new Trace(bytes);\t\t \n  trace.getThreadList();\n```\n## 3.原理\nTODO….\n  \n","funding_links":[],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanhongwei%2FTraceReader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpanhongwei%2FTraceReader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanhongwei%2FTraceReader/lists"}