抓取android log

转至元数据起始

本篇文章只是个人的经验总结,如有错误,欢迎指正!多谢~

1.抓取AP log的命令:

adb logcat -b events -b radio -b main -b system -b crash -v threadtime > log.txt

【详解】

(1)首先讲一下“-b”, events就是抓取手机的操作事件,做了哪些操作; radio主要是和modem相关的,关于通话,短信,网络的bug需要带上radio;main和system都是android的系统log,crash是手机发生crash时产生的日志。

(2)"-v time"会打印出日志的时间,如果不加就不会显示时间

(3)“log.txt”这个是打印出的log文件名,可以自由更改名称,也可以名称前输入路径,比如保存到桌面:adb logcat -b events -b radio -b main -b system -b crash -v time > C:\Users\alex\Desktop\log.txt

如果直接输入adb logcat会默认包含“-b events -b radio”。

 

2.清除log的命令:

adb logcat -c

 

3.搜索log信息:

抓取完log以后可以在log里搜索关键字来确定是什么问题。比如如果出现force close,我们就可以搜索“Fatal ”关键字,FATAL下面会列出错误的类型和出错的代码行,可以把这些信息贴到bug里来帮助开发同志更容易的定位问题。

下面举例一个文件管理器的空指针的log:

FATAL EXCEPTION: main
08-19 16:00:38.183 E/AndroidRuntime( 8367): Process: com.cloudminds.filemanager, PID: 8367
08-19 16:00:38.183 E/AndroidRuntime( 8367): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at com.cloudminds.filemanager.FolderFragment.getFileSortType(FolderFragment.java:2134)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at com.cloudminds.filemanager.FolderFragment.showSortDialog(FolderFragment.java:2160)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at com.cloudminds.filemanager.FolderFragment.onOptionsItemSelected(FolderFragment.java:1848)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at android.app.Fragment.performOptionsItemSelected(Fragment.java:2159)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at android.app.FragmentManagerImpl.dispatchOptionsItemSelected(FragmentManager.java:1996)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at android.app.Activity.onMenuItemSelected(Activity.java:2934)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at android.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:91)
08-19 16:00:38.183 E/AndroidRuntime( 8367): 	at com.android.internal.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:63)

 

4.抓取ANR的log信息:

在测试过程中,相信大家经常会遇到无响应的问题,如果弹出无响应的dialog,那么这个就是个ANR的问题,除了需要抓取logcat外,还需要从手机里pull文件出来。

(1)traces文件抓取方法:

adb root

adb remount

adb pull /data/anr/. C:\Users\alex\Desktop\

(2)有些时候开发需要抓取tombstones文件,也可以用上面的命令从data/tombstones里pull出相应的模块的文件,具体方法到时候可以咨询我。

 

5. Capture Kenel log.  
adb root
adb remount
adb shell cat /proc/kmsg >kernel_log.txt 


6. 抓取蓝牙的log

adb root

adb remount

进入设置-开发者选项-勾选“启用蓝牙HCI信息收集日志”

adb logcat -b all -v time > log.txt

操作完成后把sd卡根目录中的btsnoop_hci.log和通过命令抓取的ap log都提供给开发。

7. 抓取QPST log

 

手机端(使用USB数据线连接到电脑连接):

(1)在电话的拨号盘输入*#*#248#*#*

(2)选择“USB-MODE”

(3)选择“TEST_MODE”

电脑端:

(4)打开  QPST Configuration  软件,该软件 会自动抓DUMP LOG.  其中 Ports 项显示手机状态是 Sahara Memory Dump 。DUMP LOG 抓完后手机会自动重启。

