网站内容抓取工具(Android下一代几个的几个收集和分析框架,你知道吗? )
优采云 发布时间: 2022-03-02 00:06网站内容抓取工具(Android下一代几个的几个收集和分析框架,你知道吗?
)
介绍
Perfetto工具是Android下一代统一的trace采集和分析框架,可以捕获平台和app的trace信息。用来替换systrace,但是systrace由于历史原因仍然会存在,Perfetto捕获的trace文件也可以转换成systrace视图。如果您习惯使用 systrace,您可以使用 Perfetto UI 的“Open with legacy UI”将其转换为 systrace 视图。Perfetto的主要特点如下:
跟踪采集过程
在说具体的采集流程之前,可以先看一下它的整体框架图和流程结构。有几个重要的过程需要说明:
Perfetto整体框架图
Perfetto的另一种观点
我还没有研究过它的源码,所以无法一一匹配上面的两个视图。这是另一个视图,只是为了让您更多地了解这个工具。上面提到除了标准的tracepoints之外,Perfetto还可以提供很好的可扩展性。这里我们先来看看标准的tracepoints,如下图所示。对比之前的systrace,我们发现Perfetto还是可以提供一些其他的功能。例如,它可以直接抓取事件日志,以及虚拟内存事件等。
标准跟踪点
在 Pixel 和 Pixel2 机型上,traced 和 traced_probes 这两个进程默认启用,但在其他机型上,您可能需要执行以下命令来启动这两个进程。开启这两个进程后,就可以正常抓包了。获取trace信息的方式也很方便,只要设置一个属性即可。
adb shell setprop persist.traced.enable 1
执行上述命令后,如果看到类似如下的日志,则说明启动成功。也可以直接ps看有没有这两个进程。
$ adb logcat -s perfetto
perfetto: service.cc:45 Started traced, listening on /dev/socket/traced_producer /dev/socket/traced_consumer
perfetto: probes.cc:25 Starting /system/bin/traced_probes service
perfetto: probes_producer.cc:32 Connected to the service
启用守护进程后,您可以执行 perfetto 命令行工具。这个命令行工具的用法和具体参数的含义就不一一介绍了。只需阅读评论。
1902:/ # perfetto
perfetto_cmd.cc:89
Usage: perfetto
--background -b : Exits immediately and continues tracing in background
--config -c : /path/to/trace/config/file or - for stdin
--out -o : /path/to/out/trace/file
--dropbox -d TAG : Upload trace into DropBox using tag TAG (default: perfetto)
--no-guardrails -n : Ignore guardrails triggered when using --dropbox (for testing).
--help -h
statsd-specific flags:
--alert-id : ID of the alert that triggered this trace.
--config-id : ID of the triggering config.
--config-uid : UID of app which registered the config.
其中--out用于指定trace输出文件,--config用于指定配置,即多长时间捕获,多长时间将内存数据写回文件,捕获哪些tracepoint等。 ,这个配置文件的内容,我们可以手动写,也可以用Perfetto UI网站生成。此外,默认情况下,Perfetto 中集成了一个测试配置。您可以使用以下命令来获取使用测试配置的跟踪文件。
$ adb shell perfetto --config :test --out /data/misc/perfetto-traces/trace //使用内置的test配置,然后输出到/data/misc/perfetto-traces/trace
抓取后,拉取/data/misc/perfetto-traces/trace文件的内容,用Perfetto UI网站打开,如下图:
界面模式
自定义配置
目前最方便的生成配置文件的方式是使用ui.perfetto.devPerfetto UI来帮助生成。点击Perfetto UI的“Record new trace”后,会看到很多配置界面,如下图所示:
RecordingMode配置界面
CPU配置页面
Android 应用和服务配置页面
选择好你想要的tracepoints后,点击开始录制,会生成如下命令内容。复制命令内容,直接在终端执行。完成后,将文件 /data/misc/perfetto-traces/trace 复制出来,使用上面的 ui.perfetto.dev 分析就可以了。
<p>adb shell perfetto \
-c - --txt \
-o /data/misc/perfetto-traces/trace \