如何查看指定进程中起了哪些线程

1. 问题描述

不算是问题描述,只是开关过程中,阅读代码不太理解,需要结合实际运行状态,查看android framework进程中,有没有我想看的部分代码的线程。
详细情况是我需要查看音频子系统中,音频服务进程有没有创建对应的input、output音频流线程

2. 解决方案

	// 1、查看进程ID
    ps -e | grep audio
    # ps -e | grep -i audio                                                                                                           
    audioserver    258     1   33204  13232 binder_thread_read  0 S [email protected]
    audioserver    281     1 2443596  29488 binder_thread_read  0 S audioserver
    
    // 2、查看进程中线程
    # top -H -p 281                                                                                                                            

Threads: 15 total,   0 running,  15 sleeping,   0 stopped,   0 zombie
  Mem:      3.7G total,      2.5G used,      1.2G free,       41M buffers
 Swap:      1.8G total,         0 used,      1.8G free,      1.3G cached
600%cpu   4%user   0%nice  11%sys 570%idle   0%iow  11%irq   4%sirq   0%host
  TID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ THREAD          PROCESS                                                                    
25735 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.00 Binder:281_8    audioserver
10610 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.01 Binder:281_7    audioserver
 5353 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.00 Binder:281_6    audioserver
 5310 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.03 Binder:281_5    audioserver
 1008 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.10 Binder:281_4    audioserver
  637 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.17 Binder:281_3    audioserver
  634 audioserver   1 -19 2.3G  29M  23M S  0.0   0.7   0:00.05 TimeCheckThread audioserver
  465 audioserver   1 -19 2.3G  29M  23M S  0.0   0.7   0:09.41 AudioOut_D      audioserver
  462 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.17 Binder:281_1    audioserver
  463 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.13 Binder:281_2    audioserver
  461 audioserver   4 -16 2.3G  29M  23M S  0.0   0.7   0:00.04 ApmOutput       audioserver
  457 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.00 HwBinder:281_1  audioserver
  460 audioserver   4 -16 2.3G  29M  23M S  0.0   0.7   0:00.05 ApmAudio        audioserver
  458 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.00 HwBinder:281_2  audioserver
  281 audioserver  20   0 2.3G  29M  23M S  0.0   0.7   0:00.50 audioserver     audioserver

    // 3、 查看代码中,创建线程时的线程名称
    // frameworks/av/services/audioflinger/Threads.cpp
    AudioFlinger::RecordThread::RecordThread(...)
    {
        snprintf(mThreadName, kThreadNameLength, "AudioIn_%X", id);
    }
    AudioFlinger::PlaybackThread::PlaybackThread(...)
    {
        snprintf(mThreadName, kThreadNameLength, "AudioOut_%X", id);
    }

你可能感兴趣的:(android,音频,驱动开发,音视频)