android框架_待机电流问题分析文档_002

待机电流问题处理,分为无法待机和待机电流平均值高两种情况,请分类参考
 

一、 无法进入待机的情况

 

1:能够明显的查看到wakelock的存在
cat /sys/power/wake_lock 或者 dumpsys power均可查看wakelock状态,一般情况下可以根据wakelock的名称来定位阻塞待机流程的模块。例如:“PowerManagerService.wakelock”

 

这种锁是客户端申请用来阻塞CPU进入休眠的,此种情况也是导致无法休眠的主要原因。ACC OFF时没有及时的释放wakelock资源,我们自己开发的应用以及服务收到ACC OFF状态后需要完成处理逻辑后释放wakelock,第三方应用需要我们强制停止他们的运行,因为它们不遵循我们的ACC逻辑。第三方应用造成无法待机的情况也是最多的。

 

 

“GPS” GPS模块正在工作,无法进入休眠。需要ACC OFF时GPS是否有正常关闭“PowerManagerService.Display”

显示屏工作状态,无法进入休眠,正常的android系统不会出现这种问题,yunos修改过powermanagerservice逻辑,有可能出现此种情况。

2:通过查看wakelock节点,无法查看到wakelock的存在

此种情况不能直观的查看到问题的所在,需要飞串口查看系统LOG来分析定位问题的所在
Logcat -s PowerManagerService 可以查看当前系统申请/释放wakelock的信息


如果应用或者服务不停的申请/释放wakelock会出现节点中无法看到wakelock的存在,但是系统就是不能进入休眠状态。这时候可以用上面的LOG来定位问题,根据wakelock名称可以定位大概的问题所在,如果是APP直接申请的wakelock可以根据名称直接确定是APP的问题,但是如果是通过Binder调用的方式产生的wakelock,还需要分析全局LOG来确定是哪个APP产生的并且配合用KILL进程方式来确定。如果还不能确定问题所在,只能在powermanagerservice服务的NATIVE层中添加LOG,打印调用者的PID(IPCThreadState::self->getCallingPid())来分析, 多数的情况可能还是要分析全局log看分析问题。

 

二、待机电流平均值高的情况
此种情况下,设备是能够正常进入待机状态的,但是由于某些外部的因素导致设备频繁唤醒或者进入待机低电流时间过长,而引起的平均电流值过高的的问题


1:进入低电流状态时间过长
出现此种现象的时候,多数情况下都是MODEM引起,这个时候CPU一般都是休眠了(通过串口无法输入或者通过串口查看log),MODEM进入低电流模式有自己的工作方式,特别是4G信号状态下花费的时间比较长。


2:频繁唤醒
APP设置了alarm导致设备唤醒:
Logcat -s AlarmManager 可以查看alarm唤醒系统的信息 只有RTC_WAKEUP和ELAPSED_REALTIME_WAKEUP 两种类型的alarm可以在待机状态下唤醒系统
Modem接收到服务器推送或者基站数据导致设备唤醒:
通过log可以看到是中断唤醒的系统,可以在log中过滤interrupt字段查询,Modem接收到数据后会通过中断唤醒CPU。当然,如果是基站数据唤醒的系统,我们是无法控制的。

3:通过dumpsys power 来查看是否有电源锁

4:待机电流下不来的原因:

1、查看force_usb_device是否设置为1,待机状态下force_usb_device=1才对,路径/sys/class/KT0806/KT0806/
force_usb_device

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
各种手机维修资料(经典)一、开机小电流5-15MA左右(主要原因是CPU没有工作) ●时钟电路没有正常(13M和32.768K)----电压、AFC、频率 ●时钟晶体本身损坏;----更换晶体 ●时钟晶体产生了信号,但没有送到CPU;----查晶体输出到CPU之间的线路 ●时钟晶体供电不正常(查电源或晶体供电管) ●复位电压不正常,主要是复位电路工作不正常(查电源电路或单独的复位管) ●CPU供电不正常,通常是电源IC没有输出VCC电压或供电管本身没有供电引起 ●CPU本身损坏(直接更换) 二、开机电流在30-60MA左右(主要是逻辑电路工作不正常) ●字库电路工作不正常 ●供电不正常 ●复位不正常(有加电复位和开机复位) ●片选不正常 ●数据线和地址线不正常 ●字库本身损坏,(指字库内部暂存或字库内部断脚) ●CPU损坏(指CPU内断脚或控制器损坏,MOBLINK系列CPU坏会有80-150MA的死电流) ●字库内的程序错乱。 三、开机大电流(指按下开机键的电流比正常开机电流要大很多,200—600MA不等) 主要是电源供电负载漏电引起开机大电流,检修这类故障,要对电路熟悉或了解主板器件的功能和供电方式,在它们这些器件旁通常有大个的电容,这些电容的正极就是供电端,测电容正极电路的反向阻值,即可知道这条供电线是否漏电。 四、加电就大电流(指把电源夹在主板的正负极就漏电) 主要是直接由电池供电的元件损坏引起,如功放电路,电源电路,供电管,充电电路,与电源线相连的对地小元件等。 第二节 不能关机 不能关机:指手机可以开机,功能正常,但是不能关机(故障通常出在关机电路) ●关机电路中的元件损坏 ●CPU损坏 ●主板关机电路有断线(电源到CPU或关机管到电源断线) ●电源IC损坏 第三节 自动开机 自动开机:加电就开机了 手机开机有两种方式,一种是高电平开机,另一种是低电平开机。 第一种方式:高电平开机 开机线的一端被强加了一个高电平引起。故障主要是由电源IC,开机管电路,及尾插电路引起。 第二种方式:低电平开机 就是开机线的电平被强行拉低故障一般是开机管电路和电源电路及尾插电路引起(因为某些手机有一个尾插开机电路,并要注意开机电路中的压敏电阻) Agere(杰尔)芯片组加电自动开机后按键失灵, Agere芯片组手机的定时告警线RTC_ALAMR信号都有一个300多K的电阻接上拉到VRTC电压,如果它的电压不正常,那么RTC_ALAMR信号变成低电平,32.768KHz时钟电路不工作!RTC_ALAMR信号变成低电平,电源就会输出电压开机!CPU的键盘扫描电路用的是慢时钟,即32.768KHz睡眠时钟,它不工作,按键失灵. 换备用电池OK. 第四节 自动关机 自动关机:指手机开机正常,但自动关机 一、开机后,松手关机:这是手机无维持信号引起电源无法稳定输出电压引起关机 ●CPU、备用电池、电源虚焊或损坏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值