btrace2.0使用方法
本文最后更新于:2025年5月2日 下午
2022 年我研究安卓性能优化的时候,写过一篇:btrace1.0使用方法 - Wesley’s Blog,现在 brace 进化到 2.0 了,让我们一起来看看如何使用。
具体的接入流程可以看官方文档:
我这里主要记录一下接入的一些报错问题:
目前最新版本是2.0.3-rc03
项目的gradle版本是7.0.2,gradle plugin是7.0.0
编译报错
org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
at org.gradle.workers.internal.DefaultWorkerExecutor.workerExecutionException(DefaultWorkerExecutor.java:270)
at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:252)
at com.android.build.gradle.internal.tasks.DexArchiveBuilderTaskDelegate.doProcess(DexArchiveBuilderTaskDelegate.kt:227)
at com.android.build.gradle.internal.tasks.DexArchiveBuilderTask.doTaskAction(DexArchiveBuilderTask.kt:256)
at com.android.build.gradle.internal.tasks.NewIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:66)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, position: Lcom/xxx/web/CommonHeader;
()V, origin: D:\Project\p_dev\app\build\intermediates\transforms\analyticsTrack\Production\release\720.jar:com/xxx/web/CommonHeader.class
需要关注Compilation failed to complete后面的类
如果哪个类报错就可以加入下面的配置,路径”${project.rootDir}/trace-filter/traceFilter.txt”
btrace/GRADLE_CONFIG.MD at master · bytedance/btrace
注意:allowpackage必须先配置,blockpackage必须在其子包下面,可以是类或者包名
1 |
|
特别注意
如果是windows用户,traceFilter.txt换行符必须改为LF
原因
com/bytedance/rheatrace/plugin/compiling/filter/RheaTraceMethodFilter.kt
parseTraceFilterFile
methodKeepStr.trim { it <= ‘ ‘ }.replace(“/“, “.”).split(“\n”).toTypedArray()
这里只替换了\n,没有替换\r,会导致解析出来的包名带有\r,导致checkPath失败。
1 |
|
参考
BTrace和Perfetto如何分析性能手把手教你使用BTrace和Perfetto分析性能 高级android开发工 - 掘金