displaymanager
来源:互联网 发布:杭州龙席网络官网 编辑:程序博客网 时间:2024/06/08 12:11
frameworks\base\core\java\android\hardware\display\DisplayManagerInternal.java
/** * Display manager local system service interface. * * @hide Only for use within the system server. */public abstract class DisplayManagerInternal { /** * Called by the power manager to initialize power management facilities. */ public abstract void initPowerManagement(DisplayPowerCallbacks callbacks, Handler handler, SensorManager sensorManager); /** * Called by the power manager to request a new power state.
/** * Asynchronous callbacks from the power controller to the power manager service. */public interface DisplayPowerCallbacks { void onStateChanged(); void onProximityPositive(); void onProximityNegative(); void onDisplayStateChange(int state); // one of the Display state constants void acquireSuspendBlocker(); void releaseSuspendBlocker();}
}
frameworks\base\services\core\java\com\android\server\display\DisplayManagerService.java
public final class DisplayManagerService extends SystemService { private static final String TAG = "DisplayManagerService"; private static final boolean DEBUG = true;
public DisplayManagerService(Context context) { super(context); mContext = context; mHandler = new DisplayManagerHandler(DisplayThread.get().getLooper()); //显示进程,运行在其looper中 mUiHandler = UiThread.getHandler(); mDisplayAdapterListener = new DisplayAdapterListener(); mSingleDisplayDemoMode = SystemProperties.getBoolean("persist.demo.singledisplay", false); PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mGlobalDisplayBrightness = pm.getDefaultScreenBrightnessSetting();}
private final class LocalService extends DisplayManagerInternal { @Override public void initPowerManagement(final DisplayPowerCallbacks callbacks, Handler handler, SensorManager sensorManager) { synchronized (mSyncRoot) { DisplayBlanker blanker = new DisplayBlanker() { @Override public void requestDisplayState(int state, int brightness) { // The order of operations is important for legacy reasons. if (state == Display.STATE_OFF) { requestGlobalDisplayStateInternal(state, brightness); } callbacks.onDisplayStateChange(state); if (state != Display.STATE_OFF) { requestGlobalDisplayStateInternal(state, brightness); } } }; mDisplayPowerController = new DisplayPowerController( mContext, callbacks, handler, sensorManager, blanker); } }
}
frameworks\base\services\core\java\com\android\server\display\DisplayPowerController.java
final class DisplayPowerController implements AutomaticBrightnessController.Callbacks {
public DisplayPowerController(Context context,
/** * Creates the display power controller. */public DisplayPowerController(Context context, DisplayPowerCallbacks callbacks, Handler handler, SensorManager sensorManager, DisplayBlanker blanker) { mHandler = new DisplayControllerHandler(handler.getLooper()); //电源服务handler mCallbacks = callbacks; mBatteryStats = BatteryStatsService.getService(); mSensorManager = sensorManager; mWindowManagerPolicy = LocalServices.getService(WindowManagerPolicy.class); mBlanker = blanker; mContext = context; final Resources resources = context.getResources();
mAutomaticBrightnessController = new AutomaticBrightnessController(this, //运行在电源服务handler handler.getLooper(), sensorManager, screenAutoBrightnessSpline, lightSensorWarmUpTimeConfig, screenBrightnessRangeMinimum, mScreenBrightnessRangeMaximum, dozeScaleFactor, lightSensorRate, brighteningLightDebounce, darkeningLightDebounce, autoBrightnessResetAmbientLuxAfterWarmUp, ambientLightHorizon, autoBrightnessAdjustmentMaxGamma);
}
}
frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java
// Initialize display power management.mDisplayManagerInternal.initPowerManagement( mDisplayPowerCallbacks, mHandler, sensorManager);
第一个参数数显示管理服务回到会电源服务接口
private final DisplayManagerInternal.DisplayPowerCallbacks mDisplayPowerCallbacks = new DisplayManagerInternal.DisplayPowerCallbacks() { private int mDisplayState = Display.STATE_UNKNOWN; @Override public void onStateChanged() { synchronized (mLock) { mDirty |= DIRTY_ACTUAL_DISPLAY_POWER_STATE_UPDATED; updatePowerStateLocked(); } }
第二个参数就电源服务中handler
frameworks\base\core\java\android\hardware\display\DisplayManagerGlobal.java
/** * Manager communication with the display manager service on behalf of * an application process. You're probably looking for {@link DisplayManager}. * * @hide */public final class DisplayManagerGlobal { private static final String TAG = "DisplayManager"; private static final boolean DEBUG = false;
}
阅读全文
0 0
- DisplayManager
- displaymanager
- android DisplayManager 服务解析
- ANDROID DisplayManager 服务解析一
- ANDROID DisplayManager 服务解析一
- ANDROID DisplayManager 服务解析一
- ANDROID DisplayManager 服务解析一
- ANDROID DisplayManager 服务解析一
- 第十七篇 --ANDROID DisplayManager 服务解析一
- Java Reflection 機制, 以 DisplayManager 為例
- Android N DisplayManager服务解析(二)
- Android WiFi Display or DisplayManager 分析的两篇文章
- android 4.4 下使用 DisplayManager.createVirtualDisplay 录屏
- Poj 1159 Palindrome
- webPack+react 环境搭建
- 加密解密算法java实现(3)—RSA
- Java基础学习二
- HDOJ2037
- displaymanager
- 说说遇到的scanf错误(1)
- Java:关于深复制与浅复制
- GEOServer-OpenLayer-矢量切片1:制作矢量切片
- 2017/09/13
- String.equals报java.lang.NullPointerException
- JS字符串转Byte[]
- dataguard归档不同步的问题解决思路及步骤
- Java中锁概念总结