|
发表于 2020-8-22 09:13:27
6748 浏览 0 回复
如何在Android P 上面做doze 灭屏显示功能配置
对于doze的灭屏显示功能,说明如下:
1. doze的主要功能是省电。Doze通过在设备长时间处于闲置状态时推迟应用的后台 CPU 和网络来减少电池消耗.
2. doze灭屏显示是指灭屏后还能显示,对于一般设备这是非常耗电的,所以主要使用在AMOLED屏幕的设备,如果你的设备不是AMOLED屏,不建议打开doze灭屏显示功能。
3. google aosp在systemui提供了dozeservice来管理灭屏后的显示,我司也有提供AlwaysOnDisplay这个apk供选择使用。
使用AOSP提供的systemui dozeservice的配置如下:
- config.xml (framework/base/core/res/res/config.xml)
- <string name="config_dozeComponent" translatable="false">com.android.systemui/com.android.systemui.doze.DozeService</string>
- <integer name="config_screenBrightnessDoze">17</integer>
- <bool name="config_dozeAfterScreenOffByDefault">true</bool>
- <bool name="config_dozePulsePickup">true</bool>
- <bool name="config_dozeAlwaysOnDisplayAvailable">true</bool>
- <bool name="config_displayBlanksAfterDoze">true</bool>
复制代码 其中"config_screenBrightnessDoze">17<这个值设置黑屏亮度,请自行决定大小。
按照以上配置,即可实现灭屏显示功能。如果配置后出现无法点亮屏幕或者灭屏不能显示等问题,请check下PhoneWindowManager.java,如果有红色字段code,请将其if的内容删除。
- 5839 /// [ALPS02869412] when dreaming, force hide status bar to avoid keyguard flash
复制代码- /*删除
- <font color="Red">5840 if(mDreamManagerInternal != null && mDreamManagerInternal.isDreaming()) {
- 5841 if (DEBUG_LAYOUT) Slog.v(TAG, "** HIDING status bar: dreaming");
- 5842 if (mStatusBarController.setBarShowingLw(false)) {
- 5843 changes |= FINISH_LAYOUT_REDO_LAYOUT;
- 5844 }
- 5845 } else</font> */删除
复制代码- if (mForceStatusBar || mForceStatusBarFromKeyguard || mForceStatusBarTransparent
- 5846 || statusBarExpanded) {
- 5847 if (DEBUG_LAYOUT) Slog.v(TAG, "Showing status bar: forced");
- 5848 if (mStatusBarController.setBarShowingLw(true)) {
- 注意check project的config MTK_AOD_SUPPORT,请设置为false
复制代码
|
|
手机微信同号:13682654092
|
|
|
|
|
登录或注册
|