(5)报bug要同时要提供解析这个dump需要对应的vmlinux文件(文件在刷机文件SWImage_PST根木录下)及 Modem版本信息(从*#*#248#*#*里面VERSION可以看到基带版本,可以提供截图)

注:DUMP LOG. 存储路径为 :点击 Help 菜单 第二项 Open Log File Directory ,在弹出的窗口中打开Sahara 文件夹中 ,其中Port_COMX文件夹内存放的就是DUMP LOG, 注意此处 Port_COM 号 跟之前在QPST Configuration软件中显示COM 号要一致。 


8. 抓取CP(QXDM log)(所有和电话,上网等网络相关的 都需要抓取QXDM log)


(1)打开QXDM,电脑连接手机;

(2) 手机USB调试模式;

(3)测试机拨打*#*#248#*#*,进USB-MODE,选择TEST_MODE 退出;

(4)QXDM中,File->Load Configuration->导入QXDM Log Mask(QXDM Log Mask路径:\\10.11.35.224\Department\Test\07_Tools\QXDM\qxdm_log_mask);

(5)在options里点communications选端口,附图如下:

 

 

 

(6)  view里选不同的log需求 一般需要抓取F1,F3,F11的log(Example: log view <F1>),附图如下:

 

 

 

(7)  在F11 view里按Shift +Delete清除log ;

(8)进行测试操作,操作完成后过一两分钟等log都出来后拔掉手机USB线

(9)在F11 view 点击保存,保存格式选*.ifs格式


 9. 抓取串口log.

 

  1. 需要条件:
  2. 已经分出线的手机:至少两根线,一根是手机数据流流出线,一根接地线,如下图:

 

        

 

  • 有串口线,如下图:
  • 串口线和手机引出的线正确连接,如下图:

 

  •  电脑安装了SecureCRT工具。

 

2. SecureCRT工具的下载及安装:

 

  •   进入百度搜索SecureCRT并进行下载
  •  下载完后解压缩,打开注册机如下图,并将里边信息填入打开的SecureCRT.exe内

 

3.抓取串口log方法:

 

  • 将连接手机的串口线连接电脑,并进入设备管理器查看串口号,如COM3,如显示黄色叹号需要安装相应驱动:

 

 

 

  •  然后打开SecureCRT工具,点击File->Quick Connect, 填入相应的信息,protocal 选Serial, Port选查看时的端口如COM3,Baud rate选择115200,其他默认,然后连接,连接成功后会Sessions里边会出现相应的Session,在右边会出现对应的log窗口:

 

 

 

  • 如需将使log存储下来选择Options->Session Options->Terminal->LogFile, 在log file name区域选择Log存储路径及命名方式,如D:\Log\%H-%M-%D-%h-%m-%s.log, 其中%H为host name, %M为月,%D为日,%h为小时,%m为分钟,%s为秒,并勾选Start log upon connect:

 

        %H – hostname

 

        %S - session name

 

        %Y - four-digit year

 

        %y - two-digit year

 

        %M - two-digit month

 

        %D - two-digit day of the month

 

        %P - port

 

        %h - two-digit hour

 

       %m - two-digit minute

 

       %s - two-digit seconds

 

       %t - three-digit milliseconds

 

      %% - percent (%)

 

     %envvar% - environment variable

 

         

 

 

 

4.在操作中可能遇到的问题及解决方法:

 

  •  在抓取log选择Port时没有在设备管理器查看串口号,这时需要在端口属性端口设置中将端口设置为未使用的端口号,如下图:
  • 在抓取log时,log只有一些符号,原因是波特率设置错了,应改为115200:
  • 在抓取log时,log显示不整齐,线没有连接好,检查所有线的连接
  • 在抓取log时出现乱码,在sesion Options里的appearance中将Character encoding 改为UFT-8


10. 抓取电池信息的log:

    Note:Many battery related issues are not reproduced easily,most of them are reproduced randomly, in order to help dev to solve the issues, there are some information we can provide. Such as batterystats.txt, bugreport.txt, the voltage, currency and temperature and so on

  • Catch batterystats.txt:adb shell dumpsys batterystats > batterystats.txt:
  •  Reset batterystats:adb shell dumpsys batterystats --reset
  •  Catch bugreport.txt: adb bugreport >D:/bugreport.txt  (bugreport.txt can be analyzed by Battery Historian, please refer tohttps://github.com/google/battery-historian for installing)
  • get information about the device battery status:
    (1)Method 1:

             *#*#4636#*#* and check battery information

         (2)Method 2:

             adb root

             adb shell dumpsys battery

            Current Battery Service state:

             AC powered: false

             USB powered: true

             Wireless powered: false

             status: 2

             health: 2

             present: true

             level: 21

             scale: 100

             voltage: 3829

             temperature: 296

             technology: Li-ion

         (3)Method 3:

             adb root

            adb shell cd /sys/class/power_supply/bms

            cat capacity #查看电池当前容量

            cat temp #查看电池当前温度

            cat voltage_now #查看当前电压值

            cat current_now #查看当前电流值

            cat status  #查看当前充电状态

未完待续。。。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值