有没有办法找出我的应用程序扔ANR(应用程序无响应)的位置.我看了/ data中的traces.txt文件,我看到了我的应用程序的跟踪.这就是我在追踪中看到的.
DALVIK THREADS:
"main" prio=5 tid=3 TIMED_WAIT
| group="main" sCount=1 dsCount=0 s=0 obj=0x400143a8
| sysTid=691 nice=0 sched=0/0 handle=-1091117924
at java.lang.Object.wait(Native Method)
- waiting on <0x1cd570> (a android.os.MessageQueue)
at java.lang.Object.wait(Object.java:195)
at android.os.MessageQueue.next(MessageQueue.java:144)
at android.os.Looper.loop(Looper.java:110)
at android.app.ActivityThread.main(ActivityThread.java:3742)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
at dalvik.system.NativeStart.main(Native Method)
"Binder Thread #3" prio=5 tid=15 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x434e7758
| sysTid=734 nice=0 sched=0/0 handle=1733632
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #2" prio=5 tid=13 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x433af808 …Run Code Online (Sandbox Code Playgroud) 现在我java.util.logging用来记录我的Java项目中每个方法的入口和出口点.这在调试时非常有用.
我在每个方法的开头都有这段代码,最后是类似的代码:
if (logger.isLoggable(Level.FINER)) {
logger.entering(this.getClass().getName(), "methodName");
}
Run Code Online (Sandbox Code Playgroud)
其中"methodName"是方法的名称(硬编码).
所以我想知道是否有办法自动执行此操作,而无需在每个方法中包含此代码.