一. Android系统源码中的参数配置
MTK6771平台MTK重写了背光曲线的参数,路径在s0_vnd/vendor/mediatek/proprietary/packages/overlay/vendor/FrameworkResOverlayExt/brightness_adaptive_support/res/values/config.xml
不过MTK的其他平台可能不是在这个路径
来看 config.xml 这个文件中需要配置的两个参数:
config_autoBrightnessLevels // 环境光对应的值
config_autoBrightnessLcdBacklightValues // 显示屏对应的亮度值(范围 0-255)
这两个参数在文件 t0_sys\frameworks\base\services\core\java\com\android\server\display\BrightnessMappingStrategy.java
中被加载
@Nullable
private static BrightnessMappingStrategy create(Resources resources,
DisplayDeviceConfig displayDeviceConfig, boolean isForIdleMode,
DisplayWhiteBalanceController displayWhiteBalanceController) {
// Display independent, mode dependent values
float[] brightnessLevelsNits;
float[] luxLevels;
if (isForIdleMode) {
brightnessLevelsNits = getFloatArray(resources.obtainTypedArray(
com.android.internal.R.array.config_autoBrightnessDisplayValuesNitsIdle));
luxLevels = getLuxLevels(resources.getIntArray(
com.android.internal.R.array.config_autoBrightnessLevelsIdle));
} else {
brightnessLevelsNits = getFloatArray(resources.obtainTypedArray(
com.android.internal.R.array.config_autoBrightnessDisplayValuesNits));
// 从资源文件中获取环境光参数
luxLevels = getLuxLevels(resources.getIntArray(
com.android.internal.R.array.config_autoBrightnessLevels));
}
// Display independent, mode independent values
int[] brightnessLevelsBacklight = resources.getIntArray(com.android.internal.R.array.config_autoBrightnessLcdBacklightValues);
float autoBrightnessAdjustmentMaxGamma = resources.getFraction(
com.android.internal.R.fraction.config_autoBrightnessAdjustmentMaxGamma,