System server裏創建常見的幾個thread

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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章