1 查看Activity所在進程
從logcat可以直接看到PID(Process ID)
然后利用adb shell ps 查看進程內(nèi)部的線程
-T 顯示所有線程
adb shell ps -T -p 10724
USER PID TID PPID VSZ RSS WCHAN ADDR S CMD
u0_a239 7532 7532 633 4468008 123960 0 0 S tudyproject.app(main)
u0_a239 7532 7547 633 4468008 123960 0 0 S Binder:7532_1 (ApplicatoinThread)
u0_a239 7532 7548 633 4468008 123960 0 0 S Binder:7532_2 (ViewRoot.W)
u0_a239 7532 7549 633 4468008 123960 0 0 S Binder:7532_3 (Dont know now)
------------------below is the JVM(ART or Davlik) Thread -----------------------------
u0_a239 7532 7554 633 4468008 123960 0 0 S RenderThread (Surface thread)
u0_a239 7532 7538 633 4468008 123960 0 0 S Jit thread pool(JIT)
u0_a239 7532 7540 633 4468008 123960 0 0 S Signal Catcher(Linux Signal Recevier Thread)
u0_a239 7532 7541 633 4468008 123960 0 0 S ADB-JDWP Connected (DDMS 鏈接線程)
u0_a239 7532 7542 633 4468008 123960 0 0 S ReferenceQueueDaemon (引用隊列Dameon 查看Daemons.java)
u0_a239 7532 7543 633 4468008 123960 0 0 S FinalizerDaemon (析構(gòu)守護線程 調(diào)用對象finalizer())
u0_a239 7532 7544 633 4468008 123960 0 0 S FinalizerWatchdogDaemon (析構(gòu)監(jiān)控守護線程)
u0_a239 7532 7545 633 4468008 123960 0 0 S HeapTaskDaemon(堆剪裁守護線程)
u0_a239 7532 7550 633 4468008 123960 0 0 S Profile Saver (Profile Thread)
u0_a239 7532 7553 633 4468008 123960 0 0 S Binder:intercept (Dont know now)
u0_a239 7532 7656 633 4468008 123960 0 0 S queued-work-loop (Dont know now)
2 查看Service所在進程
與Activity相比 顯然少了Render Thread乐尊。
USER PID TID PPID VSZ RSS WCHAN ADDR S CMD
u0_a239 10748 10748 633 4451584 98400 0 0 S ject.app:remote
u0_a239 10748 10754 633 4451584 98400 0 0 S Jit thread pool
u0_a239 10748 10755 633 4451584 98400 0 0 S Signal Catcher
u0_a239 10748 10756 633 4451584 98400 0 0 S ADB-JDWP Connec
u0_a239 10748 10757 633 4451584 98400 0 0 S ReferenceQueueD
u0_a239 10748 10758 633 4451584 98400 0 0 S FinalizerDaemon
u0_a239 10748 10759 633 4451584 98400 0 0 S FinalizerWatchd
u0_a239 10748 10760 633 4451584 98400 0 0 S HeapTaskDaemon
u0_a239 10748 10761 633 4451584 98400 0 0 S Binder:10748_1
u0_a239 10748 10762 633 4451584 98400 0 0 S Binder:10748_2
u0_a239 10748 10763 633 4451584 98400 0 0 S Binder:10748_3
u0_a239 10748 10766 633 4451584 98400 0 0 S Profile Saver
ReferenceQueueDaemon:引用隊列守護線程圣贸。我們知道祈秕,在創(chuàng)建引用對象的時候睬罗,可以關(guān)聯(lián)一個隊列署穗。當(dāng)被引用對象引用的對象被GC回收的時候必搞,被引用對象就會被加入到其創(chuàng)建時關(guān)聯(lián)的隊列去绩脆。這個加入隊列的操作就是由ReferenceQueueDaemon守護線程來完成的刘莹。這樣應(yīng)用程序就可以知道哪些被引用對象引用的對象已經(jīng)被回收了顷链。
FinalizerDaemon:析構(gòu)守護線程目代。對于重寫了成員函數(shù)finalize的對象,它們被GC決定回收時嗤练,并沒有馬上被回收榛了,而是被放入到一個隊列中,等待FinalizerDaemon守護線程去調(diào)用它們的成員函數(shù)finalize煞抬,然后再被回收霜大。
FinalizerWatchdogDaemon:析構(gòu)監(jiān)護守護線程。用來監(jiān)控FinalizerDaemon線程的執(zhí)行革答。一旦檢測那些重定了成員函數(shù)finalize的對象在執(zhí)行成員函數(shù)finalize時超出一定的時候战坤,那么就會退出VM曙强。
HeapTaskDaemon:堆裁剪守護線程。用來執(zhí)行裁剪堆的操作途茫,也就是用來將那些空閑的堆內(nèi)存歸還給系統(tǒng)碟嘴。