9,0,i,vers,15,133,MOB31K,MOB31K
9,0,l,bt,0,0,0,238067037,173720359,1483685378198,0,0
9,0,l,gn,0,0,0,0,0,0,0,0
很可惜的是,依然报错:
但是很明显,报错变少了,说明我们以上做的修改还有有点用的,于是我预测是不是还有些东西没有删除掉,经过上面的一个过程下来,隐约感觉到是不是由于bugreport.txt文件里面有些参数重复了导致视图解析不出来,例如“,vers,”,“,bt,”,“,gn,”都是重复的,然后删除掉一行,继续google,证实了这个问题:Battery Historian is complaining because it only expects one log per file.,于是我就再去bugreport.txt文件中找,是不是还有类似的参数没有删除呢?在刚才删除的那三行下面我看到这么一些东西:
9,0,i,vers,15,133,MOB31K,MOB31K
9,0,l,bt,0,0,0,238067037,173720359,1483685378198,0,0
9,0,l,gn,0,0,0,0,0,0,0,0
// 以上三行是已经删除的
9,0,l,gwfl,0,0,0,0,0,0
9,0,l,gble,0,0,0,0
9,0,l,m,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,br,0,0,0,0,0
9,0,l,sgt,0,0,0,0,0
9,0,l,sst,0
9,0,l,sgc,0,0,0,0,0
9,0,l,dct,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,dcc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,wst,0,0,0,0,0,0,0,0
9,0,l,wsc,0,0,0,0,0,0,0,0
9,0,l,wsst,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,wssc,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,wsgt,0,0,0,0,0
9,0,l,wsgc,0,0,0,0,0
9,0,l,dc,0,0,0,0
奇怪的是后面跟的参数都是0,觉得不太对劲,找到那个没有删除的“,bt,”和“,bt,”看了下:
9,0,l,bt,0,4034182,3304371,6220490,5490679,1483917201211,1405309,675499
9,0,l,gn,7688100,795463,27082229,2909975,7858,7960,26650,28479
9,0,l,gwfl,4034182,4034182,1679358,29311,32558,0
9,0,l,gble,0,0,0,0
9,0,l,m,2628873,0,5225,449536,1002609,34,2620589,0,12,0,0,0,0,19,25225
9,0,l,br,468770,582304,1345121,154945,77733
9,0,l,sgt,2612,43469,782137,2361194,844770
9,0,l,sst,0
9,0,l,sgc,2,7,44,157,160
9,0,l,dct,2910827,0,0,0,0,0,0,0,0,0,0,0,0,1123355,0,0,0
9,0,l,dcc,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
9,0,l,wst,0,0,0,0,0,0,0,0
9,0,l,wsc,0,0,0,0,0,0,0,0
9,0,l,wsst,0,149908,0,0,880862,0,15338,1043,13159,104,2973768,0,0
...后面太长了,这里就省略了...
其实“,vers,”,“,bt,”和“,bt,”都是在—— CHECKIN BATTERYSTATS (dumpsys batterystats -c) ——下的,只不过这里这三行并不连续,中间穿插一大段数据内容,而刚才删除的那三行却是连续的,而且后面带的参数都是0,经过比较发现,后面带的参数本应该是uid,进程名等参数,这些参数是不可能都为0的所以就猜测刚才删除的那些数据可能是异常数据,也许就是这里导致视图分析报错,于是就把那一整段都全部删除:
9,0,i,vers,15,133,MOB31K,MOB31K
9,0,l,bt,0,0,0,238067037,173720359,1483685378198,0,0
9,0,l,gn,0,0,0,0,0,0,0,0
9,0,l,gwfl,0,0,0,0,0,0
9,0,l,gble,0,0,0,0
9,0,l,m,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,br,0,0,0,0,0
9,0,l,sgt,0,0,0,0,0
9,0,l,sst,0
9,0,l,sgc,0,0,0,0,0
9,0,l,dct,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,dcc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,wst,0,0,0,0,0,0,0,0
9,0,l,wsc,0,0,0,0,0,0,0,0
9,0,l,wsst,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,wssc,0,0,0,0,0,0,0,0,0,0,0,0,0
9,0,l,wsgt,0,0,0,0,0
9,0,l,wsgc,0,0,0,0,0
9,0,l,dc,0,0,0,0
然后保存下bugreport.txt,在去submit分析,发现居然成功的显示出视图了:
到这里有两个tab页面,一个是2.0的,一个是1.0的,1.0的tab显示会被下面的覆盖掉,而1.0关于wake lock唤醒信息比较详细,所以可以用python historian.py -a bugreport.txt > battery.html命令单独转换生成1.0的分析视图,这个上面已经提及,好啦,问题解决!