如何将.trace(分析Android应用程序)文件解析为sql格式

问题描述 投票:0回答:2

我是 Android 开发新手。我想分析我的应用程序的性能。所以我通过添加以下代码生成了一个日志文件(.trace) -

`// start tracing to "/sdcard/calc.trace"
Debug.startMethodTracing("calc");
// ...
// stop tracing
Debug.stopMethodTracing();`    

现在,我有了一个 calc.trace 文件。但我想将此文件解析为 sql 格式,以便我可以使用高级查询从数据中提取信息。我怎样才能做到这一点?

android sql database trace data-analysis
2个回答
0
投票

您可以使用以下 ruby 代码解析 (.)trace 文件,该代码使用正则表达式将数据解析为 (.)sql 文件。它还提供了一个查询,用于将数据插入到您选择的 SQL 数据库中。

但在此之前使用以下命令将二进制跟踪日志转换为txt文件

/pathTotraceview/trceview -r 文件名.trace > 文件名.txt

然后保存并运行以下代码。

#!/usr/bin/env ruby

@values = Array.new

STDIN.read.split("\n").each do |a|
   if a =~ /(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s([\w+.$]+)/
                 id = $1
                 tstart = $2
                 tend  = $3
                 gstart = $4
                 gend = $5
                 excl = $6
                 incl = $7
                 meth = $8
                 @values << "(#{id},#{tstart},#{tend},#{gstart},#{gend},#{excl},#{incl},'#{meth}')"
     end
end

puts "INSERT INTO table_name(pid,tstart,tend,gstart,gend,excl,incl,meth) values"
puts "#{@values.join(" , ")};"

要使用此文件,请将其作为 toSQL.rb 或任何其他名称存储在您的工作目录中,并在终端中使用以下命令来生成 sql 转储:

cat 跟踪文件名.txt | ./toSQL.rb > 文件名.sql


0
投票

您可以使用名为 Trace Processor 的工具在 Android 跟踪文件上运行 sql 查询 https://perfetto.dev/docs/quickstart/trace-analysis

© www.soinside.com 2019 - 2024. All rights reserved.