在只安装了adb环境的情况下,如何查看某个app的日志,同时筛选关键字?
如何配置adb环境,请移步 mac下安装adb环境的三种方式
。
Logcat命令行工具
Logcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹,以及从您的应用使用 Log 类写入的消息。
在 Android Studio 中,您也可以从 Logcat 窗口查看日志消息。这里我们通过 Logcat命令行工具 来查看app输出的log。
先将设备通过usb数据线连接到电脑,通过 adb devices 命令查看是否连接成功:
可以看到我的手机已经连接到adb了。
在终端中输入 adb logcat ,即可以看到设备的所有logcat输出:
不过这明显不是我们想要的,我们需要的是某个app下的logcat输出, Logcat命令行工具 中提供了相应的方式:
这里的 xxx 表示我们目标app对应的 pid 。
如何获取某个app对应的 pid 呢
可以通过 adb shell dumpsys 包名 获取pid,不过需要我们在手机上 先打开这个app ,因为pid是分配给进程的,进程启动以后才会分配pid。
在最上面的输出中,我们也可以很方便的看到pid:
需要注意的是, pid是分配给进程的,如果app关闭了再重新打开,就会分配一个新的进程,同一个包名对应的pid就会变 。
除了上面的方式,我们还有另一种方式,也需要app处于打开状态:
可以清晰的看到我们目标包名comtinytongtongandroidstudy的 pid为7948 。
接着使用我们获取到的pid,就可以输出目标app下的log了:
这里输出的logcat是app下所有的log,如果我们要定位具体问题还是远远不够的,还需要支持关键字筛选。
接着我们借助 grep 命令进行筛选,比如说我要搜索的关键字是"Lifecycle":
可以看到这里只输出了符合我关键字的log,任务基本完成。
当然了,如果想把输出结果保存到文件中,也是很方便的,在之前的命令后面添加 > logcattxt ,之前命令的输出结果就会被重定向到 logcattxt 文件中。
我们查看通过 cat logcattxt 即可快速查看 logcattxt 中的内容。
这里的 > 表示覆盖文件内容,如果要追加文件末尾,可以换成 >> 。
adb(Android Debug Bridge),SDK自带的工具,可实现桥接功能,实现PC和android设备的交互
adb shell:基于Android linux系统 *** 作,放在安卓设备的system/bin目录下,手机端的命令
一:adb常用命令
1 PC连接android设备
(PC与android设备连接同一个wifi,或处于同一个局域网)
连接:adb connect ip:5555
断开连接:adb disconnect ip
查看连接设备的信息:adb devices
获取设备的状态:adb get-state
2 重启adb server
打开adb服务:adb start-service
关闭adb服务:adb kill-service
3 安装卸载软件
安装:adb install apkpath(某个apk)
adb install -r :强制安装
卸载: adb uninstall package(可用adb shell pm list packages查看包名)
4 打印日志
打印android系统日志:adb logcat
将日志打印并保存指定文件夹:adb logcat > /Users/apple/Desktop/logtxt
终止进程:control+C
打印dumpsys,dumpstate,logcat的输出,用于分析错误:adb bugreport
5 PC与android设备上文件复制
android设备上文件复制到PC上:adb pull
PC上文件推至android设备:adb push
6重新挂载system分区为可写,需要root权限/system分区默认挂载为只读,但有些 *** 作比如给android系统添加命令,删除自带应用等需对系统进行写 *** 作,得重新挂载为可写
adb shell
su
或:adb root
adb remount 重新挂载文件系统,获得可写的权限(默认情况是只有可读权限的),使用adb remount 的前提是要有root权限
7 删除系统应用
adb root
adb remount
adb shell
cd system/app
rm apk
二:adb shell命令
adb shell 进入系统子目录,exit 退出
1 pm命令
列出系统应用的所有包名:adb shell pm list packages 可用grep来过滤:adb shell pm list packages | grep 关键字
清除应用数据与缓存:adb shell pm clear <packagename>
2 am命令
启动应用:adb shell am start -n comxxxxxxxxxx|xxxActivity(可通过adb shell dumpsys activity activities | grep mFocusedActivity查看
强制停止应用:adb shell am force-stop <packagename>
3 input命令
模拟点击事件,点击坐标点(x,y):adb shell input tap x y
模拟滑动事件,从(x1,y1)到(x2,y2):adb shell input swipe x1 y1 x2 y2
发送文本内容:adb shell input text
模拟按下home:adb shell input keyevent KRYCODE_HOME
4 screencap命令
截屏:adb shell screencap
5 查看网络状态命令
查看当前网络状态:adb shell netstat
通过配置文件配置和管理网络连接:adb shell netcfg
查看网络信息:ifconfig
测试网络联网状态:ping
5其它相关命令
查看当前终端中进程:adb shell ps
获取cpu信息:adb shell cat /proc/cpuinfo
查看内存信息:adb shell cat /proc/meminfo
查看屏幕分辨率:adb shell wm size
查看设备ip地址:adb shell ifconfig | grep Mask
查看实时资源占用情况:adb shell top
adb shell "dumpsys window | grep mCurrentFocus"
adb命令获取比较简单直接(对于获取单个页面比较方便)
打开android studio 连接手机,打开您想查看的App,之后在android studio中点击
Tools > Layout Inspector (用Layout Inspector功能)
————————————————
参考链接: >
以上就是关于终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件全部的内容,包括:终端中查看某个app的logcat输出,支持关键字筛选,支持输出到文件、超实用的adb与adb shell常用命令汇总、adb笔记3:Android获取App当前页面的Activity名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)