目前掌握的信息还不够 。
于是我们再分析虚拟机信息 , 搜索“Dalvik Thread”关键词,快速定位到本应用程序的虚拟机信息日志,如下: ----- pid 2922 at 2011-01-13 13:51:07 ----- Cmd line: com.android.mms
DALVIK THREADS:
\
| group=\sCount=1 dsCount=0 s=N obj=0x4001d8d0 self=0xccc8
| sysTid=2922 nice=0 sched=0/0 cgrp=default handle=-1345017808 | schedstat=( 3497492306 15312897923 10358 )
at android.media.MediaPlayer._release(Native Method) at android.media.MediaPlayer.release(MediaPlayer.java:1206) at android.widget.VideoView.stopPlayback(VideoView.java:196) at com.android.mms.ui.SlideView.stopVideo(SlideView.java:640) at
com.android.mms.ui.SlideshowPresenter.presentVideo(SlideshowPresenter.java:443) at
com.android.mms.ui.SlideshowPresenter.presentRegionMedia(SlideshowPresenter.java:219)
at
com.android.mms.ui.SlideshowPresenter$4.run(SlideshowPresenter.java:516)
at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) at dalvik.system.NativeStart.main(Native Method)
\
| group=\sCount=1 dsCount=0 s=N obj=0x4837f808 self=0x242280
| sysTid=3239 nice=0 sched=0/0 cgrp=default handle=2341032 | schedstat=( 32410506 932842514 164 )
at dalvik.system.NativeStart.run(Native Method)
\
| group=\sCount=1 dsCount=0 s=N obj=0x482f4b80 self=0x253e10
| sysTid=3236 nice=0 sched=0/0 cgrp=default handle=2432120 | schedstat=( 3225061 26561350 27 ) at java.lang.Object.wait(Native Method)
- waiting on <0x482f4da8> (a android.os.MessageQueue) at java.lang.Object.wait(Object.java:288)
at android.os.MessageQueue.next(MessageQueue.java:146) at android.os.Looper.loop(Looper.java:110)
at android.os.HandlerThread.run(HandlerThread.java:60)
\
| group=\sCount=1 dsCount=0 s=N obj=0x4836e2b0 self=0x25af70
| sysTid=2929 nice=0 sched=0/0 cgrp=default handle=2370896 | schedstat=( 130248 4389035 2 ) at java.lang.Object.wait(Native Method)
- waiting on <0x4836e240> (a java.util.ArrayList) at java.lang.Object.wait(Object.java:288) at
com.android.mms.data.Contact$ContactsCache$TaskStack$1.run(Contact.java:488)
at java.lang.Thread.run(Thread.java:1096)
\
| group=\sCount=1 dsCount=0 s=N obj=0x482f8ca0 self=0x130fd0
| sysTid=2928 nice=0 sched=0/0 cgrp=default handle=1215968 | schedstat=( 40610049 1837703846 195 )
at dalvik.system.NativeStart.run(Native Method)
\
| group=\sCount=1 dsCount=0 s=N obj=0x482f4a78 self=0x128a50
| sysTid=2927 nice=0 sched=0/0 cgrp=default handle=1201352 | schedstat=( 40928066 928867585 190 )
at dalvik.system.NativeStart.run(Native Method)
\
| group=\sCount=1 dsCount=0 s=N obj=0x482f1348 self=0x118960
| sysTid=2926 nice=0 sched=0/0 cgrp=default handle=1149216 | schedstat=( 753021350 3774113668 6686 ) at dalvik.system.NativeStart.run(Native Method)
\
| group=\sCount=1 dsCount=0 s=N obj=0x482f12a0 self=0x132940
| sysTid=2925 nice=0 sched=0/0 cgrp=default handle=1255680 | schedstat=( 2827103 29553323 19 )
at dalvik.system.NativeStart.run(Native Method)
\
| group=\sCount=0 dsCount=0 s=N obj=0x482f11e8 self=0x135988
| sysTid=2924 nice=0 sched=0/0 cgrp=default handle=1173688 | schedstat=( 11793815 12456169 7 )
at dalvik.system.NativeStart.run(Native Method)
\
| group=\sCount=1 dsCount=0 s=N obj=0x45496028 self=0x135848
| sysTid=2923 nice=0 sched=0/0 cgrp=default handle=1222608 | schedstat=( 79049792 1520840200 95 )
at dalvik.system.NativeStart.run(Native Method)
----- end 2922 -----
每一段都是一个线程 ,当然我们还是看线程号为1的主线程了。通过分析发现关键问题是这样: