IPO\IPOH快速开关机相关

6592项目中,Settings的辅助功能里面有快速开关机项,因项目需求,需要将该模块去掉。所以就花了半早上看了一下。

1)首先是需要把界面显示去掉,AccessibilitySettings.java中去掉该CheckBoxPreference,然后通过Settings.System.putInt(getContentResolver(), Settings.System.IPO_SETTING, 0); 改变保存在数据库中的默认值。(后来发现多此一举,完全不需要在这里修改数据库的默认值,就算在这里修改了,如果用户开机后不运行设置模块,数据库里面依然保存的是默认值,选中状态)。那么,如果要改默认值,应该去哪里改变呢?在frameworks/base/packages/SettingsProvider/res/values/mtk_defaults.xml这个文件中保存了一些系统开机自动默认设置。true即为系统快速开机默认设置。事实上,第一步只需要将设置中的界面改掉就可以了,关于默认值可以不做修改。

2)alps/mediatek/config/project name/ProjectConfig.mk 中
MTK_IPO_SUPPORT = yes 改成 MTK_IPO_SUPPORT = no 

IPO: 是Instant power on 的缩写  这样就不会编译快速开机,系统便去掉了快速启动功能。

3)IPOH IPO-Hibernate Shutdown 关机快速开关机 休眠
通常情况下,客户习惯关机后又开机的情况,MTK 设计上如果开启了IPO, 会等待一段时间后,确认客户没有开机。就会进入hibernate 正式关机。
此机制提供睡眠模式(混合睡眠)的开关机行为(与Windows Vista中之后提供的预设关机模式相同)。结合原先IPO +休眠(休眠),如此一来,
*短时间的关机能与原先IPO模式相同,在“开机”时迅速进到“主屏幕”,达到快速开机的效果。
*在长时间待机(可设定时间)状况下能达到与完全关闭电源方式的相同省电效果,且开机时间能快上一倍。

从IPO 关机到正式Hibernate 关机这个时间段长度可以如下修改:

*运行时修改
adb shell setprop ipo.power_off_time XXX,其中XXX单位为秒,可以调整IPO-H关机启动时间,目前预设30分钟(30* 60),最小时间限制为50秒
*编译直接修改
alps/mediatek/external/ipod/ipodmain.h
#define IPO_DEFAULT_POWEROFF_TIME (30*60)
单位为秒(sec), 默认是30分钟,最小限制为50s
 
4)Hibernate 是要建立在IPO基础之上,如果关闭了IPO,那么IPOH打开也没用的。

猜你喜欢

转载自blog.csdn.net/xajhsunei/article/details/46324555