一键分析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。
前提:
已配置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。
相关文章推荐
- Android自定义屏幕侧边字母排序控件
- Android Service完全解析,关于服务你所需知道的一切(上)
- android studio mipmap 和drawable的区别
- Android NDK编程,引入第三方.so库
- android图片选择器
- 详解Android中AsyncTask的使用
- Android RemoteViews(Android开发艺术随笔)
- Android数据存储之:SharedPreferences
- android stadio多渠道打包(一分钟搞定)
- Android快捷方式(ShortCut)创建以及删除
- 安卓的任务和回退栈
- Android studio的主题颜色修改
- android 监听事件的三种方法
- Android中Text文本特效处理
- Android Studio 右侧条标高亮显示选中的相同变量,类,方法。。。
- 安卓源码--]Latin输入法怎么默认勾选几种语言
- Android 引用外部项目库笔记
- Android的四大组件
- Android 开发之Android Material Design NavigationView侧滑界面自定义
- 使用Android Studio阅读整个Android源码