常用ADB的命令

2023-05-31  本文已影响0人  安仔夏天勤奋

快速寻找Activity/Fragmente及打印Logcat信息的ADB常用命令

在接手新项目或新手入职,查看功能所在对应的Activity/Fragment时,能快速定位,缩小范围找到业务逻辑实现。
熟悉常用的Logcat查看命令也能快速定位问题

ADB查看APP的常用命令

查看当前界面Activity:

adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"

查看当前界面Fragment:

adb shell "dumpsys activity top | grep '#0: ' | tail -n 1"
或adb shell "dumpsys activity top | grep '#[0-9]: ' | tail -n 1"

如果不知道一个Activity里有几个Fragment,使用这命令,Activity信息栈里显示有那些相关的Fragment

adb shell dumpsys activity top
命令 描述
adb shell ps 查看进程
adb shell dumpsys activity 获取当前 Android 系统 Activity 栈中 Activity 信息
adb shell dumpsys activity top 获取当前 Android 系统 中与用户交互的 Activity 的详细信息
adb shell dumpsys meminfo 应用包名 查看应用的内存使用情况
adb shell dumpsys package 应用包名 获取手机里面某个 apk 的应用信息、版本信息
adb shell pm list package -3 列出所有的应用的包名 (-s:列出系统应用 -3:列出第三方应用 -f:列出应用包名及对应的apk名及存放位置 -i:列出应用包名及其安装来源)
adb shell dumpsys activity activities 显示当前所有在运行的任务栈,并可查看栈中所有的 Activity 的列表
adb shell wm size 手机屏幕分辨率
adb shell wm density 手机屏幕密度
adb shell getprop ro.product.model 查看设备型号

获取连接的设备列表及设备状态

adb devices

安装APK

adb install path_to_apk

-l向前锁定应用
adb install -l your.apk #forward lock application
-r替换已存在应用
adb install -r test.apk #replace existing application
-t测试package标志
adb install -t test.apk #allow test packages
-s将应用安装到sdcard
adb install -s test.apk #install application on sdcard
-d忽略版本号安装apk
adb install -d test.apk #allow version code downgrade
-p部分安装apk标志

卸载 APK

adb uninstall 应用包名
//使用-k参数:保留安装包的数据和缓存目录
adb uninstall -k 应用包名 

Logcat常用命令

捕捉手机里已经发生过的崩溃日志,bugreport是支持所有手机日志信息

D:\bugreport>adb bugreport > 123.txt

输出到指定目录到123.txt文件(过程需要等待几分钟时间),会down下一个所有日志的压缩包。

在此目录下输入命令:findstr "FATAL EXCEPTION" .\** 找异常所有的对应文件,然后打开对应的文件,然后全文搜索FATAL EXCEPTION,就可以找出问题所在。

查看命令帮助, 查看一下一些简单的数据格式

adb logcat --help

使用命令adb logcat的打印:从上而下,优先级最高
V - Verbose(lowest priority:优先级最低,输出得最多)
D - Debug
I - Info
W - Warning
E - Error
F - Fatal
S - Silent(highest priority,on which nothing is ever printed:优先级最高,啥也不输出)

清除缓存信息

adb logcat -c

使用tag以后级别失效的原因是没有加上*:S。不加静默所有其他日志的选项就会把其他日志都输出。

在developers文档有介绍 Logcat 命令行工具 | Android 开发者 | Android Developers (google.cn)

打印优先级为Error以上的日志信息。

adb logcat *:E

显示所有优先级Warning以上的日志

adb logcat *:W *:S

打印时间和优先级为Error以上的日志信息:

adb logcat -v time *:E *:S

把日志信息保存到电脑上D盘log.txt文件上

adb logcat -v time *:E *:S > D:\log.txt

如果需要精准到某他APP上,则在其后面添加上 " | findstr app进程ID"

注意:

Window环境:findstr
Mac或Linux环境:grep

打印某个APP下,且tag为tagName的info级别以上的信息

adb logcat TagName:I *:S | findstr app进程ID

打印某个APP的某个Tag的logcat信息(级别从E到S)

adb logcat TagName:E *:S | findstr app进程ID

打印某个APP的某些Tag的logcat信息(级别从E到S)

adb logcat TagName:E Tag:E *:S | findstr app进程ID
上一篇下一篇

猜你喜欢

热点阅读