什么是adb
adb工具即Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互
adb的命令网上介绍非常很多,下面主要讲一下App自动化或性能常用的几个
1、adb help :帮助文档,忘了的命令想看的命令都可通过此命令获取查看
2、adb devices :查看当前链接的设备,每个设备的设备号是永远不换变的唯一标识
3.1、adb install <apk文件路径> :安装apk文件到手机,附带其他参数
-r: replace existing application
-t: allow test packages
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (install-multiple only)
-g: grant all runtime permissions
3.2、adb uninstall <包名>: 卸载某软件 附带参数-k 保留软件的配置和缓存文件
4.1、abd push <电脑路径> <手机路径>:把本机电脑上的文件复制到手机
4.2、adb pull <手机路径> <电脑路径>:把手机上的文件复制到手机
5、adb start/kill server :启动/杀死server
6、adb logcat :查看log,这个是非常重要的命令,查看崩溃日志定位bug尤其关键
logcat是android用来查看日志的命令行工具(Log Catcher)
打开开发者选项,可以看到有个选项叫做“日志记录器缓冲区大小”,默认是256k
android log系统结构
日志内容: 如下:华为手机的截屏操作,非三指截屏
11-22 13:48:07.252 11374 11374 I GlobalScreenshot: SaveImageInBackgroundTask.onScreenshotAnimationEnd called 11-22 13:48:07.254 11374 11374 I GlobalScreenshot: isKnockOrThreeFingerUsed = false
1、写下日志时的时间
2、PID(进程ID)
3、TID(线程ID)
4、优先级
5、标签: 标明日志发起者和方便日志的过滤筛选
6、正文, 本日志的主体内容
日志的优先级从低到高分以下几种: Android log.e(),log.d(),log.i()
V—Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在发布产品中输出,不是很常见,包含诸如方法名,变量值之类的信息)
D—Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见,开发中经常选择输出此种级别的日志,有时在beta版应用中出现)
I—Info(信息,该等级日志显示运行状态信息,可在产品出现问题时提供帮助,从该级别开始的日志通常包含完整意义的英语语句和调试信息,是最常见的日志级别)
W—Warning(警告,运行出现异常即将发生错误或表明已发生非致命性错误,该级别日志通常显示出执行过程中的意外情况,例如将try-catch语句块中的异常打印堆栈轨迹之后可输出此种级别日志)
E—Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
F—Fatal(严重错误,比error级别更高,目前我只在android系统内核发出的日志中看到此种级别。在Android6.0以前表明开发者认为绝对不应该出现的错误,在此以后一般开发场景下绝不应该输出此种级别的日志)
S—Silent(寂静,最高级别,没有一条日志会属于这个级别,仅仅作为关闭logcat输出的过滤器参数)
缓冲区介绍android log输出量巨大,特别是通信系统的log, 因此,android把log输出到不同的缓冲区中,目前定义了四个log缓冲区:
1)Radio:输出通信系统的log
2)System:输出系统组件的log
3)Event:输出event模块的log
4)Main:所有java层的log,以及不属于上面3层的log
缓冲区主要给系统组件使用,一般的应用不需要关心,应用的log都输出到main缓冲区中 默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log
参数:
输出日志:
adb logcat -v time > crash.log
过滤日志
adb logcat -d *:W > F:\test.txt