【发布时间】:2018-09-23 21:26:02
【问题描述】:
我有一些使用静态布局的自定义绘图逻辑。有一些自动调整大小的逻辑可以创建静态布局的新实例,以便找到要显示的文本的最佳大小。然而,我很少看到 ANR 并试图了解它们发生时究竟是什么原因造成的。它是这样写的
"main" prio=5 tid=1 Runnable
| group="main" sCount=0 dsCount=0 flags=0 obj=0x738bfc20 self=0x7e282c4a00
| sysTid=31483 nice=-10 cgrp=default sched=0/0 handle=0x7e2d5109c8
| state=R schedstat=( 22803957927 398883091 2986 ) utm=2163 stm=117 core=3 HZ=100
| stack=0x7fff593000-0x7fff595000 stackSize=8MB
| held mutexes= "mutator lock"(shared held)
#00 pc 00000000003973ec /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+212)
#01 pc 000000000045dba0 /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMapb+348)
#02 pc 00000000004752bc /system/lib64/libart.so (_ZN3art14DumpCheckpoint3RunEPNS_6ThreadE+880)
#03 pc 000000000045e9b0 /system/lib64/libart.so (_ZN3art6Thread21RunCheckpointFunctionEv+416)
#04 pc 00000000004e20a0 /system/lib64/libart.so (_ZN3art16JniMethodFastEndEjPNS_6ThreadE+92)
#05 pc 0000000000556360 /system/framework/arm64/boot-framework.oat (Java_android_graphics_Paint_nGetFontMetricsInt__JJLandroid_graphics_Paint_00024FontMetricsInt_2+208)
at android.graphics.Paint.nGetFontMetricsInt (Paint.java)
at android.graphics.Paint.getFontMetricsInt (Paint.java:2193)
at android.text.MeasuredText.addStyleRun (MeasuredText.java:199)
at android.text.StaticLayout.generate (StaticLayout.java:754)
at android.text.StaticLayout.<init> (StaticLayout.java:534)
at android.text.StaticLayout.<init> (StaticLayout.java:479)
at android.text.StaticLayout.<init> (StaticLayout.java:457)
at android.text.StaticLayout.<init> (StaticLayout.java:437)
【问题讨论】:
标签: android performance android-layout android-anr-dialog