Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1306385
  • 博文数量: 478
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4833
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-28 11:12
文章分类

全部博文(478)

文章存档

2019年(1)

2018年(27)

2017年(21)

2016年(171)

2015年(258)

我的朋友

分类: Android平台

2016-04-18 14:39:08

[DESCRIPTION]
 介绍IPOH的功能 
 
 
[SOLUTION]
 在ipo关机后,系统会处于一种suspend的状态。
为了达到省电目的,我方有一个ipoh的功能。
此机制提供睡眠模式(hybrid sleep)的开关机行为(与windows vista 之后提供的预设关机模式相同)。结合原来IPO+休眠(Hibernate)
ipo关机后有三种不同的模式:
1. ipo的suspend阶段,在关机后的30分钟以内,手机会停留在suspend阶段,这个阶段系统只是suspend,所以相对来说还是有一定的耗电量;
2. ipo-shutdown阶段,在关机的30分钟后,如果仍然没有做开机动作,则系统会进入真关机,以达到省电的目的。
3. ipo-hiberation阶段,在关机的30分钟后,如果仍然没有做开机动作,则系统会进入hiberation阶段,此阶段即ipoh。
ipo-shutdown 与ipo-hiberation 相比,ipoh有两个明显的优势:
1. 短时间的关机与原来IPO模式相同,在开机时迅速进入到”Home screen”,达到最快开机的效果。
2. 在长时间待机(可设定时间)的情况下,能达到与完全关闭电源方式的相同省电效果,但是在开机时间上能快上一倍。
 
本功能的测试条件:
1、需要打开ipoh的feature option: FeatureOption.MTK_IPOH_SUPPORT
2、勾选设置中的快速开机选项;
3、不连接usb/Charger条件下进行测试;
4、手机在非加密情况下进行测试;
5、flash storage中的user data的空闲空间必须足够大,否则会失败;
 
ipoh代码控制:
1. 打开或者关闭IPOH:
在代码中的mediatek/external/ipodmain.h,设置ipoh_mode为1,即打开了IPOH功能:
#define IPOH_MODE 1
这里的1表示的是:Hibernation mode。
对应还有另外两个值:0表示Suspend mode original IPO,2表示Shutdown mode。
 
当然,也可以通过setprop ipo.ipoh.enable的方式来动态设置这个值。例如:
adb shell setprop ipo.ipoh.enable 0 (Suspend mode original IPO)
adb shell setprop ipo.ipoh.enable 1 (Hibernation mode)
adb shell setprop ipo.ipoh.enable 2 (Shutdown mode)
 
2. 修改IPO关机后,进入IPOH的时间:
对于ipo关机后,默认是30分钟后才会进入hibernation mode。这个30分钟的默认时间也是可以修改的:
在代码中,可以通过修改mediatek/external/ipodmain.h中的如下定义:
#define IPO_DEFAULT_POWEROFF_TIME (30*60) //sec  (trigger 時間: 單位為秒)
也可以通过如下方法动态设置:
adb shell setprop ipo.power_off_time XXX,其中XXX单位为秒。
请注意,这里的最小时间限制是50s。

阅读(1104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~