android.ui :@WatchDog.java
// Add checker for shared UI thread.
mHandlerCheckers.add(new HandlerChecker(UiThread.getHandler(),
"ui thread", DEFAULT_TIMEOUT));
private UiThread() {
super("android.ui", android.os.Process.THREAD_PRIORITY_FOREGROUND, false );
}
static final long DEFAULT_TIMEOUT = DB ? 10*1000 : 60*1000; //默認爲60s
主要處理:
1. AMS UiHandler裏show各種msg
2. DisplayManagerService裏的overlay相關msg
3. PointerEventDispatcher inputevent相關
4. VoiceInteractionManagerService Voice交互
5. WindowManagerPolicy init操作
android.bg BackgroundThread @AMS
final Handler mBgHandler = new Handler(BackgroundThread.getHandler().getLooper())
private BackgroundThread() {
super("android.bg", android.os.Process.THREAD_PRIORITY_BACKGROUND);
}
主要處理這兩件事情:@mBgHandler.handleMessage()
CHECK_INTERNET_PERMISSION_MSG
COLLECT_PSS_BG_MSG
android.fg:@WatchDog.java
mMonitorChecker = new HandlerChecker(FgThread.getHandler(),
"foreground thread", DEFAULT_TIMEOUT);
private FgThread() {
super("android.fg", android.os.Process.THREAD_PRIORITY_DEFAULT, true /*allowIo*/);
}
主要用於:
1. AccountManagerService
2. BatteryStatsService
3. DreamManagerService
4. MountService
5. NetworkManagementService
6. PackageManagerService
7. usb相關(debug, device, portmanager)
8. WindowManagerService(screenshotApplicationsInner)
android.io: @WatchDog.java
mHandlerCheckers.add(new HandlerChecker(IoThread.getHandler(),
"i/o thread", DEFAULT_TIMEOUT));
private IoThread() {
super("android.io", android.os.Process.THREAD_PRIORITY_DEFAULT, true /*allowIo*/);
}
主要有用於:
1.BluetoothManagerService 相關操作
2.MountService裏的obb操作
3.Tethering 網絡共享(usb /wifi/mobile?)
4.TvInputManagerService tv裏channel session相關
android.display:@WatchDog.java
mHandlerCheckers.add(new HandlerChecker(DisplayThread.getHandler(),
"display thread", DEFAULT_TIMEOUT));
private DisplayThread() {
super("android.display", android.os.Process.THREAD_PRIORITY_DISPLAY, false );
}
主要用於:
1. DisplayManagerService(display adapter,viewport ,event…)
2. InputManagerService (keyboard , input device …)
3. WindowManagerService 實例的創建
system server main thread:
mHandlerCheckers.add(new HandlerChecker(new Handler(Looper.getMainLooper()),
"main thread", DEFAULT_TIMEOUT));