写这边文章主要是由于今天项目的需要!要求我在休眠中更改相关的时间以及添加一个“永不休眠”选项。
下面我们开始:
首先我们跟踪点击“设置”、“显示”、‘休眠“都调用了哪些相关类。将设备连上电脑,打开adb logcat ,点击“设置---显示”我们看到在控制台中显示如下:
见上图中红色部分,在点击”显示“的时候,在logcat中打印了上述内容。我们通过查找”DisplaySettings.java“从而定位相关的代码。查找如图:
其实根据经验我们也知道跟”设置“相关的东东都在android4.2/packages/apps/Settings中。既然知道了所处的位置,我们定位到android4.2/packages/apps/Settings/DisplaySettings.java中。
由于DisplaySettings extends SettingsPreferenceFragment 我们在onCreate()中可以找到相关配置:addPreferencesFromResource(R.xml.display_settings); 由此我们进入到display_settings.xml中进行查看。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/display_settings"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.android.settings.BrightnessPreference
android:key="brightness"
android:title="@string/brightness"
android:dialogTitle="@string/brightness" />
<PreferenceScreen
android:key="wallpaper"
android:title="@string/wallpaper_settings_title"
android:fragment="com.android.settings.WallpaperTypeSettings" />
<CheckBoxPreference
android:key="accelerometer"
android:title="@string/accelerometer_title"/>
<ListPreference
android:key="screen_timeout"
android:title="@string/screen_timeout"
android:summary="@string/screen_timeout_summary"
android:persistent="false"
android:entries="@array/screen_timeout_entries"
android:entryValues="@array/screen_timeout_values" />
<PreferenceScreen
android:key="screensaver"
android:title="@string/screensaver_settings_title"
android:f