调节背光变化
MTK调节背光亮度时,会有一个渐变的过程。
1. 如何对背光渐变和背光的值进行处理
Path:frameworks\base\services\core\java\com\android\server\display\DisplayPowerController.java
在updatePowerState()方法中搜索animateScreenBrightness
if (initialRampSkip || hasBrightnessBuckets
|| wasOrWillBeInVr || !isDisplayContentVisible || brightnessIsTemporary) {
animateScreenBrightness(brightness, 0);
} else {
// Monkey.flag
animateScreenBrightness(brightness,
slowChange ? mBrightnessRampRateSlow : mBrightnessRampRateFast);
}
渐变过程:mBrightnessRampRateSlow : mBrightnessRampRateFas
如果需要去掉渐变过程,讲“slowChange ? mBrightnessRampRateSlow : mBrightnessRampRateFas”修改为“0”
那么如何对背光的值进行客制化处理呢!
代码中animateScreenBrightness()方法对动画和背光值进行处理
private void animateScreenBrightness(int target, int rate) {
if (DEBUG) {
Slog.d(TAG, "Animating brightness: target=" + target +", rate=" + rate);
}
Log.d("Monkey_brightness","brightness:"+target);
if (mScreenBrightnessRampAnimator.animateTo(target, rate)) {
Trace.traceCounter(Trace.TRACE_TAG_POWER, "TargetScreenBrightness", target);
try {
mBatteryStats.noteScreenBrightness(target);
} catch (RemoteException ex) {
// same process
}
}
}
通过打印log发现int target变量的值就是下发的背光值,范围:0-255。那么我们只需要处理变量:target的值就可以达到客制化背光值的需求。