您的位置:首页 > 移动开发 > Android开发

一键分析Android的BugReport

2015-11-18 11:36 513 查看
在Android系统测试中,经常要抓取log,而内置的BugReport功能无异是最方便全面的。那么问题来了,BugReport包含的信息虽多,但分析起来就成了麻烦,当然觉得麻烦的不只我一个,还有space2。这位前辈为此写了一个名为chkbugreport的开源工具,可以直接把对BugReport进行分析,好吧,我的麻烦被别人解决了。同时受同事启发,把chkbugreport工具做了个强化,实现一键分析BugReport ^_^,非常简单,就是把获取BugReport和分析BugReport一起实现,全当拿Python练练手。

前提:

已配置java环境

下载chkbugreport.jar(下载后请名字改成chkbugreport.jar)

方法:

将下面的代码保存到chkbugreport相同目录

运行

# -*- coding: utf-8 -*

import os

from subprocess import Popen, PIPE

def devices():

'''

获取设备信息,根据不同状态给出返回值

1. 未连接设备时,返回值为 0

2. 已连接仅一台设备时,返回值为 1

3. 已连接多台设备时,返回值为 2

'''

resp = Popen(

'adb devices', shell=True, stdout=PIPE, stderr=PIPE).stdout.readlines()

cmd = []

for i in resp:

cmd.append(i.strip('\r\n'))

if cmd[-2] == cmd[0]:

print ('...... Devices not fond ......')

return 0

elif len(cmd) > 3:

print ('...... Fond %s devices ......' %

(len(cmd) - 2))

return 2

else:

print ('...... Device is fond ......')

return 1

def analysis_bugreport():

'''

获取Bugreport,并进行分析

'''

print 'getting bugreport......'

os.system('adb shell bugreport > %s\\bugreport.log' % os.getcwd())

print 'Got it.'

# Bugreport

os.system('java -jar chkbugreport.jar bugreport.log')

print 'Analysis complete.'

if __name__ == '__main__':

if devices() == 1:

analysis_bugreport()

# raw_input('Press Enter key to continue......')

国际惯例,感谢space2,还有我的同事郑 虹向我推荐chkbugreport。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: