android9亮度调,Android9.0手动亮度调节流程
frameworks/base/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java

DisplayManager.java
public void setTemporaryBrightness(int brightness) {
mGlobal.setTemporaryBrightness(brightness);
}
DisplayManagerGlobal.java
public void setTemporaryBrightness(int brightness) {
try {
mDm.setTemporaryBrightness(brightness);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
}
DisplayManagerService.java
public void setTemporaryBrightness(int brightness) {
...
mDisplayPowerController.setTemporaryBrightness(brightness);
...
}
DisplayPowerController.java
public void setTemporaryBrightness(int brightness) {
Message msg = mHandler.obtainMessage(MSG_SET_TEMPORARY_BRIGHTNESS,
brightness, 0 /*unused*/);
msg.sendToTarget();
}
...
private void updatePowerState() {
//此方法比较长,里面有大量的判断,下面只写关键语句
...
animateScreenBrightness(brightness, 0);
...
}
...
private void animateScreenBrightness(int target, int rate) {
//这一句就是关键的设置语句
if (mScreenBrightnessRampAnimator.animateTo(target, rate)) {
}
}
下面的就不太好跟了,直接贴图 RampAnimator.java

DisplayPowerState.java

setScreenBrightness(int brightness){...}
scheduleScreenUpdate() {...}
postScreenUpdateThreadSafe(){...}
Runnable mScreenUpdateRunnable = new Runnable() {
...
mPhotonicModulator.setState(mScreenState, brightness)
...
}
PhotonicModulator.java


又调回到了DisplayManagerService.java


LocalDisplayAdapter.java


LightsService.java


com_android_server_lights_LightsService.cpp

更多推荐
所有评论(0)