System server里创建常见的几个thread

来源:互联网 发布:网络花店创业计划书 编辑:程序博客网 时间:2024/04/30 01:00

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));
0 0
原创粉丝点击