前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
如果遇到关机闹钟的相关问题,最有效的分析log,是使用手机中的mobilelog工具来抓取log。由于关机闹钟的设计是在开机完成后才去启动闹钟界面和闹钟铃声,所以只要闹钟有响起或者闹钟界面有show出来,都是可以抓取到有效的关机闹钟的log的。
一、具体抓取log步骤如下:
(1) 打开手机中的mobilelog开关;
(2) 设置闹钟-à 关机;
(3) 然后进行测试操作,待操作完毕,将mobilelog取出即可。
二、如果遇到闹铃响,但是看不到闹钟界面的情况,还可以抓取此时的layerdump来帮助分析:
抓取LayerDump是一个.Bat批处理文件,批处理文件的代码如下(烦请Copy对应内容,自己生成.Bat批处理文件):
:: ICS SF layerdump batch
::
:: [usage]
::
:: $> ./SF_layerdump_all [IS_RAW] [DUMP_ID]
::
:: IS_RAW: 0 for PNG and 1 for RAW (default 0)
:: DUMP_ID: layer identity to dump, or -1 for all (defulat -1)
SET raw=%1
SET layerdump=%2
IF "%raw%"=="" SET raw=0
IF "%layerdump%"=="" SET layerdump=-1
adb shell setprop debug.sf.layerdump.raw %raw%
adb shell setprop debug.sf.layerdump %layerdump%
adb shell dumpsys SurfaceFlinger > SF_layerdump_all.log
adb shell mkdir /data/SF_dump
adb shell mv /data/*.png /data/SF_dump
adb shell mv /data/*.i420 /data/SF_dump
adb shell mv /data/*.yv12 /data/SF_dump
adb shell mv /data/*.RGBA /data/SF_dump
adb shell mv /data/*.RGB565 /data/SF_dump
rmdir /S /Q SF_layerdump_all
md SF_layerdump_all
move SF_layerdump_all.log SF_layerdump_all
adb pull /data/SF_dump SF_layerdump_all/
adb shell rm /data/SF_dump/*
三、对于JB2及以后的版本:
最好将AlarmManagerService.java中的debug开关打开,即
将localLOGV的值置为true。
如果需要敝司帮助分析,请在提e-service时,将按照上述步骤抓取的mobilelog和复现问题的时间点一并附上。
涉及的文件路径:frameworks\base\policy\src\com\android\internal\policy\impl\keyguard
(1)判断alarm boot:KeyguardUpdateMonitor.java
(2)增加了alarm boot的锁屏模式:KeyguardSecurityModel.java
(3)判断为alarm boot,则show出相应提示界面:KeyguardHostView.java
(4)alarm boot的锁屏界面:PowerOffAlarmView.java(code path:mediatek\framework-ext\base\policy\java\com\android\internal\policy\impl\keyguard)