2017-02-09 60 views
1

我是android開發新手。我想描述我的應用程序的性能。所以我通過添加下面的代碼生成了一個日誌文件(.trace) -如何解析.trace(分析android應用程序)文件爲sql格式

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

現在,我有一個calc.trace文件。但我想要將此文件解析爲sql格式,以便我可以使用高級查詢從數據中提取信息。我怎樣才能做到這一點?

回答

0

您可以使用以下使用正則表達式將數據解析爲(。)sql文件的ruby代碼解析(。)跟蹤文件。它還提供了一個查詢來將數據插入到您選擇的SQL數據庫中。

但在此之前使用以下命令將二進制跟蹤日誌轉換成txt文件

/pathTotraceview/trceview -r filename.trace> FILENAME.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轉儲:

貓traceFileName。 txt | ./toSQL.rb> fileName.sql