电量

Android休眠问题探讨(1)

我们两清 提交于 2019-12-07 19:29:53
移动设备上的开发,最重要的一点就是耗电量问题,再优秀的软件,假如耗电量过大的话,必然会成为一个失败的产品。Android设备上解决耗电的一个策略就是休眠,手机在锁屏之后一段时间手机就会休眠,那个时候,无论是屏幕,CPU还是其他模块都会停止工作,这样导致了几个问题: 1.一些通讯软件的心跳包中断,导致掉线 2.若采用UDP连接的情况下,服务器过来的数据包不一定实时。 我们来讲讲如何解决以上的两个问题。 Android手机有两个处理惩罚器,一个叫Application Processor(AP),一个叫Baseband Processor(BP)。AP是ARM架构的处理处理器,用于运行Linux+Android体系;BP用于运行及时操纵体系(RTOS),通信协议栈运行于BP的RTOS之上。非通话时候,BP的能耗基本在5mA以下,而AP只要处于非休眠状况,能耗至少在50mA以上,履行图形运算时会更高。别的LCD工作时功耗在100mA左右,WIFI也在100mA左右。一般手机待机时,AP、LCD、WIFI均进入休眠状况,这时Android中应用法度的代码也会停止运行。 Android为了确保一些关键代码的正确 运行 ,供给了Wake Lock的API,使得应用有权限经由过程代码阻拦AP进入休眠状况(iOS、WP7都没这种器材)。若是不懂得Android设计者的意图而滥用Wake Lock