
源码位置及分析:
1、首先根据字段“自动开启”查找源码:
vendor\mediatek\proprietary\packages\apps\MtkSettings_Eclipse\res_ext\values-zh-rCN\strings.xml,找到battery_saver_turn_on_automatically_title字段。
2、根据上述字段查找src以及设置下的源码:可以查到在以下源码中有该字段。
vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\fuelgauge\batterysaver\AutoBatterySeekBarPreferenceController.java
// Set the current value.
final int level = Settings.Global.getInt(contentResolver,
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
AutoBatterySaverPreferenceController.DEFAULT_TRIGGER_LEVEL);
if (level == 0) {
preference.setVisible(false);
} else {
preference.setVisible(true);
preference.setTitle(mContext.getString(R.string.battery_saver_seekbar_title,
Utils.formatPercentage(level)));
SeekBarPreference seekBarPreference = (SeekBarPreference) preference;
seekBarPreference.setProgress(level);
seekBarPreference.setSeekBarContentDescription(
mContext.getString(R.string.battery_saver_turn_on_automatically_title));
}
查看代码,可看出设置默认值得字段DEFAULT_TRIGGER_LEVEL,但是这个字段不是在该类中实现,而是调用了AutoBatterySaverPreferenceController中的设置,所以查找到 AutoBatterySaverPreferenceController.java
3、查找到AutoBatterySaverPreferenceController.java的文件位置,如下。
vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\fuelgauge\batterysaver\AutoBatterySaverPreferenceController.java
public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements
Preference.OnPreferenceChangeListener {
/**
* Default value for {@link Settings.Global#LOW_POWER_MODE_TRIGGER_LEVEL}.
*/
static final int DEFAULT_TRIGGER_LEVEL = 15;
/**
* The default value to set to {@link Settings.Global#LOW_POWER_MODE_TRIGGER_LEVEL} when the
* user enables battery saver.
*/
private final int mDefaultTriggerLevelForOn;
在其代码中,可看出定义的int值,当为0的时候,自动开启功能默认关;当为15时,即剩余电量为15%时默认开启省电模式功能。具体功能分析待日后分析。
本文详细解析了手机省电模式自动开启功能的源码实现过程,从源码位置、字段查找,到核心类AutoBatterySaverPreferenceController的具体分析,揭示了默认触发值与省电模式开启之间的联系。

4137

被折叠的 条评论
为什么被折叠?



