Board logo

标题: 【转自D版带着爱】[驯猴指南]之二:Android电力优化的误区 [打印本页]

作者: 猗天科技    时间: 2012-10-6 22:05     标题: 【转自D版带着爱】[驯猴指南]之二:Android电力优化的误区

=====持续更新中,版权归D版所有,转载请注明出自D版======

承蒙大家错爱,驯猴指南第一期得到大家的踊跃顶帖。我会继续在驯猴指南之一中继续更新并回答大家提出的问题。这篇驯猴指南之二主要是为了简明介绍一些调教猴机电力中一些似是而非的问题,帮助大家更清晰的认识猴机电力管理。阅读本帖可能并不会直接帮助你更好的调教猴机电力,但知其然,更知其所以然,本身也是很有趣的事情,对吗?

1)什么是deep sleep?猴机如何进入deep sleep?

在xda论坛的很多kernel讨论贴中都可以看到“deep sleep”这个词语。首先要明白的是,deep sleep并不是Android系统本身的一个概念(你在http://developer.android.com中是查询不到关于deep sleep信息的)。Deep sleep是一个linux kernel的术语,由于Android本身是建筑在Linux之上的虚拟机,所以在底层上,Android的电源管理是依赖于Linux kernel的。Deep sleep在Linux kernel世界里是一个相对抽象的上层概念,在不同的平台上应对着不同的CPU硬件节电技术,在ARM平台上,Android kernel的deep sleep是指ARM的Dormant Mode。在这个状态下,ARM的CPU将完全关闭,内存和cache信息保留,CPU可以被外部事件唤醒。从这里可以看到deep sleep(Dormant mode)肯定是相当节省电力的。

猴机如何进入deep sleep?这本身是一个非常复杂的话题。由于在Deep sleep模式下,ARM的CPU要被完全power-off,而内存,寄存器和与其他硬件的交互又需要被妥善保存以便于快速恢复现场,里面所涉及到的技术是相当复杂的。调教猴机的deep sleep本身就是考验cpu生产商(高通,MTK,TI...)和手机制造商(三星,moto...)的一个技术要点。相信很多同学都有刷猴机第三方kernel的经历。如果你碰到过猴机睡死无法唤醒,无法点亮屏幕,唤醒时花屏和触摸屏无效等问题,大部分是由于第三方kernel在策略上太过于激进的进入deep sleep和没有处理好进入deep sleep的信息保存和恢复引起的。

2)我用setcpu等软件强制设定关闭屏幕后猴机cpu工作在最低频率上,是否可以节电呢?

这个问题是一位朋友发给我的私信里面提到的。答案是,“因猴而异”。在大部分猴机上,特别是大厂驯出的猴机,已经通过调教cpu governor来实现了类似的节电功能,并不需要用户通过setcpu等软件再做设定;另一方面来讲,XDA里面有多位坛友发现,在一些猴机kernel上,cpu会在进入deep sleep之前短暂提升到最大速度。为什么要这样设计不得而知,应该有其道理;但强制设置cpu在关屏后跑在最低频率,有可能阻止或者减少cpu进入deep sleep状态的机会。这样反而会更加耗电。

使用setcpu的朋友,可以重启一次手机,然后关屏放10分钟左右,打开setcpu->info->Time in State,如果猴机cpu的最低频率占了绝大部分时间,建议不要再用setcpu的profile功能强制cpu关屏后运行在最低频率。

3)所有猴机都能通过驯猴实现很好的节电效果吗?

猴机的电力管理可以分为以下几个层次:

层次一:猴机kernel调教。这包括根据不同厂家,不同型号的猴机cpu,微调cpu governor参数和进入deep sleep的时机/方法等细节。这部分调教是由手机生产厂家或者第三方kernel开发者来完成的,普通用户几乎不可能对此做什么有意义的调节。

层次二:猴机硬件驱动调教。包括针对各种传感器,电力管理芯片,触摸屏,wifi,基带等硬件驱动的调教。Android系统提供了统一的访问和管理硬件的接口,但接口之下的驱动实现是由cpu厂家和手机厂家完成的,普通用户几乎不可能调节这个部分。

层次三:猴机Android系统调教。几乎任何猴机厂家或者第三方ROM作者都会在原厂的Android系统上修改/优化若干细节。这些对于Android framework的修改可能带来耗电量的优化或者劣化。普通用户对此没有办法调节,最多就是多刷几个ROM来试试了。

层次四:猴机出厂预装软件/厂家定制化软件调教。品牌猴机还真没见过不预装软件的。这些软件中不乏精品和粗制滥造之作。有些预装软件本身就是吃电池大户。对于这些软件,普通用户在取得root权限之后,可以通过钛备份,LBE等第三方软件来禁用系统应用,实现优化调教的效果。

层次五:第三方应用程序调教。这当然是我们调教的重点。

从上面可以看出,作为普通用户,大部分人对于第一,二,三层次是没有办法调教的。如果这几个部分做得太差,我们对第四,五层次做调整也不会收到太好的效果。所以对于驯猴来说,猴本身的素质也是一个重要因素,驯猴不是解决电池问题的万能药,如果你的猴差在第四,第五层,驯猴效果会很好;如果你的猴第一,二,三层就很差,那你就不能指望太好的驯猴效果了。

====持续更新中====

[ 本帖最后由 猗天科技 于 2012-10-6 22:07 编辑 ]
作者: 月の海    时间: 2012-10-6 23:42

posted by wap, platform: Nokia (5700)

@月の海 mark
作者: 风林火山    时间: 2012-10-7 02:42

好文第二弹,继续mark一下
作者: Tanabi    时间: 2012-10-7 13:27

posted by wap, platform: Nokia (E71)

请教,关屏待机的时候WIFI也断了怎么解
作者: FoxfoO    时间: 2012-10-8 11:15

自承智商不够,没法驯猴。
作者: karlmao    时间: 2012-10-8 12:24

posted by wap, platform: UC

楼主好帖啊,持续关注中
作者: kidloved    时间: 2012-10-8 12:37

posted by wap, platform: Android
引用:
原帖由 @Tanabi  于 2012-10-7 13:27 发表
posted by wap, platform: Nokia (E71)

请教,关屏待机的时候WIFI也断了怎么解
wifi 那里可以设置待机时是否自动断开
作者: riven    时间: 2012-10-9 12:11

posted by wap, platform: UC

@riven mark
作者: 猫猫的小叔叔    时间: 2012-10-9 14:50

一个手机穷折腾干嘛。待机就算一个礼拜又怎么样。
能一天一充就很满意了,工作这么忙,学这些有意思么?




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0